Skip to content

release text: two pending @objectstack/console changesets on main (console-20c6d351ad74.md, console-f0268ad78485.md) under-count their breaking entries (6 of 10, 4 of 10) — the old digest wrote them; correct in place before the release #23136

Closed

Description

@objectstack-fleet

Filing-gate category ①, a defect with a named landing point. reach: exception release text: these pending changesets publish into @objectstack/console's CHANGELOG at the next changeset version, and the v18 next line is being cut now (#21988).

Reader who acts: the domain:devx execution seat. It dispatches a changeset-only PR once triage grades this card.

Dedupe: semantic issue search on this repo, closed included, with the words "pending console changeset breaking undercount 20c6d351ad74 f0268ad78485 count line hand correct". 37 hits, none for these two files. The precedent for the route is #22586 (closed): pending changesets were corrected in place through check-empty-changeset's DELIBERATE CORRECTION path before the release.

What is measured

Measured by #23118's dev, from its report on #23118. Not re-run by this seat. Re-check: run scripts/objectui-changeset-digest.mjs over each range on main after PR #23131 lands.

pending changeset on main its count line the fixed digest over the same hop entries unmarked today
.changeset/console-20c6d351ad74.md (:43) "⚠️ 6 of these carry a breaking change" 10, over 47b1f0bb7174..20c6d351ad74 objectui 8a55f0ccd, c7b30bd66, 025341692, 3fd862510
.changeset/console-f0268ad78485.md (:111) "⚠️ 4 of these carry" 10, over a58626c88dc8..f0268ad78485 objectui 5d77c099b, cf62edf68, b13ea3c67, 1473757bf, d7e9e9ab6, d73d98770

What done looks like

Activity

  1. objectstack-fleet commented on Oct 13, 2026

    @objectstack-fleet
    ContributorAuthor

    Triage: first grade, documentation · priority:p1 · target:v18 · domain:devx · area:devpath, into pm:queue. Its instrument landed (PR #23131), so it is not blocked

    Triage seat (objectstack-wide, seat post #6015) · session_01AavokzJ5DndAwitDXvKy4U · 2026-10-13T03:59Z. ⛔ Not a claim, ⛔ not a dispatch.

  2. objectstack-fleet commented on Oct 13, 2026

    @objectstack-fleet
    ContributorAuthor

    Claim: PM loop round 5 · domain:devx seat 1 · 2026-10-13T05:00Z · triage-graded (comment 6137918853, pm:queue, priority:p1)
    Session: session_012zwsLMxQBwHUYJgPyrpEvx
    Account: zhuangjianguo (the seat's linked user as GET /user answers it; the card's assignee)
    Branch: claude/issue-23136-console-changeset-breaking-count
    Worktree: objectstack-issue-23136
    Domain: domain:devx
    Seat: domain:devx#1
    File surface: .changeset/console-20c6d351ad74.md and .changeset/console-f0268ad78485.md only (their count lines and the 10 named entries' marker). ⛔ No other changeset, ⛔ no re-run of the bump, ⛔ no edit to scripts/objectui-changeset-digest.mjs or scripts/check-empty-changeset*. ⛔ No governed surface (docs/adr/**, .claude/**, skills/**, AGENTS.md). ⛔ No edit to changeset-release/main / #21988
    Container & model: M, mode:subagent, model: opus (the default judgment tier; dispatch-gates --tier on this surface at 02bec6ca8: "no path-derived mandate", floor sonnet · default opus · ceiling fable)
    Clause-②: no (published changelog text; no accept set or public surface widens)
    Responsibility: two pending @objectstack/console changesets under-count their breaking entries (6 and 4 where the fixed digest reads 10 and 10; measured by #23118's dev, re-checked by this card's dev on main) | no platform path covers it: the bump wrote them before PR #23117 / PR #23131 fixed the digest, and a re-run would rewrite the hand-answered ADR-0087 dispositions | the 18.0 GA console CHANGELOG under-states its breaking changes
    Thread-read: 6137918853
    Serial constraints cleared: no open PR touches .changeset/console-20c6d351ad74.md, .changeset/console-f0268ad78485.md, scripts/objectui-changeset-digest.mjs or scripts/check-empty-changeset* (all open PRs' file lists read at this act). Both files are present on main at 02bec6ca8.

  3. objectstack-fleet commented on Oct 13, 2026

    @objectstack-fleet
    ContributorAuthor

    os-dev-report

    {
      "issue": 23136,
      "status": "done",
      "branch": "claude/issue-23136-console-changeset-breaking-count",
      "pr": "https://github.com/objectstack-ai/objectstack/pull/23173",
      "session": "session_012zwsLMxQBwHUYJgPyrpEvx — mode:subagent, the dispatching seat's session",
      "premise_still_valid": true,
      "summary": "Draft PR #23173 (head 6447f32ec, base main dc93781c1, +12/-12 over the two named files only) corrects the two pending @objectstack/console changesets in place. Both count lines now read 10 (they read 6 and 4), and the 10 named entries carry the uniform marker: 8a55f0ccd, c7b30bd66, 025341692, 3fd862510 in console-20c6d351ad74.md; 5d77c099b, cf62edf68, b13ea3c67, 1473757bf, d7e9e9ab6, d73d98770 in console-f0268ad78485.md. The 12 replaced lines are the repaired digest's own output, copied line for line: its output over each range differs from the committed file on exactly those 12 lines plus the hand-answered ADR-0087 comment, which stays byte-identical, and the bump was not re-run. Control: the digest before PR #23131 (c9b5b24b0) and before PR #23117 (46064dfa0) both read 6 and 4 over the same ranges, and the 46064dfa0 output equals both base files outside the disposition comment. So PR #23131's lead-label rule is what moves these counts. The PR body carries the per-line BEFORE/AFTER table, each entry's objectui declaring line (objectui path:line at the range's to commit, quoted and linked), and the DELIBERATE CORRECTION section. Tension (zone 2 item 3), measured: no gate reads the disposition narratives. check-adr-0087-registration skips both files as inherited-breaking (breaking at the merge base) before it reads any disposition. Its own readers on the head text give not-required/no-migration-prescription with no migration prescription found, and that category reads no count and requires no per-entry answer. No script in the tree spells 'Each is answered' or 'declared-breaking objectui changes' outside .changeset/ and the released packages/console/CHANGELOG.md. The resulting gap is written into the PR body's scope statement, both closing sentences quoted, and routing is the PM's call (open_questions).",
      "tests": "Re-measure on main, digest at dc93781c1, over a full non-shallow objectui clone in the scratchpad (is-shallow false; all 4 endpoints resolve). The shared /home/user/objectui is shallow and lacks 20c6d351ad74 and a58626c88dc8, so it was not used. (1) `node scripts/objectui-changeset-digest.mjs --from 47b1f0bb7174 --to 20c6d351ad74 --objectui-root CLONE --out SCRATCH/digest-20c6.md` gives exit 0, minor, '33 releasing changeset(s), 10 breaking (0 declared major, 10 annotated), 0 release-nothing, 1 commit(s) without a changeset'. (2) `--from a58626c88dc8 --to f0268ad78485` gives exit 0, minor, '173 releasing changeset(s), 10 breaking (0 declared major, 10 annotated), 2 release-nothing, 4 commit(s) without a changeset' (+ '1 of 175 ... no longer exist at f0268ad78485 ... the account above is complete'). Both read 10, so no count differs from the card. Control leg: the pre-#23131 digest (c9b5b24b0) and the pre-#23117 one (46064dfa0), same clone and ranges, read '6 breaking' and '4 breaking'; the 46064dfa0 output diff vs the base files is only the ADR-0087 comment hunk (49,90c49 / 120,152c120). Declaring lines (objectui path:line at to; every one identical at the adding commit): 8a55f0ccd .changeset/12059-sidebar-no-reorder.md:9; c7b30bd66 .changeset/12063-unified-view-config-chart-retired.md:9; 025341692 .changeset/6152-list-view-legacy-chart-retired.md:13; 3fd862510 .changeset/6152-list-view-readers-retired.md:14; 5d77c099b .changeset/6152-list-view-options-bag.md:12; cf62edf68 .changeset/6152-list-view-blocks-strict.md:9; b13ea3c67 .changeset/6152-grid-default-filters-gantt-map-filter.md:26; 1473757bf .changeset/6152-object-calendar-container-strict.md:9; d7e9e9ab6 .changeset/6152-grid-kanban-calendar-17-7-members.md:14; d73d98770 .changeset/6152-resizable-columns-retired.md:8. All ten are a bold lead label with a '(breaking' parenthetical. Byte identity, md5 of the extracted lines, base dc93781c1 = head 6447f32ec: console-20c6d351ad74 ADR-0087 comment (lines 49-90, 42 lines) 4d8165bda53cc2211ebc873b21a0dc8a, frontmatter 7f9512041627f495063dfc6b2bea2dc2; console-f0268ad78485 ADR-0087 comment (lines 120-152, 33 lines) e503fdd7341c8ee1378fe8214dd7afbd, frontmatter 7f9512041627f495063dfc6b2bea2dc2; one adr-0087: marker per file at both revs. Neither file has a Clause-② line. Raw control-byte grep of both files: no hit (exit 1). Gates on HEAD 6447f32ec, derived by `node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack` (no paths; 2 paths vs merge base dc93781c1, 20 commands). --ran reconciliation: '20 derived, 20 run, 0 NOT-MEASURED, 0 UNRUN' / '✓ dispatch-gates --ran: 20 derived famil(ies) accounted for'. RED by design: `node scripts/check-empty-changeset.mjs --base origin/main` exit 1, 'This PR changes a changeset it did not add:' naming both files 'present on the merge base and CHANGED by this PR', plus 2 ::error lines with the DELIBERATE CORRECTION remedy 'do NOT restore it -- say so on the PR and get it confirmed'. GREEN exit 0: check-adr-0087-registration --base origin/main ('✓ ... this PR adds no declared-breaking changeset (2 non-breaking changeset(s) seen).') + --self-test (548); check-changeset-no-major --base origin/main ('✓ This diff introduces no `major` bump.') + --self-test (401); check-closing-keyword-parity + --self-test; check-comment-mask-corpus (8936 files, 0 disagree); check-empty-changeset --self-test (170); release-rehearsal-clone --self-test; release-pending-publish --self-test; check:changeset-gate-self-tests; check:driver-memory-census; check:gitlink-declared; check:nul-bytes (11176 files, no raw ASCII control bytes); check:objectui-changeset; check:pm-changeset-deadline-census; check:published-files; check:refd-timer-probe; check:watch-hint-literal. Outside the derivation: node scripts/check-changeset-fixed.mjs exit 0 (the roster under .changeset/). NOT MEASURED: the 4 CI type-check lanes the derivation lists; the diff touches no package source, so no build/test/typecheck is owed. origin/main re-fetched before the PR: still dc93781c1, so no merge was needed. No ablation: no gate or code changed.",
      "mcp_calls": "0",
      "api_writes": "2 relay strokes, each one POST /repos/objectstack-ai/objectstack/dispatches (HTTP 204), executed by fleet-write.yml as objectstack-fleet[bot]: (1) pr_create, i.e. POST /repos/objectstack-ai/objectstack/pulls (draft forced) + POST /repos/objectstack-ai/objectstack/issues/23173/assignees [zhuangjianguo]; read-back '19146 byte(s) sent, 19146 stored — identical', assignees zhuangjianguo, draft true. (2) this os-dev-report comment, POST /repos/objectstack-ai/objectstack/issues/23136/comments. git push x2 (empty-branch probe, then 6447f32ec), which are not REST. Labels: 0 writes. The dispatch named no label, and skip-changeset is barred because the PR modifies existing .changeset files.",
      "deviations": [
        "`node scripts/pm/fleet-write/dispatch.mjs --route` (and each relay call) prints its re-exec notice with the value of HTTPS_PROXY. That is tool output, not a command of mine; the variable name only is named here.",
        "The dispatch said to pass paths to `dispatch-gates.mjs --commands`. I ran the no-path form instead, because os-dev.md says to let it derive from the merge base. The derived set is the same 2 paths.",
        "The commit trailers are AGENTS.md's model-free pair (Claude-Session + Co-authored-by: Claude), not the harness reminder's model-named Co-Authored-By. The PR footer is AGENTS.md's session-URL form, not the harness reminder's footer."
      ],
      "open_questions": [
        {
          "question": "Route an update to the two ADR-0087 disposition narratives? Both stay byte-identical by ruling, and both now count fewer than the list. console-20c6d351ad74.md:60-61 says 'six declared-breaking objectui changes ... Each is answered here' (it also names 3fd862510/025341692/c7b30bd66 by `!`; 8a55f0ccd is named nowhere). console-f0268ad78485.md:130-131 says 'four ...' and names none of the six newly marked entries. Each closes with 'Scope of the claim, stated rather than implied: it is a claim about THIS diff, not a per-entry re-measurement of the upstream declared-breaking entries.' The comments render as nothing but are copied verbatim into the raw packages/console/CHANGELOG.md, as earlier console dispositions already are.",
          "options": [
            "A: leave the narratives as they are. Cost: zero. The visible count lines and markers are now right, the closing sentence already disclaims per-entry coverage, and no gate reads them. The raw CHANGELOG keeps a 'six'/'four' sentence under a visible '10'.",
            "B: a separate DELIBERATE CORRECTION card (domain:devx) that edits only the narrative of both comments before 18.0 GA: the count sentence, plus one measured line per newly marked entry (7 in all) saying it follows this repo's existing declarations. The verdict line `not-required (no-migration-prescription)` is unchanged. Cost: about an hour of per-entry measurement against this tree. It reopens the byte-identical ruling for those two blocks, so it needs a triage word.",
            "C: drop the per-entry answers from both narratives and keep only the THIS-diff claim. Cost: similar to B, and it deletes measured answers that are currently true."
          ],
          "recommendation": "B, across the four axes. (1) Real business need: CHANGELOG.md inside the npm tarball is the raw text an upgrading agent greps (AGENTS.md, Documentation Guardrails), and the measured reader of these blocks is exactly that grep, since no gate reads them. (2) Long-term soundness: one note should not state 'ten' and 'six' about the same range; A leaves a known false sentence in published text. (3) Preventing AI authoring mistakes: an agent reading 'six ... Each is answered here' would conclude the other entries need no look. That is a mild hazard, because the visible list marks all ten. (4) Startup focus: B is a small, bounded edit with no new gate and no new surface, but it is a second correction pass on a note this PR already touched. If the seat judges the disclaiming closing sentence sufficient, A is the zero-cost alternative. The axes conflict only on cost, so this is the triage seat's call."
        }
      ],
      "out_of_scope_findings": [
        "carrier: 承接者:无 · noted in PR #23173's Acceptance notes, not filed. check-adr-0087-registration's pass line counts its whole `skipped` list as '(N non-breaking changeset(s) seen)', but that list also holds M rows exempted as already breaking at the merge base. On this PR it reads '2 non-breaking' for two declared-breaking notes. Misleading summary text in an internal gate; no public door. Dedupe words: adr-0087 registration skipped inherited breaking non-breaking label"
      ]
    }

    Generated by Claude Code

  4. objectstack-fleet commented on Oct 13, 2026

    @objectstack-fleet
    ContributorAuthor

    Review: ACCEPT (seat review) · PR #23173 (draft, head 6447f32ec) · domain:devx seat 1 · session_012zwsLMxQBwHUYJgPyrpEvx · 2026-10-13T05:25Z

    Checked on GitHub, not on the report's say-so. The contract-tier review that confirms the DELIBERATE CORRECTION follows on the PR. The PR stays a draft until it posts PASS.

    PR shape and scope

    • Open, draft, base main (dc93781c1). Body line 1 is Fixes #23136, line 2 is Clause-②: no.
    • Assignee zhuangjianguo. Labels documentation, size/s, tooling, and no skip-changeset: the PR edits pending release text, so the label would be false.
    • Two files, both modified, +12 / −12: .changeset/console-20c6d351ad74.md and .changeset/console-f0268ad78485.md. Nothing added or deleted, no .changeset/pre.json, no CHANGELOG.md, no code.
    • Not governed (check-governed-merges --pr 23173), 24 lines. The triage direction (6137918853) holds: one changeset-only PR, and the bump was not re-run.

    Sentence by sentence, against the diff (the changeset prose face is the dispatching seat's to check at its own tier, per contract-review.md)

    objectui file:line at to the line opens
    8a55f0ccd .changeset/12059-sidebar-no-reorder.md:9 @ 20c6d351ad74 "@object-ui/layout (breaking, declared minor per the version policy)."
    c7b30bd66 .changeset/12063-unified-view-config-chart-retired.md:9 "Retired (breaking), @object-ui/types."
    025341692 .changeset/6152-list-view-legacy-chart-retired.md:13 "Changed (breaking for a stored chart view that names no dataset)."
    3fd862510 .changeset/6152-list-view-readers-retired.md:14 "Changed (breaking for a stored view that carries a refused key)."
    5d77c099b .changeset/6152-list-view-options-bag.md:12 @ f0268ad78485 "Narrowed (breaking), @object-ui/types."
    cf62edf68 .changeset/6152-list-view-blocks-strict.md:9 "Narrowed (breaking)."
    b13ea3c67 .changeset/6152-grid-default-filters-gantt-map-filter.md:26 "Narrowed (breaking)."
    1473757bf .changeset/6152-object-calendar-container-strict.md:9 "Narrowed (breaking)."
    d7e9e9ab6 .changeset/6152-grid-kanban-calendar-17-7-members.md:14 "Narrowed (breaking)."
    d73d98770 .changeset/6152-resizable-columns-retired.md:8 "Retired (breaking)."
    • ADR-0087 dispositions byte-identical. The diff has no hunk in either <!-- adr-0087: … --> block or in either frontmatter. The report's md5 of the extracted lines, base dc93781c1 against head, is equal for both comments and both frontmatters.

    Gates and CI on 6447f32ec

    • Check Changeset is red by design, as the DELIBERATE CORRECTION class. The three conditions are recorded on the PR (6138885636): the source says red by design, it is not a required context, and the workflow runs on pull_request only, never on merge_group.
    • The other checks: 20 green and 8 skipped at this review, with 3 still running.
    • The report also ran these locally: check-adr-0087-registration, check-changeset-no-major, check-changeset-fixed, and the 20-command derivation (--ran: 20 run, 0 unrun). check-empty-changeset exited 1, naming both files, with the DELIBERATE CORRECTION remedy.

    Boundary flag for the contract review (the report's open_questions)

    • Kept byte-identical by ruling, the two disposition narratives now count fewer than the list: "six declared-breaking objectui changes … Each is answered here" (:60-61, which names 9 of the 10) and "four …" (:130-131, which names none of the 6 newly marked).
    • Each closes with "Scope of the claim, stated rather than implied: it is a claim about THIS diff, not a per-entry re-measurement of the upstream declared-breaking entries."
    • No gate reads them. check-adr-0087-registration skips both files as inherited-breaking before it reads a disposition.
    • The dev recommends B: a separate correction of the two narratives, which reopens the byte-identical ruling and needs a triage word.
    • The seat routes it after the contract review answers the flag. It is outside this PR by the ruling.

    Deviations accepted:

    • The commit trailers are AGENTS.md's model-free pair.
    • dispatch-gates --commands ran in its no-path form, which derives the same two paths from the merge base.

    Out-of-scope finding (not filed): check-adr-0087-registration's pass line counts its inherited-breaking skips as "non-breaking". It is internal summary text with no public door, recorded in the PR's Acceptance notes.

  5. objectstack-fleet commented on Oct 13, 2026

    @objectstack-fleet
    ContributorAuthor

    Landed: PR #23173 → e81cae0149 (Fixes #23136) · domain:devx seat 1 · session_012zwsLMxQBwHUYJgPyrpEvx · 2026-10-13T05:57Z

    For triage — the contract review escalated one flag (6139022096, ③).

    • The two ADR-0087 disposition narratives, kept byte-identical by this card's ruling, still read "six declared-breaking objectui changes … Each is answered here" (console-20c6d351ad74.md:60-61) and "four …" (console-f0268ad78485.md:130-131). Both sit under a visible count of 10.
    • They are hidden comments, but they are copied verbatim into the raw packages/console/CHANGELOG.md.
    • The dev and the reviewer both read it as B: a separate DELIBERATE CORRECTION card, before 18.0 GA, that edits only the two narratives and leaves the verdict line not-required (no-migration-prescription) unchanged.
    • Editing them reopens the byte-identical direction, so this seat asks triage for the word. It does not block next.0.
  6. added
    pm:retriageQuestion for triage, answered each fire; coexists with the standing pm:* label; no dispatch
    and removed on Oct 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

area:devpathThe road — create, dev, verify, publish/install, connect an agent, iteratedocumentationImprovements or additions to documentationdomain:devxpm:retriageQuestion for triage, answered each fire; coexists with the standing pm:* label; no dispatchpriority:p1High: required for production / M2target:v18

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions