You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
Repository navigation
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
finding(console): FormPage reads no widget key at all, so an authored widget is silently dropped on /f/:slug and /forms/:name — and three widget keys are reachable ONLY through it #10177
Three widget keys — object-ref, filter-condition, recipient-picker — are reachable only through that key.
apps/console/src/components/FormPage.tsx reads no widget key at all: its switch is keyed on field.type alone, and after objectui#10167 every occurrence of the word in that file is in a comment. ⇒ an authored widget is silently dropped on the /f/:slug and /forms/:name routes, and the three keys above cannot be reached there at all.
Why this is its own card rather than a row of the consolidation question
⚠️ The dev that measured it flagged that a PM might prefer to fold it in, and the reason not to is specific: widget is a second axis. 「Add the missing arms」 would close the type axis and leave this one entirely open — a renderer with all 49 type arms would still drop every authored widget. ⇒ folding it in would let the consolidation card be 「closed」 while this defect survives.
⛔ It is also independently fixable: FormPage could read widget ahead of type without any architectural decision.
Seam: spec:Field.widget → renderer apps/consoleFormPageFieldInput. Consumer: sys_sharing_rule-style admin forms (ADR-0056 P2) rendered on a FormView.
Provenance and radius
Measured by the dev on objectui#10167, ⛔ not re-derived by this seat. Radius: the two named read sites and a grep of FormPage.tsx. ⛔ Outside: whether any shipped metadata authors those three keys on a FormView today.
Filed by the domain:ui execution seat #1 (session_01Xr7APep6jm1Zta3KUzPzZf). ⛔ Filed bare.
Dedupe words
FormPage ignores field widget override · widget hint object-ref filter-condition recipient-picker second renderer · declared widget key dropped console form · switch keyed on type blind to widget axis
Claim: maintainer-ordered follow-up — domain:ui execution seat 3, carried by objectui#10179
Session: session_01D486C1axmXnrkJMNUfz2eb
Branch: claude/issue-10179-formpage-shared-field-resolver
Worktree: objectui-issue-10179
Domain: domain:ui
Seat: domain:ui#3
File surface: apps/console/src/components/FormPage.tsx (FieldInput's switch (field.type) replaced by the shared chain resolveFormWidgetType + getLazyFieldWidget, including the widget key and the select + multiple arity axis; the page shell untouched), tests beside it, one .changeset/10179-…md (stop on breach; explain in the report)
Container & model: M, mode:subagent, model: opus (default judgement tier).
Clause-②: no
Thread-read: none
Serial constraints cleared: as on objectui#10179's claim.
This card is the widget axis that objectui#10179's ruling A (5770939088) explicitly includes and pins (「including the widget key (f?.widget || f?.field?.widget || f?.type)」), so one PR fixes both. The card's own caution holds: the PR must pin the widget axis separately (object-ref, filter-condition, recipient-picker reachable on /f/:slug and /forms/:name), so that closing the type axis cannot hide this one. The PR carries Fixes #10177.
🟢 LANDED — fixed by PR objectui#10457, merged as 212c45175 (merge queue)
domain:ui seat 3 (hold-over), session_01D486C1axmXnrkJMNUfz2eb, 2026-09-25T03:15Z. Merged 2026-09-25T03:13Z. This card was folded into objectui#10179 under ruling A (5770939088). Verified on objectui origin/main: in FormPage.tsx, an authored widget wins over type (if (field.widget) return resolveFormWidgetType(field.widget);). The widget axis is pinned in FormPage.sharedFieldResolver-10179.test.tsx.
Fixes #10177 closed the card completed, and pm:dispatched is removed in this stroke.
Activity
objectstack-fleet commentedon Sep 25, 2026
Claim: maintainer-ordered follow-up —
domain:uiexecution seat 3, carried by objectui#10179Session:
session_01D486C1axmXnrkJMNUfz2ebBranch:
claude/issue-10179-formpage-shared-field-resolverWorktree:
objectui-issue-10179Domain:
domain:uiSeat:
domain:ui#3File surface:
apps/console/src/components/FormPage.tsx(FieldInput'sswitch (field.type)replaced by the shared chainresolveFormWidgetType+getLazyFieldWidget, including thewidgetkey and theselect+multiplearity axis; the page shell untouched), tests beside it, one.changeset/10179-…md(stop on breach; explain in the report)Container & model:
M,mode:subagent,model: opus(default judgement tier).Clause-②: no
Thread-read: none
Serial constraints cleared: as on objectui#10179's claim.
This card is the
widgetaxis that objectui#10179's ruling A (5770939088) explicitly includes and pins (「including thewidgetkey (f?.widget || f?.field?.widget || f?.type)」), so one PR fixes both. The card's own caution holds: the PR must pin thewidgetaxis separately (object-ref,filter-condition,recipient-pickerreachable on/f/:slugand/forms/:name), so that closing the type axis cannot hide this one. The PR carriesFixes #10177.Generated by Claude Code
objectstack-fleet commentedon Sep 25, 2026
🟢 LANDED — fixed by PR objectui#10457, merged as
212c45175(merge queue)domain:uiseat 3 (hold-over),session_01D486C1axmXnrkJMNUfz2eb, 2026-09-25T03:15Z. Merged 2026-09-25T03:13Z. This card was folded into objectui#10179 under ruling A (5770939088). Verified on objectuiorigin/main: inFormPage.tsx, an authoredwidgetwins overtype(if (field.widget) return resolveFormWidgetType(field.widget);). The widget axis is pinned inFormPage.sharedFieldResolver-10179.test.tsx.Fixes #10177closed the cardcompleted, andpm:dispatchedis removed in this stroke.Generated by Claude Code
feat(console): FormPage renders every field through the shared field …