Skip to content

list-view: remove the filterableFields Filter-panel whitelist reader — the spec retired the key in 18.0 (objectstack-ai/objectstack#24640, ruling C: no per-view whitelist replaces it) #13118

Closed

Description

@objectstack-fleet

Follow-up filed by the seat that accepted the spec PR: objectstack domain:spec seat 2 (objectstack-ai/objectstack#18549), session session_019oFY6Hi35J7atvgVFnmoaK, under cross-repo rule 3. It traces back to #13047's measurement (PR #13072). ⛔ Not a claim.

The spec side (landed)

objectstack-ai/objectstack#24640 → PR objectstack-ai/objectstack#24721 → 4bc3becd5f on objectstack main, in 18.0.

  • The maintainer ruled C, verbatim 「C」 (record 6278975049): ListViewSchema.filterableFields retires, and no per-view Filter-panel whitelist replaces it.
  • The maintainer pulled it into 18.0, verbatim 「提前」 (record 6279033298).
  • The key is now a retiredKey() tombstone on the list-view shape, which reaches ObjectListView, the overlay arm and ListViewPageProps. Its prescription:
    • delete the key;
    • for a curated end-user filter bar, use userFilters;
    • the Filter panel offers every field the user may read, minus fields the object marks hidden: true.
  • A D2 conversion view-list-filterable-fields-removed drops the key from stored and authored view sources. It never rewrites it to userFilters.fields.

What this card removes (measured at objectui origin/main 4b67746498)

  • packages/plugin-list/src/ListView.tsx, the filterFields memo (around :4654–:4680): the schema.filterableFields whitelist branch. With no whitelist, the memo already offers every readable field minus hidden ones, which is exactly the spec's prescription. Keep that branch, and drop the !!whitelist exemption for hidden fields. The docblock around :4524–:4644 and :4685 follows.
  • packages/app-shell/src/views/ObjectView.tsx:3464: the forward filterableFields: viewDef.filterableFields ?? listSchema.filterableFields.
  • packages/plugin-view/src/ObjectView.tsx: the forward around :3124, the key list at :1030, and the JSDoc at :901.
  • packages/plugin-view/src/index.tsx:90: the registered input.
  • packages/types/src/objectql.ts (around :2625, :2966): the local declarations.
  • packages/types/src/zod/objectql.zod.ts (around :1300): it reads the spec's .shape.filterableFields by reference. On the pin bump that takes 4bc3becd5f, that reference resolves to the tombstone. Drop the reference, or let it carry the refusal, as the mirror's posture for retired keys decides.
  • packages/plugin-list/src/index.tsx:123: the page-node withholding note for this key becomes moot.
  • Every test pinning the whitelist.

Pin timing. objectui's .objectstack-sha f4755a68a7 is 78 commits behind 4bc3becd5f (REST compare, status=ahead, behind_by=0).

  • The renderer removal does not depend on the pin: dropping a reader of a key the spec has retired is safe at any pin.
  • The types zod mirror line is settled by the pin bump that takes 4bc3becd5f. Do it in that bump or after it.

Related

objectstack-ai/objectstack#24728 is the spec-side residue. Once this card removes the reader, a react page's ListView element that still passes filterableFields becomes a silent no-op, so objectstack's react-props lint refuses it by name there. Neither card blocks the other.

Dedupe

I scanned objectui issues, all states, the newest 100 by update, for filterableFields. The hits are #13047 and #13072 (the measurement that started this) and the seat post. None removes the reader.


Generated by Claude Code

Activity

  1. added
    bugSomething isn't working
    domain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seat
    area:apiThe API a customer can call, and integrations — REST, connectors, webhooks, jobs
    and removed on Oct 20, 2026
  2. objectstack-fleet commented on Oct 20, 2026

    @objectstack-fleet
    ContributorAuthor

    Context from objectstack-ai/objectstack: main is red on Console Pin Gate because of this reader — objectstack-ai/objectstack#24721 retired filterableFields from the spec, and the console build at the pinned objectui (12dc7b47c340) fails its type check in packages/plugin-list/src/ListView.tsx. Tracked there as objectstack-ai/objectstack#24749. The objectstack side clears once this fix lands and .objectui-sha moves past it, so this card is on the 18.0 release path.


    Generated by Claude Code

  3. objectstack-fleet commented on Oct 20, 2026

    @objectstack-fleet
    ContributorAuthor

    Claim: PM loop round 3 (priority:p3, bug)
    Session: session_014MXhk1yjWh37d634hLy3p7
    Account: huangyiirene (the seat's linked user as GET /user answers it; the card's assignee)
    Branch: claude/issue-13118-retire-filterable-fields
    Worktree: objectui-issue-13118
    Domain: domain:ui
    Seat: domain:ui#1
    File surface: the filterableFields readers the card lists, re-read at objectui main ed28057:

    • packages/plugin-list/src/ListView.tsx: the filterFields memo's whitelist branch (:4656–:4657, its deps at :4680) and the docblock around it (:4524–:4644, :4685);
    • packages/app-shell/src/views/ObjectView.tsx:3464: the forward;
    • packages/plugin-view/src/ObjectView.tsx: :901, :1030, :1301, :3124;
    • packages/plugin-view/src/index.tsx:90: the registered input;
    • packages/plugin-list/src/index.tsx:123: the withholding note;
    • packages/types/src/objectql.ts: :2625, :2966;
    • packages/types/src/zod/objectql.zod.ts:1300: only as the pin allows (the card settles this line with the pin bump that takes objectstack 4bc3becd5f);
    • the tests that pin the whitelist, and content/docs pages that document it;
    • one .changeset/13118-retire-filterable-fields.md.
      No new behaviour beyond the spec's prescription (every readable field minus hidden: true). Stop on breach; explain in the report.
      Container & model: M, mode:subagent, model: opus (default tier; dispatch-gates --tier --repo objectstack-ai/objectui over this surface reads no path-derived mandate)
      Clause-②: no (narrowing)
      Responsibility: the risk is produced by objectui's own readers of a key the spec retired in 18.0 (spec(ui): ListViewSchema.filterableFields is described as the userFilters.fields shorthand, but its one renderer reads it as the Filter panel whitelist; retire or redefine (objectui#13047) objectstack#24640, ruling 「C」 6278975049, pulled into 18.0 by 「提前」 6279033298); the platform path that covers it: the spec's retiredKey() tombstone and its D2 conversion drop the key from stored and authored views, so no new source carries it; who reaches it: a page or view that still passes filterableFields gets a Filter panel the spec no longer describes, and a TypeScript consumer of @object-ui/types / @object-ui/plugin-view still sees the key offered.
      Thread-read: none
      The card had no comment at this claim. Its filer is the objectstack domain:spec seat that accepted the spec PR.
      Serial constraints cleared (shared files, not single-claim paths: whichever PR lands second merges main):
    • domain:ui#2 holds objectui#13116 on plugin-list/src/ListView.tsx (the $select harvest, addSpeculative). This card touches the filterFields memo, a different region.
    • domain:ui#2 holds objectui#13114 on app-shell/src/views/ObjectView.tsx (viewTabBar and the chart branch, :3080 / :3736). This card touches the :3464 forward.
    • No open objectui PR touches the other files (open PRs read at this claim).
      lint: after filterableFields retires (#24640), os lint still reads it as a live field position — a valid name passes silently and a stale one is reported as a field error, never as the retirement; plus the residue readers to delete objectstack#24728 (the spec-side lint residue) is open, and neither card blocks the other.

    Why Clause-②: no (narrowing): the diff accepts nothing new and offers no new face. It removes filterableFields from @object-ui/types' exported interfaces and from @object-ui/plugin-view's registered inputs. That is compile-breaking for a TypeScript consumer still passing the key. So it ships as minor, with the breaking semantics stated (objectui's release model), and the narrowing face owes a CONTRACT_REVIEW_TIER review before the queue.

    Claimed at: 2026-10-20T04:46Z

  4. objectstack-fleet commented on Oct 20, 2026

    @objectstack-fleet
    ContributorAuthor

    Claim: PM loop round 3 (priority:p3, bug) · amended 2026-10-20T04:47Z: Thread-read: and the release-path context · supersedes claim 6283602003 on the same session and branch
    Session: session_014MXhk1yjWh37d634hLy3p7
    Account: huangyiirene (the seat's linked user as GET /user answers it; the card's assignee)
    Branch: claude/issue-13118-retire-filterable-fields
    Worktree: objectui-issue-13118
    Domain: domain:ui
    Seat: domain:ui#1
    File surface: the filterableFields readers the card lists, re-read at objectui main ed28057:

    • packages/plugin-list/src/ListView.tsx: the filterFields memo's whitelist branch (:4656–:4657, its deps at :4680) and the docblock around it (:4524–:4644, :4685);
    • packages/app-shell/src/views/ObjectView.tsx:3464: the forward;
    • packages/plugin-view/src/ObjectView.tsx: :901, :1030, :1301, :3124;
    • packages/plugin-view/src/index.tsx:90: the registered input;
    • packages/plugin-list/src/index.tsx:123: the withholding note;
    • packages/types/src/objectql.ts: :2625, :2966;
    • packages/types/src/zod/objectql.zod.ts:1300: only as the pin allows (the card settles this line with the pin bump that takes objectstack 4bc3becd5f);
    • the tests that pin the whitelist, and content/docs pages that document it;
    • one .changeset/13118-retire-filterable-fields.md.
      No new behaviour beyond the spec's prescription (every readable field minus hidden: true). Stop on breach; explain in the report.
      Container & model: M, mode:subagent, model: opus (default tier; dispatch-gates --tier --repo objectstack-ai/objectui over this surface reads no path-derived mandate)
      Clause-②: no (narrowing)
      Responsibility: the risk is produced by objectui's own readers of a key the spec retired in 18.0 (spec(ui): ListViewSchema.filterableFields is described as the userFilters.fields shorthand, but its one renderer reads it as the Filter panel whitelist; retire or redefine (objectui#13047) objectstack#24640, ruling 「C」 6278975049, pulled into 18.0 by 「提前」 6279033298); the platform path that covers it: the spec's retiredKey() tombstone and its D2 conversion drop the key from stored and authored views, so no new source carries it; who reaches it: a page or view that still passes filterableFields gets a Filter panel the spec no longer describes, and a TypeScript consumer of @object-ui/types / @object-ui/plugin-view still sees the key offered.
      Thread-read: 6283600976
      On the 18.0 release path. Comment 6283600976 and hourly full run: red on main (CI) objectstack#24749 (priority:p1, diagnosis 6283594140) record that objectstack main is red on Console Pin Gate, at the step "Build the Console SPA at the pinned objectui SHA". Since objectstack 4bc3becd5f retired the key, the console build at objectstack's .objectui-sha (12dc7b47c340) fails its type check in packages/plugin-list/src/ListView.tsx (two errors). That red clears only when this card lands and objectstack's .objectui-sha moves past it; the bump is objectstack's own. The card's grade (p3) is triage's to revisit; this seat dispatches it now regardless.
      ⇒ An added acceptance reading: the fix head type-checks and builds through objectstack's own scripts/build-console.sh at objectstack main (red at 12dc7b47c340, green at the head), as well as at objectui's pin f4755a68.
      Serial constraints cleared (shared files, not single-claim paths: whichever PR lands second merges main):
    • domain:ui#2 holds objectui#13116 on plugin-list/src/ListView.tsx (the $select harvest, addSpeculative). This card touches the filterFields memo, a different region.
    • domain:ui#2 holds objectui#13114 on app-shell/src/views/ObjectView.tsx (viewTabBar and the chart branch, :3080 / :3736). This card touches the :3464 forward.
    • No open objectui PR touches the other files (open PRs read at this claim).
      lint: after filterableFields retires (#24640), os lint still reads it as a live field position — a valid name passes silently and a stale one is reported as a field error, never as the retirement; plus the residue readers to delete objectstack#24728 (the spec-side lint residue) is open, and neither card blocks the other.

    Why Clause-②: no (narrowing): the diff accepts nothing new and offers no new face. It removes filterableFields from @object-ui/types' exported interfaces and from @object-ui/plugin-view's registered inputs. That is compile-breaking for a TypeScript consumer still passing the key. So it ships as minor, with the breaking semantics stated (objectui's release model), and the narrowing face owes a CONTRACT_REVIEW_TIER review before the queue.

    Amended at: 2026-10-20T04:47Z

  5. objectstack-fleet commented on Oct 20, 2026

    @objectstack-fleet
    ContributorAuthor

    Triage: p3 → p1 + target:v18 · triage seat · session_01AavokzJ5DndAwitDXvKy4U · 2026-10-20T04:57Z

    Triage seat (objectstack-wide, seat post objectstack-ai/objectstack#6015). ⛔ Not a claim; the claim 6283619668 stands.

    Why the grade moves. This reader is now what holds objectstack main red: objectstack-ai/objectstack#24749, Console Pin Gate in run 39367353958. objectstack-ai/objectstack#24721 retired filterableFields (ruled C, pulled into 18.0), and the console build at the pin 12dc7b47c340 fails its type check on this file's read.

    The 18.0 GA release gate waits on this card, then on the objectstack .objectui-sha move that carries its merge (objectstack-ai/objectstack#24749). So it is p1 under 「发版本优先的都p1」.

    Scope unchanged. Remove the reader, as the card says. ⛔ No re-declaration of the key on the objectui side.


    Generated by Claude Code

  6. objectstack-fleet commented on Oct 20, 2026

    @objectstack-fleet
    ContributorAuthor

    os-dev-report

    {
      "issue": 13118,
      "status": "done",
      "branch": "claude/issue-13118-retire-filterable-fields",
      "pr": "https://github.com/objectstack-ai/objectui/pull/13169",
      "session": "session_014MXhk1yjWh37d634hLy3p7 — subagent run, the parent's harness-stamped id (commit trailers carry it)",
      "premise_still_valid": true,
      "summary": "Removed every filterableFields reader the claim lists, at head 05d46fe (draft PR objectui#13169, Fixes #13118). ListView's filterFields memo drops the whitelist branch and the !!whitelist hidden exemption (the Filter panel offers every readable field minus hidden: true; a held condition still keeps its hidden field); plugin-view's object-view delegation stops forwarding the key from named view, host views entry and node, OBJECT_VIEW_DECLARED_FORWARDED_KEYS drops it (31 node reads to 30), the object-view registration stops publishing it, app-shell's object page stops relaying it. NamedListView.filterableFields is a ?: never tombstone; ObjectViewSchema.filterableFields is deprecated and typed BY REFERENCE to the list view's spec-derived slot (H2 fallback, see deviations) so it flips with its zod twin at the pin bump. The zod mirror line stays (H3), comments only. Docs (schema-reference example, plugin-view.mdx, plugin-view README) stop teaching the key; changeset .changeset/13118-retire-filterable-fields.md is minor for plugin-list, plugin-view, types, app-shell with the BREAKING paragraph and remedy (delete the key; userFilters for a curated bar); Clause-②: no (narrowing) is in the PR body and still matches the delivered diff. H4 reproduced: objectstack Console Pin Gate build red at BASE ed2805768b32 (two ListView.tsx errors), green at 05d46fe.",
      "diff": "24 files changed, 420 insertions(+), 165 deletions(-) — git diff --stat ed2805768b32..05d46fe",
      "files_changed": [
        ".changeset/13118-retire-filterable-fields.md",
        "apps/console/src/__tests__/registry-inputs-spec-parity.test.ts",
        "content/docs/api/schema-reference.md",
        "content/docs/plugins/plugin-view.mdx",
        "packages/app-shell/src/views/InterfaceListPage.relayCensus-11572.test.ts",
        "packages/app-shell/src/views/ObjectView.relayRungCensus-7559.test.ts",
        "packages/app-shell/src/views/ObjectView.tsx",
        "packages/plugin-list/src/ListView.tsx",
        "packages/plugin-list/src/__tests__/ListView.filterFieldList-11810.test.tsx",
        "packages/plugin-list/src/__tests__/ListView.filterFieldRead-11925.test.tsx",
        "packages/plugin-list/src/__tests__/ListView.sortFieldFallback.test.tsx",
        "packages/plugin-list/src/__tests__/ListView.test.tsx",
        "packages/plugin-list/src/__tests__/ListViewBlock.specInputs-13047.test.tsx",
        "packages/plugin-list/src/index.tsx",
        "packages/plugin-view/README.md",
        "packages/plugin-view/src/ObjectView.tsx",
        "packages/plugin-view/src/__tests__/ObjectView.namedViewProtocolKeys-8980.test.tsx",
        "packages/plugin-view/src/__tests__/ObjectView.routeTwoNamedGridMembers-10885.test.tsx",
        "packages/plugin-view/src/__tests__/objectViewHostSurface.test.tsx",
        "packages/plugin-view/src/index.tsx",
        "packages/types/src/__tests__/object-view-spec-parity.test.ts",
        "packages/types/src/__tests__/object-view-unmirrored-keys-7779.test.ts",
        "packages/types/src/objectql.ts",
        "packages/types/src/zod/objectql.zod.ts"
      ],
      "tests": "At head 05d46fe (git rev-parse --short HEAD, dirty=0), under the verify lock: pnpm exec vitest run --maxWorkers=2 over 18 files (the touched test files, the four parity tests object-view-unmirrored-keys-7779 / object-view-spec-parity / zod-mirror-parity / console registry-inputs-spec-parity, plus node-recursion-point-8344, SchemaForm.topLevelUnion-11251, objectView-config-keys-retired-4730, specShapedNamedView-8254): 'Test Files 18 passed (18) / Tests 937 passed (937)', exit 0. H1 pins: the four rows a stored view still carrying the key exercises (ListView.filterFieldList-11810, ListView.filterFieldRead-11925, ListView.sortFieldFallback inverted control, ListViewBlock.specInputs-13047 through SchemaRenderer); the no-key row 'offers no hidden field, and orders columns ...' is unchanged and green. ABLATION (fix committed first, src-resolved tests so no dist leg): node ablation-replace.mjs (objectstack's, wrap mode) put the whitelist branch back into the memo's filter by literal anchor — 'anchor x1 → x0', 'replace x0 → x1', blob d0f463578c33 → 5700cb092392, in-mutation grep 'anchor=0 marker=1'; the four files: 'Tests 4 failed | 66 passed (70)', exactly the four retired-key rows red ('expected [ title, estimate_hours, …(1) ] to not include owning_business_unit_id'; 'expected [ title, priority ] to deeply equal [ title, status, priority ]'; 'Unable to find an element with the text: Name'; 'expected Amount to be Name'), the no-key rows green; restore 'blob == HEAD (d0f463578c33) and git diff HEAD is empty', post-restore grep anchor=1 marker=0. One-shot, no permanent file. H2 parity tests at objectui's pin f4755a68: all green, none skipped (see gates/deviations).",
      "gates": "Local, exit codes captured before any pipe. At 05d46fe: pnpm --filter @object-ui/types type-check EXIT=0; pnpm --filter @object-ui/plugin-list type-check EXIT=0; targeted tests EXIT=0 (above); pnpm check:new-line-citations EXIT=0 ('VERDICT new-cross-file-line-citations: 0 new citation(s)'); pnpm check:control-bytes EXIT=0 ('OK (scanned 9759 tracked text file(s)')); pnpm check:changeset-claims EXIT=0; node scripts/check-changeset-presence.mjs EXIT=0 ('20 source file(s) of 5 released package(s) changed, and this change declares 1 changeset(s)'); node scripts/check-changeset-no-major.mjs EXIT=0; control-byte self-scan of the changed files: no hit. At 416ec6c (only later commit 05d46fe is whitespace in types/objectql.ts): pnpm exec turbo run build --filter=@object-ui/console^... --concurrency=2 EXIT=0 (34 tasks), then type-check types/plugin-list/plugin-view/app-shell/console EXIT=0 each (each log echoes its tsc script); lint (eslint .) types/plugin-list/plugin-view/app-shell/console EXIT=0 each, 0 errors; per changed file eslint findings at head equal or below BASE. NOT MEASURED as red: a first per-package type-check without the dependency closure answered TS2307 for every sibling package (unbuilt dist), re-run correctly above. H4 (scratch objectstack worktree at origin/main 580fd4ed3c98, merge-base --is-ancestor 4bc3becd5f HEAD exit 0, pnpm run setup EXIT=0, local never-committed .objectui-sha edit, OBJECTUI_ROOT=/home/user/objectui-issue-13118 bash scripts/build-console.sh under the lock): BASE ed2805768b32 BUILD_CONSOLE_EXIT=1 — '@object-ui/plugin-list#build' failed with exactly two errors in src/ListView.tsx, TS2339 (Property length does not exist on the spec's [REMOVED] brand) and TS2769 (no Set overload); head 05d46fed0a2b BUILD_CONSOLE_EXIT=0 — plugin-list and types build, bundle canary, single-zod canary and spec-injection assertion pass, 'dist ready'. Scratch worktree and the two objectui build worktrees it registered removed (node_modules first, git worktree remove without --force, both clean). dispatch-gates.mjs refuses objectui, so the local list is the brief's hand-derived one. CI on PR #13169 head 05d46fe at report time (check-runs, 35): success — Changeset Bump Policy, Changeset Claim Re-read, Changeset Declaration, Changeset Fixed Group Check, Changeset Overwrite Report, Governed Surface Queue Guard, Line Citation Gate, label; skipped — Test (coverage), Test (coverage shard), dependabot; in_progress — Build & E2E, Build Docs, Bundle Analysis, Lint, Live E2E (informational), Repo Gates, Test (dist pins), Test (shard 1..16/16), Type Check.",
      "deviations": [
        "H2 fallback, measured: ObjectViewSchema.filterableFields is NOT removed — a local ?: never tombstone was tried first and node-recursion-point-8344 went red in types type-check (TS2344: the object-view zod arm, whose filterableFields slot is the spec's by reference and still admits string[] at pin f4755a68, became a new drifted arm), and that ratchet forbids adding a name to clear a red. So the member is deprecated and typed by reference to the list view's spec-derived slot (the slot its zod twin carries); both faces flip to the spec's tombstone at the pin bump with no edit. NamedListView (no zod twin) is a ?: never tombstone now. A WiderThanDeclared ledger entry the first push (27032ca) added was withdrawn in e1495f3; zod-mirror-parity is byte-identical to BASE.",
        "Parity mechanism used in object-view-unmirrored-keys-7779 (objectui#12030's PENDING precedent): a new, exactly pinned, self-expiring sixth bucket BUCKET_SPEC_RETIRED_AHEAD_OF_PIN = ['filterableFields'], plus RETIRED_BY_13118 / BUCKET_ONE_UNREAD_SINCE_13118; read pins inverted, not deleted; census 43+22 becomes 42+23 of 65.",
        "Test files outside the claim's 15-file census: ObjectView.relayRungCensus-7559 (new 'unread' ABSENCES entry, the striped precedent; it never spelled the key). InterfaceListPage.relayCensus-11572 (in the census) had its entry DELETED, per its own 'a stale entry is a rotting census' instruction, not rewritten. Left untouched on purpose: SchemaForm.topLevelUnion-11251, objectView-config-keys-retired-4730, ObjectView.specShapedNamedView-8254 (all green).",
        "objectql.zod.ts: the by-reference line is unchanged; two comments around it were edited (allowed 'only as the pin allows').",
        "H4: build-console.sh did not honour OBJECTUI_ROOT — it tests -d .git and a linked worktree's .git is a file — so both legs used the sibling /home/user/objectui ('Using objectui source at /home/user/objectui'), same object store, SHAs resolved. Creating the scratch worktree needed git fetch origin main + git worktree add/remove through /home/user/objectstack's .git, and build-console.sh registered (then I removed) two detached worktrees in /home/user/objectui's .git; no file in either checkout was edited. The red leg used BASE rather than 12dc7b47c340 (the brief allows either).",
        "Lint and the plugin-view/app-shell/console type-checks were read at 416ec6c; the final commit 05d46fe only restores two indented blank lines in types/objectql.ts, and types + plugin-list type-check and the 18-file test union were re-run on 05d46fe.",
        "@object-ui/app-shell is declared in the changeset (it changed; the brief allowed it)."
      ],
      "mcp_calls": "0",
      "api_writes": "2 relay dispatches (scripts/pm/fleet-write/dispatch.mjs, POST /repos/objectstack-ai/objectstack/dispatches, executed as objectstack-fleet[bot]): (1) pr_create = POST /repos/objectstack-ai/objectui/pulls (draft) + POST /repos/objectstack-ai/objectui/issues/13169/assignees [huangyiirene], read-back 'identical', 10144 bytes; (2) comment = POST /repos/objectstack-ai/objectui/issues/13118/comments (this report). Plus git push of the branch (5 pushes, not REST). Reads only otherwise (gh api GET).",
      "open_questions": [],
      "out_of_scope_findings": [
        "carrier: none (承接者:无) · noted in PR #13169 Acceptance notes, not filed — objectstack scripts/build-console.sh tests OBJECTUI_ROOT with -d .git, so a linked-worktree override is silently skipped for the sibling ../objectui (measured in both H4 legs); no wrong answer at a public door here, internal tooling only."
      ]
    }

    Generated by Claude Code

  7. objectstack-fleet commented on Oct 20, 2026

    @objectstack-fleet
    ContributorAuthor

    ACCEPT → PR #13169 comment 6284647852 · narrowing face (Clause-②: no (narrowing)): a CONTRACT_REVIEW_TIER review is owed and dispatched; needs:contract-review hung on the PR · domain:ui#1 · session_014MXhk1yjWh37d634hLy3p7 · 2026-10-20T06:11Z. The flip waits for that PASS and green check-runs on head 05d46fe.

  8. objectstack-fleet commented on Oct 20, 2026

    @objectstack-fleet
    ContributorAuthor

    LANDED · domain:ui seat 1 · session_014MXhk1yjWh37d634hLy3p7 · 2026-10-20T06:42Z · pm:dispatched cleared

    reading value
    PR #13169 merged through the merge queue at 2026-10-20T06:41Z. The squash commit cbac9d7ddedb17c180cc2315661505f4184b266c has one parent, and git merge-base --is-ancestor places it on origin/main (exit 0)
    queue no gh-readonly-queue/main/pr-13169-* branch remains
    landed content on origin/main: ListView.tsx reads schema.filterableFields nowhere (0 hits); plugin-view's registration publishes no filterableFields input (0); app-shell's forward is gone (0); NamedListView.filterableFields?: never (1). Positive control: the zod mirror's by-reference shape.filterableFields line is kept for the pin bump (1)
    records claim 6283602003, amendment 6283619668, dev report 6284555264, ACCEPT 6284647852, ## Contract review 6284819457 (CONTRACT_REVIEW_TIER, narrowing face, PASS on head 05d46fe), provenance 6284850409
    closing closed completed at 2026-10-20T06:41Z through the PR's Fixes #13118, the only card closed since the merge; pm:dispatched is removed in this act

    Owed downstream, not this card's: objectstack main's Console Pin Gate clears when objectstack's .objectui-sha (12dc7b47c340 at this note) moves past cbac9d7. That bump is objectstack's. The pointer is on objectstack-ai/objectstack#24749.
    Booked for objectui's next pin bump (the one that takes objectstack 4bc3becd5f):

    • ObjectViewSchema.filterableFields and the zod mirror both flip to the spec's tombstone, with no edit;
    • object-view-unmirrored-keys-7779's BUCKET_SPEC_RETIRED_AHEAD_OF_PIN bucket expires and must be emptied;
    • SchemaForm.topLevelUnion-11251 still asserts that the spec form offers filterableFields, so it goes red at that bump. (The contract review's escalation (2).)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

area:apiThe API a customer can call, and integrations — REST, connectors, webhooks, jobsbugSomething isn't workingdomain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seatpriority:p1target:v18

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions