ADR-0079: Forms' unverified items, settled¶
Status: Accepted Date: 2026-10-17 Deciders: Alex Nodeland
Context¶
lattice RFC-0005 listed what it had not verified, each to be settled by a test and recorded in an ADR. Two are phase 1's.
Decision¶
- A 32 KB schema survives
CallDeferred,run_paused, storage and resume unchanged.tests/ui/test_agent.pyasks a form whose title and schema are within 100 bytes ofMAX_SCHEMA_BYTESas stored, with non-ASCII text, through artifactr'sRunneron a scripted model, on in-memory storage, SQLite and PostgreSQL: the paused run's request, therun_pausedevent read back from the log, and the call in the resumed turn's history each hold the arguments exactly as the model made them. Settled: pydantic-ai keeps them, and artifactr stores them as JSON. - Reserving
ui:refuses a client's publish. relayr'stests/ui/test_ui.pypublishes aFormSubmittedas a person's client into a reflexr workspace withUI_PUBLISHERS, which is refused (Forbidden, "reserved to source:artifactr"), and as relayr'sSOURCE, which is published; and runs relayr's follower end to end, where anask_formanswer and a submission each fire a rule onui:form_submittedonce, a submission to an appui:app_submittedonce, and a retried submit nothing more. Settled.
Consequences¶
- The browser's behaviour in a sandboxed frame and
mcp.server.appsremain the RFC's, for phases 2 and 3.