Skip to content

chore(objectui): move the console pin to objectui main (1fb1ced36243 at filing), then run every surface:browser and surface:mixed checklist item against the console built from the new pin #23104

Closed

Description

@objectstack-fleet

Maintainer-directed (direct dispatch channel). The maintainer, in Claude Code session session_016JB93R2KcQP4GgKaUnseVF on 2026-10-12, verbatim:

objectui pin 更新到最新版,并使用浏览器对前端界面进行完整的测试

This card carries both halves of that order: the pin hop, and a full browser pass of the console at the new pin.

Readings (2026-10-12T22:15Z)

Half 1 — the pin hop

Move .objectui-sha to the objectui main tip at the moment the work starts (1fb1ced36243 at filing; if main moved since, take the new tip and say which in the PR) through the dedicated bump script, with the full second half of the pin procedure (AGENTS.md → Frontend; docs/releases-maintenance.md): the console changeset the script derives, the regenerated sdui.manifest.json + scripts/sdui-manifest.record.json, the pin-citation re-measure, the sdui-parser lockstep, and the Console Pin Gate steps run locally. Precedent shape: #23061 / #23018.

Half 2 — the browser pass

Every runnable surface:browser and surface:mixed item in docs/qa/platform-checklist/, driven in a real browser against the hop's PR head with the console built from the new pin, per docs/qa/platform-checklist/RUNNER.md. One qa-run record per selector (surface:browser, surface:mixed), text only. Every product defect a run finds is extracted to its own card in the repository its fix lands in (console defects go to objectstack-ai/objectui), with a QA-source: line. Precedent: #21710 (hop), then #21782 and #21784 (the two records).

A failing clause whose cause lies inside the hop's objectui commits is a regression of this hop: the pin PR does not land until it is fixed upstream or the pin target is moved off it, and the record names it.

Acceptance

  • The pin PR's checks are green, including check:sdui-manifest and check:console-sha, and the PR states the exact objectui sha it pins.
  • Both qa-run records exist and are linked from a comment on this card, each with every runnable item judged or listed as not-run in a handoff list; every fail carries one of the four dispositions.
  • No hop regression is open against the PR when it lands.

Activity

  1. objectstack-fleet commented on Oct 12, 2026

    @objectstack-fleet
    ContributorAuthor

    Claim: PM loop round 1
    Session: session_016JB93R2KcQP4GgKaUnseVF
    Account: os-steve
    Branch: claude/issue-23104-objectui-pin-1fb1ced
    Worktree: objectstack-issue-23104
    Domain: domain:devx
    Seat: domain:devx#2
    File surface: .objectui-sha, .changeset/ (console changeset + pin-citations changeset), sdui.manifest.json, scripts/sdui-manifest.record.json, packages/sdui-parser/objectui-lockstep.json, the pin-citation sites check:objectui-pin-citations re-measures (packages/spec/src/** doc and test citations, content/docs/references/** regenerated from them) (stop on breach; explain in the report)
    Container & model: M, mode:subagent, model: default tier — dispatch-gates --tier on abf86554: no path-derived mandate; the clause-② SUSPECT line for packages/spec/src/** is judged from the card content: citation re-measures only, no accept-set or public-surface change
    Clause-②: no
    Responsibility: n/a — not a defect card
    Thread-read: none
    Serial constraints cleared: none — 16 open PRs on this repo, none touches .objectui-sha, sdui.manifest.json, scripts/sdui-manifest.record.json, packages/sdui-parser/objectui-lockstep.json or packages/console/; no open pin card (per-PR file lists read 2026-10-12T22:20Z)

    Direct-dispatch audit: the maintainer's order, verbatim, in this session (session session_016JB93R2KcQP4GgKaUnseVF): 「objectui pin 更新到最新版,并使用浏览器对前端界面进行完整的测试」. Half 2 (the browser pass) runs in this same session on the dev's built tree once half 1's draft PR exists; its records are linked here.


    Generated by Claude Code

  2. objectstack-fleet commented on Oct 12, 2026

    @objectstack-fleet
    ContributorAuthor

    os-dev-report
    {
    "issue": 23104,
    "status": "done",
    "branch": "claude/issue-23104-objectui-pin-1fb1ced",
    "pr": "#23110",
    "session": "session_016JB93R2KcQP4GgKaUnseVF — subagent of the PM seat (parent session id)",
    "premise_still_valid": true,
    "summary": "Half 1 only: .objectui-sha moved 7578323a544e -> 1fb1ced36243c325acc801bdde26bd096a15f5f5, objectui main tip re-read by git ls-remote at start (unchanged since filing; 11 commits, 116 paths, ancestor check exit 0). Draft PR #23110 (Part of #23104, Clause-②: no, assignee os-steve) carries the console changeset (minor; 2 annotated-breaking entries, the second hand-marked because the digest misses a heading that opens with a warning sign; ADR-0087 not-required (no-migration-prescription)), the regenerated sdui.manifest.json (NOT byte-identical: record:activity showCompleted description gained one sentence, objectui#12228) + record, the re-recorded lockstep (objectui sdui-parser byte-identical, no port owed), 43 non-migration citation records re-measured (only the en/zh/de packs changed among cited files; calendar.configRequired held at :953/:726/:706), six migration-entry corpus counts re-taken (corpus 8642, all retired names 0), and view.mdx regenerated. Smoke boot green: health 200, /_console/ 200, served build stamp /_console/.objectui-sha = 1fb1ced36243c325acc801bdde26bd096a15f5f5, served manifest sha256 f545b851c4bb... = record. No hop regression: the Console Pin Gate build at the new pin is green against current main.",
    "tests": "All at final head 043b81d (after merging origin/main 36b2889). Console Pin Gate steps: turbo build --filter=@objectstack/client... (34/34, VERDICT command-exit 0); bash scripts/build-console.sh (VERDICT command-exit 0; "Bundle canary import/jobs present", "Single-zod canary: exactly one zod version literal {major:4,minor:6,patch:5}", "Console bundle carries THIS tree's @objectstack/spec, and only it", "Shipped the tracked sdui.manifest.json (recorded at objectui@1fb1ced36243, this pin)"); pnpm check:console-sha exit 0 "Console dist matches the objectui pin (objectui@1fb1ced36243)"; pnpm check:console-injection --require-stamp exit 0. Pin round: check-sdui-manifest exit 0 "recorded at the live objectui pin 1fb1ced36243"; check:sdui-lockstep exit 0 "byte-identical to objectui@1fb1ced36243 over 214 grammar line(s) ... 25 diagnostic code(s)"; check:objectui-pin-citations exit 0 and --verify-anchors exit 0 "55 asserting objectui pin citation(s) match .objectui-sha (1fb1ced36) ... 13 anchor content assertion(s) verified against objectui at 1fb1ced36"; spec check:generated exit 0 "All 14 generated artifacts are up to date" (after gen:docs regenerated content/docs/references/ui/view.mdx); check-adr-0087-registration --base origin/main exit 0; check:objectui-changeset, check:objectui-bump, check:nul-bytes exit 0. Package: pnpm --filter @objectstack/spec test "Test Files 659 passed (659) Tests 19978 passed | 1 todo" (VERDICT command-exit 0; the trailing --maxWorkers=2 sat after a bare -- and may have been dropped, the run was the whole package as intended); pnpm --filter @objectstack/spec typecheck VERDICT command-exit 0. Derived gates: node scripts/pm/dispatch-gates.mjs --repo objectstack-ai/objectstack --commands = 125 commands at 043b81d, each run with exit recorded; --ran: "125 derived, 125 run, 0 NOT-MEASURED, 0 UNRUN" (check-plugin-teardown-shape --self-test first exited 3, prerequisite not met in the shallow checkout; after git fetch --depth=1 of its pinned commit 621a487 it re-ran exit 0, 48 cases). Smoke: pnpm dev -- --fresh -p 39417 from the worktree; GET /api/v1/health 200 {status: ok, version 17.7.0} at ~10 s; GET /_console/ 200 (18552 B); entry script ./assets/index-D6vu2w50.js 200; GET /_console/.objectui-sha = 1fb1ced36243c325acc801bdde26bd096a15f5f5; served /_console/sdui.manifest.json sha256 f545b851c4bb6d4f996aa2719b7a85c03b0f7c35f56e362f39e73364812acbcf; recorded pids 6853 (pnpm) and 6963 (listener) killed, port free after. No ablation or reverse verification applies (no code path changed).",
    "mcp_calls": "0 — no MCP GitHub tool was called",
    "api_writes": "2 — two fleet-write relay strokes, each one POST /repos/objectstack-ai/objectstack/dispatches from this container, executed as objectstack-fleet[bot]: (1) pr_create = POST /repos/objectstack-ai/objectstack/pulls (draft #23110) + POST /repos//issues/23110/assignees (os-steve), read-back 9699 bytes sent = stored; (2) comment = POST /repos//issues/23104/comments (this os-dev-report). Label writes: 0 (dispatch named no label; skip-changeset does not apply, both changesets publish). git push x7 to the branch: 6 moved it, 1 was a no-op (not REST).",
    "open_questions": [],
    "out_of_scope_findings": [
    "class: a · reach: exception: release-text — public door scripts/bump-objectui.sh 7578323a544e..1fb1ced36243 wrote the console changeset with the objectui#12242 @object-ui/types entry unmarked and the count line "1 of these carries a breaking change"; that text publishes into @objectstack/console CHANGELOG · evidence: scripts/objectui-changeset-digest.mjs hasBreakingAnnotation() returns false on objectui .changeset/12242-types-field-metadata-family.md at 1fb1ced36243 (heading "## ⚠️ BREAKING, priced as minor ...") and true on the same body with only the warning sign removed; BREAKING_BLOCK_OPENER admits a heading mark, a bullet and emphasis before the word but no other prefix; a range whose only breaking entry used this heading would also skip the ADR-0087 disposition prompt · fix lands in objectstack-ai/objectstack scripts/objectui-changeset-digest.mjs (+ its --self-test) · dedupe words: hasBreakingAnnotation, BREAKING_BLOCK_OPENER, objectui-changeset-digest breaking heading warning sign, console changeset BREAKING marker missed"
    ],
    "hypotheses": {
    "h1_target_sha": "CONFIRMED — git ls-remote objectui refs/heads/main = 1fb1ced36243c325acc801bdde26bd096a15f5f5 at start; rev-list --count 7578323a544e..1fb1ced36243 = 11",
    "h2_shallow_walk": "MEASURED — /home/user/objectui is shallow (true before and after); the bump script's --check-walkable printed "7578323a544e..1fb1ced36243 walks completely", so no --unshallow ran; merge-base --is-ancestor exit 0 (self-proving). Only fetches touched the shared objectui checkout (git fetch origin main; build-console.sh worktree add under the dev tree, pruned after)",
    "h3_objectui_12242_effects": "MEASURED — pin citations: no cited file of objectui#12242 (types field-types.ts, plugin-form ObjectForm.tsx / sectionFields.ts, plugin-detail) is cited by an asserting record; the only cited files that changed were the en/zh/de packs (objectui#12248, objectui#12268), cited lines held. Manifest: changed by objectui#12228 (one description), not by #12242. Console Pin Gate build: green against current main",
    "h4_file_set": "MEASURED — 21 files from the tools' own output (see files_changed); differs from #23061 by sdui.manifest.json changing and no ListView/ActionRunner re-points"
    },
    "gates": {
    "console_pin_gate": {
    "client_build": 0,
    "build_console_sh": 0,
    "check:console-sha": 0,
    "check:console-injection --require-stamp": 0
    },
    "pin_round": {
    "check-sdui-manifest": 0,
    "check:sdui-lockstep": 0,
    "check:objectui-pin-citations": 0,
    "check:objectui-pin-citations --verify-anchors": 0,
    "spec check:generated": 0,
    "check-adr-0087-registration --base origin/main": 0,
    "check:objectui-changeset": 0,
    "check:objectui-bump": 0,
    "check:nul-bytes": 0
    },
    "package": {
    "spec test": 0,
    "spec typecheck": 0
    },
    "derived": {
    "derived": 125,
    "run": 125,
    "not_measured": 0,
    "unrun": 0,
    "nonzero_final": 0,
    "head": "043b81d13"
    }
    },
    "line_budget": {
    "changed_lines": 323,
    "additions": 267,
    "deletions": 56,
    "files": 21,
    "human_merge_threshold": 3000,
    "verdict": "under",
    "governed_surfaces": "none",
    "skills_ledger": "n/a"
    },
    "files_changed": [
    ".changeset/console-1fb1ced36243.md",
    ".changeset/objectui-pin-citations-1fb1ced36243.md",
    ".objectui-sha",
    "content/docs/references/ui/view.mdx",
    "packages/sdui-parser/objectui-lockstep.json",
    "packages/spec/src/data/api-methods-batch-conformance.test.ts",
    "packages/spec/src/kernel/functional-completeness.ts",
    "packages/spec/src/migrations/entries/semantic/18.kernel-health-check-and-hot-reload-durations-unit-in-key.ts",
    "packages/spec/src/migrations/entries/semantic/18.kernel-runtime-config-timeout-unit-in-key.ts",
    "packages/spec/src/migrations/entries/semantic/18.logging-durations-unit-in-key.ts",
    "packages/spec/src/migrations/entries/semantic/18.system-metrics-jsdoc-durations-unit-in-key.ts",
    "packages/spec/src/migrations/entries/semantic/18.system-tracing-otel-exporter-durations-unit-in-key.ts",
    "packages/spec/src/migrations/entries/semantic/18.tenant-schema-cache-ttl-unit-in-key.ts",
    "packages/spec/src/ui/action-outcome-messages.test.ts",
    "packages/spec/src/ui/action.zod.ts",
    "packages/spec/src/ui/component.test.ts",
    "packages/spec/src/ui/component.zod.ts",
    "packages/spec/src/ui/dataset.zod.ts",
    "packages/spec/src/ui/view.zod.ts",
    "scripts/sdui-manifest.record.json",
    "sdui.manifest.json"
    ],
    "deviations": [
    "Base moved: worktree created off origin/main 55828c5 (dispatch named abf8655; #23098 had landed); origin/main 36b2889 merged before the final gate run (unrelated plugin-security test retirement, no overlap).",
    "Console changeset hand-edited beyond the generator: the objectui#12242 types entry marked BREAKING and the count line set to 2 (digest miss, reported above); the ADR-0087 comment block says so.",
    "build-console.sh ran twice: the first dist shipped the pre-regeneration manifest (its own warning), the second, after gen-sdui-manifest-node, is the one measured.",
    "Shared objectstack object store: git fetch --depth=1 origin 621a487 so check-plugin-teardown-shape --self-test could read its pinned fixture (additive fetch, no ref moved).",
    "Smoke prerequisites: built the showcase closure (61 tasks) and eight more packages check-dev-prereqs named, under the verify lock.",
    "Attribution: commits carry the model-free trailer pair and the PR body the AGENTS.md session-URL footer, not the harness reminder's model-named / emoji forms (os-dev and AGENTS.md take precedence).",
    "Claim comment says Half 2 runs on the dev's built tree; the dispatch says a separate tree, and /home/user/objectstack-qa-23104 exists with its own console cache, so the dev worktree was removed per the cleanup rule (branch head 043b81d is on the remote). Conflict noted, not resolved by me.",
    "Cleanup: worktree /home/user/objectstack-issue-23104 removed (no --force needed); its objectui cache worktree registration pruned with git worktree prune (the PM qa tree registration untouched)."
    ]
    }

  3. objectstack-fleet commented on Oct 12, 2026

    @objectstack-fleet
    ContributorAuthor

    Review: ACCEPT — PR #23110 at head 043b81d13 (Half 1, the pin hop) · PM seat domain:devx#2, session_016JB93R2KcQP4GgKaUnseVF · 2026-10-12T23:45Z

    Implemented-by: os-dev subagent of session_016JB93R2KcQP4GgKaUnseVF, branch claude/issue-23104-objectui-pin-1fb1ced
    Reviewed-by: PM seat, same session, against GitHub and a fetched copy of the PR head (refs/pm/pr23110), not the report

    • Shape: draft, base main; first line Part of #23104; Clause-②: no line-initial; full body scanned, no closing keyword sits next to any card number. Assignee os-steve mirrors the card.
    • Scope: 21 files (pulls/23110/files), every one inside the claim's file surface; no content/docs/releases/; no governed path (GOVERNED_SURFACES); 267 + 56 = 323 changed lines, under the 3000 human-merge line.
    • Spec diff: git diff 36b2889c refs/pm/pr23110 -- packages/spec, lines outside comments only: every one is inside a description string literal (the pin sha, corpus counts and the FormField.span describe). No key, default, enum member or export moves.
    • Changesets, sentence by sentence: console minor — the hand-marked objectui#12242 BREAKING entry matches objectui 1fb1ced36243:.changeset/12242-types-field-metadata-family.md line 28 (## ⚠️ BREAKING, priced as minor …); "no package depends on @object-ui/types": 0 hits over *package.json at the PR head, positive control @objectstack/spec in packages/rest/package.json = 1; "@objectstack/spec already refuses component": QUARANTINED_WIDGET_KEYS at packages/spec/src/ui/dashboard.zod.ts:188. Spec patch — spot check: calendar.configRequired is line 953 of objectui 1fb1ced36243:packages/i18n/src/locales/en.ts, as cited.
    • Evidence pinned to head: the dev's local gates ran at 043b81d13 = PR head (125 derived, 125 run, 0 unrun; Console Pin Gate steps, check:console-sha, check:sdui-lockstep, check:objectui-pin-citations --verify-anchors, spec check:generated, spec test 659/659 files). CI on this head at the time of reading: Lint & Repo Gates, Governed Surface Queue Guard, Check Changeset success; Type Check, Test Core, Build Core in progress.
    • Out-of-scope finding: the digest's missed BREAKING heading, reproduced here (hasBreakingAnnotation false as-is, true with only the warning sign removed) and filed as objectui-changeset-digest misses a BREAKING annotation whose heading opens with a warning sign, so the console changeset under-counts breaking entries and can skip the ADR-0087 disposition #23112.
    • Correction to the claim comment: Half 2 does not run on the dev's tree. On the maintainer's instruction in this session, verbatim 「QA 环境可以先并行准备,不用等 PR」, it runs on a separate detached tree: objectstack 36b2889c with .objectui-sha set locally to 1fb1ced36243 and the manifest regenerated (sha256 f545b851c4bb…, byte-identical to this PR's), console dist stamp = the pin. That tree differs from this PR's head only in description strings, the lockstep JSON, changesets and one docs reference page.

    Landing is held by this card's own acceptance line: the PR lands only once the browser pass reports no regression inside the hop's objectui commits, and every check on the then-current head is green. The browser pass is running now in three lanes (55 + 53 + 47 items). Merging this PR does not close the card: Half 2's records close it.


    Generated by Claude Code

  4. objectstack-fleet commented on Oct 13, 2026

    @objectstack-fleet
    ContributorAuthor

    Maintainer orders, this session, verbatim · PM seat domain:devx#2, session_016JB93R2KcQP4GgKaUnseVF · 2026-10-13T00:53Z

    1. 「先合并 PR,不用等跑测完」 — this supersedes the card body's line that holds the pin PR until the browser pass reports no hop regression. PR chore(objectui): move the console pin to 1fb1ced36243 (objectui main tip, Half 1 of #23104) #23110 lands as soon as its landing pre-checks hold (a contract-review-tier ## Contract review PASS on its current head, since its diff touches packages/spec/src/** description strings; every check green; no governed path). A hop regression the browser pass finds later becomes its own card (an upstream fix or a pin move), not a hold on chore(objectui): move the console pin to 1fb1ced36243 (objectui main tip, Half 1 of #23104) #23110.
    2. 「测试遇到的问题,可以提交issue」 — product defects the browser pass confirms are filed as they are confirmed, each in the repository its fix lands in, instead of waiting for the run's close. Until the two qa-run records exist, each card's QA-source: line points here (#23104 · area.item · clause); the records' closeout comments then carry the matching Extracted: lines.
    3. Concurrency raised from 3 to 4 subagents for the one read-only contract reviewer of chore(objectui): move the console pin to 1fb1ced36243 (objectui main tip, Half 1 of #23104) #23110 only (the maintainer's answer to the seat's question: 「临时放到 4」); it returns to 3 when that review reports.

    Generated by Claude Code

  5. objectstack-fleet commented on Oct 13, 2026

    @objectstack-fleet
    ContributorAuthor

    Landed: PR #23110 (Half 1) · PM seat domain:devx#2, session_016JB93R2KcQP4GgKaUnseVF · 2026-10-13T01:30Z


    Generated by Claude Code

  6. objectstack-fleet commented on Oct 13, 2026

    @objectstack-fleet
    ContributorAuthor

    Half 1 CI reading on main · PM seat domain:devx#2, session_016JB93R2KcQP4GgKaUnseVF · 2026-10-13T02:12Z

    The first full-battery run carrying the hop — CI push run 38332364381 at bcebd8409 (a descendant of the merge f451a5964) — concluded success, Console Pin Gate included (so check:console-sha and check:console-injection --require-stamp now have a CI verdict at pin 1fb1ced36243), along with Dogfood Regression Gate (3/3 shards), Dogfood Verify CLI and Temporal Conformance (live PG + MySQL). Half 1 owes nothing further; the card stays open for Half 2.


    Generated by Claude Code

  7. objectstack-fleet commented on Oct 13, 2026

    @objectstack-fleet
    ContributorAuthor

    Half 2 records filed · record composer for PM seat domain:devx#2, session_016JB93R2KcQP4GgKaUnseVF · 2026-10-13T05:00Z

    The browser pass at objectui pin 1fb1ced36243 (subject objectstack 36b2889c + local pin, standing in for PR #23110's head) has its two qa-run records. Every runnable item is judged, and the planned item and the one handoff variant are named in the bodies.

    Every product fail is filed, each in the repository its fix lands in:

    One authorization finding is withheld pending the maintainer: access-security.packaged-permission-set-lifecycle C1.

    Hop regression: none. No fail's cause lies in 7578323a544e..1fb1ced36243.

    ⚠ For the PM seat: #23121 is closed (#23132). Its keyboard-shortcut-surface C2 / C3 rows never landed (the item is still rev 2 on main), and the run's accuracy and fixture rows were added there in comment 6138566194. It needs a reopen or a successor family card before the two records' closeout debt can clear.


    Generated by Claude Code

  8. objectstack-fleet commented on Oct 13, 2026

    @objectstack-fleet
    ContributorAuthor

    Closed — both halves delivered · PM seat domain:devx#2, session_016JB93R2KcQP4GgKaUnseVF · 2026-10-13T05:06Z

    Against this card's acceptance lines:

    Product defects filed from the pass (each with a QA-source: line back here): objectstack-ai/objectui#12285 (P0 item), objectstack-ai/objectui#12286, objectstack-ai/objectui#12291, objectstack-ai/objectui#12292, objectstack-ai/objectui#12295, objectstack-ai/objectui#12300, objectstack-ai/objectui#12301, objectstack-ai/objectui#12303, #23128, #23149, #23152, #23157; plus re-measurements commented onto objectstack-ai/objectui#11862 and #23128. Checklist-accuracy and fixture rows: #23121 (landed by #23132) and its successor #23169. From the pin PR's own review: #23112.

    One authorization finding (access-security.packaged-permission-set-lifecycle · C1) is held for the maintainer under RUNNER rule 2's carve-out: no reproduction is written anywhere on GitHub. The two qa-run records stay open as their closeout debt until their extracted cards resolve. pm:dispatched leaves with this close.


    Generated by Claude Code

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, iteratedomain:devxpriority:p2Medium: important, M3

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions