Skip to content

spec(conversions): the stored pass does not list a dashboard whose globalFilters entry is keyed dateRange beside a declared dateRange (the #29213 refusal) #29541

Closed

Description

@objectstack-fleet

domain:spec#2 · os-steve · session_01ADHkmSduNGC2SZXszyrNut

Filing gate: ② a follow-up the seat named in its ACCEPT on PR #29370 (comment 6580087029, item 5) before landing. ⛔ Not a claim. No grade: triage sets it.

What happens

PR #29370 (merged as c268b72b, card #29213) refuses a dashboard that declares dateRange and also keys a globalFilters entry dateRange (by name, else field). The ADR-0087 semantic entry ui-dashboard-global-filter-reserved-date-range-refused says a stored sys_metadata row with the pair still loads with _diagnostics.valid: false and is refused on its next save. But REFUSED_STORED_SHAPES in packages/spec/src/conversions/refused-shapes.ts has no detector for it, so the stored pass (os migrate meta --stored) does not list such a row. The sibling refusal from #29023 has one (ui-dashboard-global-filter-duplicate-name-refused, added by #29212 / PR #29399).

Done when

  • A RefusedStoredShape with id ui-dashboard-global-filter-reserved-date-range-refused sits beside dashboardDuplicateGlobalFilterName, built on reservedDateRangeGlobalFilters from packages/spec/src/ui/duplicate-global-filter-names.ts, reporting at globalFilters[i].name (or .field), the site the parse refuses, with the no-lossless-rewrite reason and the predicate's message. refused-shapes.test.ts pins it, with a control: an undeclared dateRange dashboard with such an entry is not listed.
  • The entry's acceptanceCriteria (18.ui-dashboard-global-filter-reserved-date-range-refused.ts) gains one sentence saying os migrate meta --stored lists such a row. The duplicate-name entry (dashboards: two globalFilters with the same name are accepted; the board draws one control and its value filters the other filter's field #29023 D3) gains the same sentence.

Serial: same file as any other open refused-shapes.ts card.

Related: #29213 / PR #29370, #29212 / PR #29399, #29023.

Activity

  1. objectstack-fleet commented on Nov 2, 2026

    @objectstack-fleet
    ContributorAuthor

    triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U

    Path: none

    Triage: p3 · domain:spec · pm:queue · 2026-11-02T18:55Z

    ⛔ Not a claim.


    Generated by Claude Code

  2. objectstack-fleet commented on Nov 2, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:spec#5 · os-warren · session_01JQwxbWR3K3h7i1ytwycVg1

    Claim: PM loop round 1
    Session: session_01JQwxbWR3K3h7i1ytwycVg1
    Account: os-warren
    Branch: claude/project-thread-uezs7d (card thread; the thread can push only its own branch, a measured platform exception to claude/issue-29541-…)
    Worktree: objectstack-issue-29541
    Domain: domain:spec
    Seat: domain:spec#5
    File surface: packages/spec/src/conversions/refused-shapes.ts (one new RefusedStoredShape beside dashboardDuplicateGlobalFilterName), packages/spec/src/conversions/refused-shapes.test.ts, packages/spec/src/migrations/entries/semantic/18.ui-dashboard-global-filter-reserved-date-range-refused.ts and the #29023 duplicate-name entry (one acceptanceCriteria sentence each), any ledger the detector moves, .changeset/29541-reserved-date-range-stored-detector.md
    Container & model: S/M, mode:thread, model: TIER_DEFAULT (dispatch-gates --tier: packages/spec/src/** is a Clause-② SUSPECT hint, judged from content: a stored-pass detector over an existing refusal, no accept-set change)
    Clause-②: no
    Metadata-protocol: none
    Responsibility: REFUSED_STORED_SHAPES has no detector for the #29213 refusal | none — PR #29370 shipped the refusal and its ADR-0087 entry without a stored-pass detector | operators running os migrate meta --stored before upgrading, today
    Thread-read: 6585624184
    Premise: holds — PR #29370 is merged (c268b72b), and refused-shapes.ts on origin/main carries dashboardDuplicateGlobalFilterName but no reserved-dateRange detector.
    Serial constraints: refused-shapes.ts is also on the path of #29554 (domain:spec#3, in build). The dev merges origin/main before the final gates and resolves additively. The seat lands this after any refused-shapes.ts PR ahead of it. No open PR touches the file now (census of 52 open PRs at 2026-11-02T19:33Z).

  3. objectstack-fleet commented on Nov 2, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:spec#5 · os-warren · session_01JQwxbXBJMBnWyspsxBN7j8
    os-dev-report

    {
      "issue": 29541,
      "status": "done",
      "branch": "claude/project-thread-uezs7d",
      "pr": "https://github.com/objectstack-ai/objectstack/pull/29586",
      "session": "session_01JQwxbXBJMBnWyspsxBN7j8",
      "premise_still_valid": true,
      "summary": "REFUSED_STORED_SHAPES gains dashboardReservedDateRangeGlobalFilter (id ui-dashboard-global-filter-reserved-date-range-refused), registered after dashboardDuplicateGlobalFilterName and built on reservedDateRangeGlobalFilters, the dashboard refinement's own predicate. It reports one TODO per entry at dashboards[i].globalFilters[j].name (or .field), with the no-lossless-rewrite reason followed by the predicate's message. Both dashboard globalFilters D3 entries (reserved dateRange, and the #29023 duplicate-name one) gain one acceptanceCriteria sentence saying os migrate meta --stored lists such a row. Changeset: @objectstack/spec patch, Clause-②: no, Metadata-protocol: none, as the PM assumed (measured: no accept-set change, no new export). Draft PR #29586 at head 9e7c4c35, 5 files, +137/-7.",
      "tests": "refused-shapes.test.ts: 5 new #29541 cases plus the roster pin. They cover the card shape at .name, a field-keyed entry at .field, a key both repeated and reserved listed under both refusals (3 TODOs, matching the 3 custom parse issues), and two CONTROLS: an undeclared dateRange (by name or by field) is not listed and parses; a named entry over field dateRange is not listed and parses. Targeted run: 6 files, 284 passed. Full spec suite at 9e7c4c35: Test Files 799 passed (799), Tests 23667 passed | 1 todo, exit 0. spec typecheck exit 0. spec build exit 0. check:generated: 14 up to date. Ablation (fix committed first, ablation-replace --delete of the registry line): 4 failed | 84 passed (88). The roster pin and the 3 listing cases went red and both controls stayed green. Restored: blob equals HEAD, git diff HEAD empty. No dist was involved: the suite imports from source.",
      "gates": "dispatch-gates --commands at 9e7c4c35 (after merging origin/main at dbca3ef0) derived 81 families from 5 paths (144 changed lines). All 81 were run after the last commit, exit codes recorded before any pipe, and all exit 0. check:dual-build-cjs-loads first answered exit 3 (no dist). After turbo build of ./packages/** (78 tasks, all cached) it answered exit 0: 115 entries across 70 packages. --ran: 81 derived, 81 run, 0 NOT-MEASURED, 0 UNRUN, exit 0. eslint --no-inline-config on the 4 changed ts files: exit 0. check-changeset-no-major --base origin/main: exit 0. CI check-runs on #29586: in_progress when this report was written. The seat reads their conclusion.",
      "dogfood_battery": "n/a: no ! in the PR title and no (narrowing) arm",
      "mcp_calls": "0",
      "api_writes": "2 relay writes: pr_create (objectstack-ai/objectstack#29586, 7594 bytes sent and stored, identical) and this os-dev-report comment on #29541. Plus 1 git push of the thread branch, which is not a REST write. All other GitHub calls were REST reads.",
      "open_questions": [],
      "security_findings": "none",
      "out_of_scope_findings": [
        "carrier: none · noted, not filed: no metadata-protocol save-door pin for the reserved-dateRange refusal (the duplicate-name sibling has protocol.dashboard-duplicate-global-filter-name-refusal.test.ts). It is outside this claim's file surface. PR #29370's spec test covers the refusal in each door's form. Named in the PR's Acceptance notes."
      ],
      "deviations": "PR body: the template headings (What changes, Why, Verification, Human Minimum) are folded into the os-dev order, and the platform attribution comment plus the Requested-by line sit above Fixes #29541 (the os-dev exception). Serial: no origin/main commit after the merge base touches refused-shapes.ts. At report time origin/main is 8 commits past the merge base, none on this diff's files, so no second merge was made.",
      "body_amendments": "none"
    }
  4. objectstack-fleet commented on Nov 2, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:spec#5 · os-warren · session_01JQwxbWR3K3h7i1ytwycVg1

    Release: claim 6586556271 (session session_01JQwxbWR3K3h7i1ytwycVg1), on the seat's stand-down. Order: Warren, 「spec 当前任务处理完,走下班流程」, project chat (relayed by the coordinator).
    Resume-from: claude/project-thread-uezs7d@9e7c4c35d569f3bc5dafb33d18b9c44574a2644a

    State for the next seat:

    The order was written at 2026-11-02T23:52Z.

  5. objectstack-fleet commented on Nov 3, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:spec#2 · os-support-ai · session_01WGufzhJG3tKnksHVa1krBz

    Claim: PM loop round 2
    Session: session_01WGufzhJG3tKnksHVa1krBz
    Account: os-support-ai
    Branch: claude/project-thread-une4f5 (card thread, executor session_01WGufzg4LNpBsJKihJRTLqD; the thread can push only its own branch, the measured platform exception to claude/issue-29541-…)
    Worktree: objectstack-issue-29541
    Domain: domain:spec
    Seat: domain:spec#2
    File surface: as PR #29586 (packages/spec/src/conversions/refused-shapes.ts, refused-shapes.test.ts, the two dashboard globalFilters D3 entries, .changeset/29541-reserved-date-range-stored-detector.md), plus the merge of origin/main over #29589's refused-shapes.ts edits.
    Container & model: S, mode:thread, model: TIER_DEFAULT (reason: a stored-pass detector over an existing refusal; the contract review goes to triage, the account's at-tier budget is spent, maintainer 2026-10-28), effort: medium
    Clause-②: no
    Metadata-protocol: none
    Responsibility: REFUSED_STORED_SHAPES has no detector for the #29213 refusal | none — PR #29370 shipped the refusal without one | operators running os migrate meta --stored before upgrading, today
    Thread-read: 6591550449
    Premise: holds — PR #29589 merged (57958aab, 2026-11-03T01:10Z), the serial the Release 6591550449 named; refused-shapes.ts on origin/main 1c1a5d40 still has no reserved-dateRange detector.
    Resume-from: claude/project-thread-uezs7d@9e7c4c35d569f3bc5dafb33d18b9c44574a2644a
    Serial constraints cleared: #29523 (this seat) adds an object-extension detector to the same refused-shapes.ts: different entry, ordinary concurrency, the later lander merges main and resolves additively.

  6. objectstack-fleet commented on Nov 3, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:spec#2 · os-support-ai · session_01WGufzg4LNpBsJKihJRTLqD

    os-dev-report

    {
      "issue": 29541,
      "status": "done",
      "branch": "claude/project-thread-une4f5",
      "pr": "https://github.com/objectstack-ai/objectstack/pull/29720",
      "head": "76d25fa9854e7d8620cb02013943a56e7d69bae5",
      "session": "session_01WGufzg4LNpBsJKihJRTLqD",
      "premise_still_valid": true,
      "summary": "Resumed from claude/project-thread-uezs7d@9e7c4c35 (draft PR #29586) on the pinned branch, then merged origin/main @ 3d5933a9 (contains #29589 57958aab). Conflicts only in packages/spec/src/conversions/refused-shapes.ts and refused-shapes.test.ts, resolved additively: #29589's refusedFieldPatchKeys / objectExtensionFieldPatchKeyGrammar and its ObjectExtensionSchema import kept, this card's dashboardReservedDateRangeGlobalFilter kept, header docblock names both borrowed predicates, REFUSED_STORED_SHAPES lists the dashboard detector then the object-extension one, roster pin counts both new ids. No os-regen path moved on either side, so os-regen-merge.sh had nothing to take. New draft PR #29720: Fixes #29541, Supersedes #29586. Contract review on the new head goes to triage per the claim.",
      "tests": "head 76d25fa9, os-verify-lock: spec test + typecheck VERDICT command-exit 0, Test Files 802 passed | 1 skipped (803), Tests 23789 passed | 1 skipped | 1 todo (23791). refused-shapes.test.ts alone: 92 passed (88 of #29586 + #29554's 4).",
      "gates": "dispatch-gates --commands --repo objectstack-ai/objectstack: 80 derived at 76d25fa9 (5 paths vs merge base 3d5933a9). Serial pass 69 exit 0, 11 exit 3 (no dist). After pnpm build under the lock (117/117, exit 0) the 11 rerun all exit 0. dispatch-gates --ran: 80 derived, 80 run, 0 NOT-MEASURED, 0 UNRUN. check-changeset-no-major --base origin/main exit 0 with the unchanged declarations (Clause-② no, Metadata-protocol none, spec patch). CI check-runs: pending at report time.",
      "dogfood_battery": "n/a — no `!` in the PR title and no (narrowing) arm",
      "mcp_calls": "0 — GitHub reads via gh api GETs only",
      "api_writes": "3 relay writes as objectstack-fleet[bot]: pr_create (#29720, 8130 bytes read back identical, with assignees [os-support-ai]), pr_request_reviewers (#29720, os-support-ai), comment (this report on #29541). Plus 1 git push of the thread branch.",
      "writes": "git push x1; relay pr_create x1 (with assignee leg); relay pr_request_reviewers x1; relay comment x1",
      "deviations": [
        "PR #29720 was opened WITH assignee os-support-ai and a review request for os-support-ai (session attribution step), against os-dev rule 2 (no assignees, three-write budget). Not undone to avoid further writes; the seat may unassign / remove the request.",
        "Ablation not re-run on the merged head; #29586's ablation (Tests 4 failed | 84 passed) stands and the merge touched no line of the dashboard detector.",
        "Worktree ../objectstack-issue-29541 kept for a patch round."
      ],
      "open_questions": [],
      "out_of_scope_findings": []
    }

    Generated by Claude Code

  7. objectstack-fleet commented on Nov 3, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:spec#2 · os-support-ai · session_01WGufzhJG3tKnksHVa1krBz

    Landed. PR #29720 merged through the queue (merge commit a5fcd065); this card closed as completed by its Fixes line.

    Reading Value
    PR #29720 MERGED at 2026-11-03T03:31Z, head 76d25fa9, contract review PASS on that head
    Card #29541 closed (completed) at 03:31:44Z

    State change: pm:dispatched removed (relay run 41572784421). Nothing remains on this card; the dev report listed no open questions.

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

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions