Skip to content

ui: follow-ups of the dataset caller arm (#32311) — stale 32077 BREAKING line, the colour-probe guard pin, ReportView drill bare read #32760

Closed

Description

@objectstack-fleet

domain:ui#2 · os-lizheng · session_012MmDsRT6hvZsQH9dTzn4CA

Follow-up of #32311 / PR #32629, from the epic red-line read 6827072400 (epic:#31527#1, PASS-with-nits at e0d3c546d). Nit 1 (the changeset sentence about the date range) is fixed in PR #32629 itself; nits 6 and 7 are seat bookkeeping, done there.

Parked per the epic release-line ruling 6824949405 / 6825014736 (review follow-up cards are parked).
Restart-when: the release that carries the epic #31527 release line is published (ruling on #31527, 6824949405)

Items

  1. The pending 32077-dataset-query-package changeset's BREAKING TO-line goes stale once PR fix(ui): dataset callers send the reader's package (?callerPackage=) instead of the exact qualifier, and the report date read and chart colour probe read by package (ADR-0150 D3) #32629 lands. That line refuses, with not-held-by-qualifier, a package item whose dataset only a dependency holds; after fix(ui): dataset callers send the reader's package (?callerPackage=) instead of the exact qualifier, and the report date read and chart colour probe read by package (ADR-0150 D3) #32629 that case is served. Amend the TO-line as a DELIBERATE CORRECTION, naming outside-closure as the residual break, before the release cut that consumes both. If a release cuts between the two, drop this item. (Epic nit 2.)
  2. The colour probe's non-2xx guard has no test that tells it apart. ObjectChart.tsx ~669: the dev's ablation A10 stayed green because an ADR-0112 409 envelope names no object. Add a pin whose refused response would be drawn without the guard. (Epic nit 4.)
  3. handleDatasetDrill in app-shell ReportView.tsx still reads the dataset bare on the old-server branch (no drill metadata). It is dormant against current servers. Either send callerPackage there too, or delete the branch if no supported server takes it. (Epic nit 5; PR fix(ui): dataset callers send the reader's package (?callerPackage=) instead of the exact qualifier, and the report date read and chart colour probe read by package (ADR-0150 D3) #32629 Acceptance notes.)

Out of the card: epic nit 3 (a server older than #32310 drops ?callerPackage=) is not an issue against current main.

Activity

  1. added
    findingRecorded observation — held, not dispatchable until the findings triage round grades it
    domain:uiDomain lane — seat card indexed by label:pm:seat
    on Nov 12, 2026
  2. objectstack-fleet commented on Nov 12, 2026

    @objectstack-fleet
    ContributorAuthor

    triage#1 · hotlong · session_01Q4EjjMnyLqJdzuktEmRPXH

    Path: none

    Triage: finding promoted → domain:ui · p3 · pm:on-hold · 2026-11-12T15:48Z

    ⛔ Not a claim.


    Generated by Claude Code

  3. added
    pm:on-holdDecision made, deliberately deferred — no dispatch, no nag; restart condition in the hold comment
    and removed
    findingRecorded observation — held, not dispatchable until the findings triage round grades it
    on Nov 12, 2026
  4. objectstack-fleet commented on Nov 12, 2026

    @objectstack-fleet
    ContributorAuthor

    epic:#31527#1 · os-sales · session_01L6bhgXQnNkXTT1Wu7i7Y3i

    Re-graded and queued · #32760 · 2026-11-12T22:42Z. It keeps priority:p3 and goes to pm:queue. The maintainer (Sales) ruled that no epic card is parked: small issues are graded priority:p3 and queued behind p1 and p2, and p1 goes first. The park under 6824949405 is withdrawn for this card.


    Generated by Claude Code

  5. added
    pm:queueReady for the PM dispatch loop
    and removed
    pm:on-holdDecision made, deliberately deferred — no dispatch, no nag; restart condition in the hold comment
    on Nov 12, 2026
  6. objectstack-fleet commented on Nov 14, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:ui#1 · os-project-manager · session_01FEkQ5nWoa1Ze1QzjRTSYXD

    Claim: PM loop round 1 · 2026-11-14T16:20Z
    Session: session_01FEkQ5muSKmXfKL9WVj7dKY (card thread, dev) · seat session_01FEkQ5nWoa1Ze1QzjRTSYXD
    Account: os-project-manager
    Branch: claude/project-thread-yut48b
    Worktree: objectstack-issue-32760
    Domain: domain:ui
    Seat: domain:ui#1
    File surface: ui/packages/plugin-charts/** ObjectChart.tsx colour-probe guard and its test, ui/packages/app-shell/src/views/ReportView.tsx handleDatasetDrill and its test, root .changeset/. ⛔ No edit to any pending changeset this PR did not add.
    Container & model: S, mode:thread, model: default tier, effort: medium
    Clause-②: no
    Metadata-protocol: none
    Responsibility: n/a — review follow-ups (a missing pin, a dormant bare read, a possibly stale changeset line), not a defect card
    Thread-read: 6837951505
    Premise: item 1 likely void: no .changeset/32077-* on origin/main 71ade1ae (18.4.0 shipped via PR #29963); items 2 and 3 re-measured by the dev on origin/main
    Serial constraints cleared: no domain:ui card is pm:dispatched at claim time (live label read); no other ui seat holds a Claim: on these files

    Scope: items 2 and 3, item 1 only if its changeset still exists, one PR, Fixes #32760. Dispatched under 「p1 p2 处理完了,就可以处理 p3」 (2026-10-26T10:29Z). The declaration lines start at no / none; the dev measures them on the diff, and the seat amends this claim if they differ. Order: /mnt/project-files/pm-orders/ui/order-32760.md. Summons: the maintainer's 「开一个 ui 车道,派发 p1 p2 任务」 (this project, 2026-11-14T14:13Z).

  7. added
    pm:dispatchedDispatched to a dev agent by /pm-dispatch
    and removed
    pm:queueReady for the PM dispatch loop
    on Nov 14, 2026
  8. objectstack-fleet commented on Nov 14, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:ui#1 · os-project-manager · session_01FEkQ5nWoa1Ze1QzjRTSYXD

    Claim amendment to 6880548960 · 2026-11-14T16:24Z · file surface and declaration (branch and session unchanged)

    Clause-②: yes (widening)
    Metadata-protocol: none
    File surface: as claimed, plus ui/packages/data-objectstack/src/metadata-client.ts and its test: an optional callerPackage on MetadataGetOptions, sent as ?callerPackage=.

    Why: the dev measured that ReportView's bare dataset read is not old-server-only (a report grouped by a date dimension with no dateGranularity gets no objectFilter from the current server, so the click reaches the fallback). So item 3 sends callerPackage there rather than deleting the branch. The meta door already accepts ?callerPackage= (meta-item-read-gate.ts), and the dataset callers of #32311 already send it; the published MetadataClient.get gains the one optional option so the console keeps its one meta client (auth, environment, draft-preview overlay) instead of a hand-rolled fetch. Item 1 is dropped: no .changeset/32077-* on origin/main; both notes shipped in 18.4.0.

  9. objectstack-fleet commented on Nov 14, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:ui#1 · os-project-manager · session_01FEkQ5muSKmXfKL9WVj7dKY

    os-dev-report
    {
    "issue": 32760,
    "status": "done",
    "branch": "claude/project-thread-yut48b",
    "pr": "#33366",
    "session": "session_01FEkQ5muSKmXfKL9WVj7dKY",
    "premise_still_valid": true,
    "summary": "Item 1 dropped: no .changeset/32077-* on origin/main 71ade1a; it shipped in 18.4.0 (PR #29963) beside #32629's changeset, whose own CHANGELOG entry already states the outside-closure residual. Item 2: ObjectChart.optionColors.test.tsx gains a row whose 409 body also carries a definition naming task; with the guard ablated the chart reads meta/object/task and relabels todo as To do (red), the old 409 row stays green. Item 3 measured NOT old-server-only: the current server sets object on every dataset answer but sends no dimensionFields/drillRawRows for a type:'date' dimension and no drillRanges without dateGranularity (optional in DatasetDimensionSchema), so a report grouped by such a dimension reaches ReportView's fallback; per the ruling it now sends callerPackage (servedPackageId(editSchema || reportData)) through a new optional MetadataGetOptions.callerPackage on @object-ui/data-objectstack MetadataClient.get (sent as ?callerPackage=), the route the seat amended the claim for (6880606745). Clause-②: yes (widening), Metadata-protocol: none, patch.",
    "tests": "Head c72c8a0. New/edited: ObjectChart.optionColors.test.tsx (1 row), ReportView.drillCallerPackage-32760.test.tsx (4 rows, renders the real ReportView + report renderer and clicks dataset-drill-row with the current server's date-dimension answer), metadata-client.callerPackage-32760.test.ts (3 rows). Suites: pnpm --dir ui exec vitest run packages/data-objectstack/ packages/plugin-charts/ packages/app-shell/src/views/ReportView -> 229 files passed, 2755 passed / 9 skipped, lock VERDICT command-exit 0 (head 4afe687; the last commit only adds a module-top import to the ReportView test, re-run alone on c72c8a0: 4/4). Type-check: @object-ui/data-objectstack, @object-ui/app-shell (tsc --noEmit + tsconfig.test.json), @object-ui/plugin-charts: each VERDICT command-exit 0, after building the app-shell^... and plugin-charts^... closures. Ablations via scripts/ablation-replace.mjs, each restore 'ok restored: blob == HEAD and git diff HEAD is empty'; ui vitest aliases @object-ui/* to src so no rebuild: B1 guard made never-true -> 1 failed / 11 (expected 'To do' to be 'todo'); B2 ReportView passes {} -> 2 failed / 7 (READS_AS_THE_REPORTS_READER, REFUSAL_IS_NO_DRILL); B3 client never pushes callerPackage= -> 2 failed / 7.",
    "gates": "Local: node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack on c72c8a0 derives 37 families; all 37 run, each exit 0 captured before any pipe (record /mnt/project-files/pm-orders/ui/32760-gates-ran.txt and the PR body); --ran reconciliation: 37 derived, 37 run, 0 NOT-MEASURED, 0 UNRUN. First pass on 4afe687 had check:test-source-alias exit 1 (new ReportView test reaches a dynamic import('@objectstack/lint') via ReportConfigPanel); fixed with a module-top import, full list re-run. check:type-check-debt: 0 ledger entries re-measured. CI check-runs: in_progress at report time (PR just opened); the seat reads them.",
    "dogfood_battery": "n/a — no ! in the PR title and no (narrowing) arm",
    "mcp_calls": "4 — read only: issue_read get #32760, issue_read get_comments #32760 (x2), pull_request_read get #32629. No MCP write.",
    "api_writes": "2 relay writes — pr_create (fleet-write run 43621788687, PR #33366, draft forced, body read back identical 12026 bytes, no assignees, no labels sent) and this os-dev-report comment on #32760 via post-stamped.mjs. Plus two git pushes of the harness branch (not REST). Write budget spent: 3 of 3 (push, pr_create, report).",
    "deviations": [
    "No labels on pr_create: the order named none and skip-changeset does not apply (the diff ships @object-ui/data-objectstack src and the console's app-shell), so the key is omitted.",
    "File surface and Clause-② differ from the original claim; the seat amended both before the edit (6880606745).",
    "Package suites narrowed to packages/data-objectstack/, packages/plugin-charts/ and app-shell's ReportView* files; the rest of app-shell (~2,200 files) is left to CI's sharded Test UI. test:repo not run locally (no repo-project file touched); CI Test Core runs it."
    ],
    "open_questions": [],
    "security_findings": "withheld",
    "out_of_scope_findings": [
    "class: none (read-only inference, not filed) · on the ReportView fallback a type:'date' dimension with no dateGranularity filters its field by the clicked group value as the answer shows it; whether the server's label pass rewrites that value was not measured; the fallback also ignores the object the current server sends · carrier: none (noted in the PR's Acceptance notes)"
    ]
    }


    Generated by Claude Code

  10. objectstack-fleet commented on Nov 14, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:ui#1 · os-project-manager · session_01FEkQ5nWoa1Ze1QzjRTSYXD

    Seat review: PR #33366 ACCEPT on head c72c8a04 (2026-11-14T17:57Z), contract record PASS 6881609696. Base synced (K = 25); lands after the rerun is green.

  11. objectstack-fleet commented on Nov 14, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:ui#1 · os-project-manager · session_01FEkQ5nWoa1Ze1QzjRTSYXD

    Landing → PR #33366 comment 6882119524 · head 14f931ea (base sync), 58 check runs green · ready + auto-merge · 2026-11-14T18:20Z

  12. objectstack-fleet commented on Nov 14, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:ui#1 · os-project-manager · session_01FEkQ5nWoa1Ze1QzjRTSYXD

    Landed · 2026-11-14T21:11Z

    reading value
    PR #33366 MERGED as 9499dcc5 on main (closes this card via Fixes #32760), on its third queue entry; both earlier dequeues were timeouts in tests the diff cannot reach (6882474799, 6883327624)

    State: pm:dispatched removed, assignee cleared; card closed by the merge.

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

    domain:uiDomain lane — seat card indexed by label:pm:seatpriority:p3

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions