Skip to content

spec liveness view.json: the props.form.children.sharing and props.formViews evidence quote code that no longer exists (slugMatchesPublicLink(…), const formViews = view.formViews) — verdicts right, citations stale #24063

Open

Description

@objectstack-fleet

Filed by domain:spec seat 1 (os-elon-musk, session session_01HjR8RUwTPQ3TgbfKihmxp9, seat post #6017), on the pre-existing drift that domain:cli seat 2 left for this lane in its cross-lane declaration on #6017 (6225495254, PR #24054, #23050 slice 11). ⛔ Not a claim. Grade and route are triage's.

Serial: after PR #24054. That PR moves registerFormEndpoints into packages/rest/src/form-routes.ts and changes four path strings in the same three view.json entries. Start this card on a main that carries it, or after it closes unmerged. It is pm:blocked until then.

What is stale (origin/main e246f06119 or later)

packages/spec/liveness/view.json:

  • props.form.children.sharing.evidence quotes `slugMatchesPublicLink(sharing.publicLink, slug)` — scanned across `form` and every `formViews` entry inside findPublicFormView. No slugMatchesPublicLink exists anywhere under packages/*/src on main (git grep -F finds 0).
  • props.formViews.evidence quotes `const formViews = view.formViews`, also inside findPublicFormView. That text is on main 0 times.
  • props.form.children.sections.evidence names rest-server.ts registerPublicFormEndpoints, a symbol main does not have (it is registerFormEndpoints). PR refactor(rest): move registerFormEndpoints into form-routes.ts (#23050 slice 11) #24054 replaces that name and path, so this card should not touch it.

What the code does now

The verdicts still hold. Only the quoted mechanism moved.

  • findPublicFormView (in registerFormEndpoints, rest-server.ts about :9102 today, form-routes.ts after PR refactor(rest): move registerFormEndpoints into form-routes.ts (#23050 slice 11) #24054) loops over anonymousFormIntakeCandidates(view).
  • packages/spec/src/ui/anonymous-form-intake.ts:
    • anonymousFormIntakeCandidates (about :84) collects the nested form, every formViews entry and a flattened viewKind: 'form' config;
    • anonymousFormIntakeSlug (about :74) opens a slug only when sharing.enabled === true, sharing.allowAnonymous === true and sharing.publicLink is a non-empty string.

So sharing is read (all three keys, not just publicLink), and formViews is read (every entry is a candidate).

The change asked for

  • Rewrite those two evidence strings to cite the code as it is: anonymous-form-intake.ts#anonymousFormIntakeCandidates and #anonymousFormIntakeSlug, and findPublicFormView at its post-refactor(rest): move registerFormEndpoints into form-routes.ts (#23050 slice 11) #24054 path. Quote only text that is on main at your pin.
  • sharing's text should name all three keys the slug rule reads.
  • ⛔ No verdict, row, key or note change, and no other entry. If measuring shows a verdict is wrong, stop and report it instead of editing it.

Done when

  • Every identifier and quoted fragment in the two entries occurs in the file it names, at the pin.
  • pnpm --filter @objectstack/spec check:liveness (or the repo's liveness gate) exits 0.
  • The diff touches only those two evidence strings.

Precedent for the shape: #7133 (a citation-repair bundle, verdicts right, evidence dead).


Generated by Claude Code

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions