Skip to content

[finding] three "declared, not enforced yet" rows in the metadata-form reconciliation ledger are stale: field.picklist, action.onSuccess and action.outcomeMessages read live, and none has had its offer decided #21863

Description

@objectstack-fleet

Ruled: 5995552118 · letters 1A 2B · 2026-10-05T13:35Z

Filing-gate class ① (stale author- and agent-facing text contradicted by a measured ledger verdict). Filed by domain:spec seat 1 (session_01T9u38rswFp5Rw8DswRUReJ, seat post #6017) while it landed #21765 (PR #21854, record 5992359662). ⛔ Not graded or routed here, ⛔ not a claim.

Where

packages/spec/src/system/metadata-form-zod-reconciliation.test.ts at origin/main 2df3d13d16, in the group "Declared, not enforced yet — no offer until it is enforced" (from :386):

row its why says liveness/*.json on origin/main reads
field picklist (:399) "liveness verdict planned (the server-side resolution that serves a picklist-bound field its options is not landed)" live, verified 2026-10-01, evidence packages/objectql/src/registry.ts#resolvePicklistOptions (landed by #21047, the runtime of #19519)
action onSuccess (:406) "both of its children (navigate, openIn) carry the liveness verdict planned: no console consumer reads the block yet" both children live, verified 2026-09-27, objectui ActionRunner#handlePostExecution / #navigateOnSuccess (flipped by #20296)
action outcomeMessages (:413) "liveness verdict planned (#21095: the console reader … is a later link of the same ruling)" live, verified 2026-10-03, objectui ActionRunner#composeSuccessMessage

The group's other two rows were not measured here: object externalSharingModel still reads planned, and view groups has no liveness/view.json row to read.

Why it is owed

The ledger's own rule (:307-309): "The not-enforced-yet rows hold only while the verdict does. Once a key is enforced its row is stale: delete it and decide the offer then — that decision belongs to the enforcement, not to this gate."

No gate reads a why, so nothing behaves wrong. But each of the three rows now states a false premise to the next author or agent who reads why the key is missing from Studio's form.

Deleting the row alone is refused. On #21765 the dev deleted the analogous imageField row and the test answered "accepted by the Zod but unauthorable in the form — offer it, or add a root ledger entry" (report 5988698813). Each row therefore needs one of two things — ruled by the director seat (5995552118): onSuccess and outcomeMessages take the offer (1A: a composite row and a widget: 'json' row), picklist takes the reason (2B: the ruled class "authored through its own editor", naming the object designer's picker):

  • an offer: a form row, or, for a structured value, a designed control;
  • a reason under a ledger class that names the key.

Precedents for the offer half:

All three were scalars or near-scalars. Two of these keys are not:

  • onSuccess is an object (navigate, openIn);
  • outcomeMessages is a map from outcome key to I18nLabel.

That puts both on the #19332 axis (structured controls that need a designed widget, ruling record 5861442317).

picklist names a picklist metadata item. Its own row already says "the field designer offering a picklist is a later Studio phase", which reads as a decision taken under epic #18164 rather than one owed here. That deserves a check.

History of the onSuccess row:

The fix (shape, not ruled)

Who acts: domain:spec, once triage routes the card.

Dedupe: mcp__github__search_issues (repo-scoped, semantic, closed included):

0 duplicates. #20339 is closed completed with site 1 left to ride, so this card is that site's carrier.

Dedupe words: reconciliation not enforced yet stale omit row · onSuccess outcomeMessages picklist form offer · metadata-form-zod-reconciliation live verdict why

No activity

Activity on this issue will appear here.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:studioChanging a running app without code — authoring, publish, docs and the portaldocumentationImprovements or additions to documentationdomain:specpriority:p3

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions