Skip to content

release(ui-merge): one release lane for both scopes — @object-ui joins the fixed group, @objectstack/console builds from ui/apps/console, the objectui pin is deleted (#25711) - #25745

Draft
objectstack-fleet[bot] wants to merge 10 commits into
mainfrom
claude/project-thread-a0vh3h
Draft

objectstack-fleet[bot] wants to merge 10 commits into
mainfrom
claude/project-thread-a0vh3h

Conversation

@objectstack-fleet

@objectstack-fleet objectstack-fleet Bot commented Oct 25, 2026 •

Copy link
Copy Markdown
Contributor

Requested by Tesla · project thread

Part of objectstack#25677
Fixes #25711
Blocked-by: sub-issue 5 of #25677 (the subtree PR that adds ui/; not filed yet)

Clause-②: no
Metadata-protocol: none

Maintainer rulings (Tesla, 2026-10-25 09:06Z, director thread): 17a — the release npm token has publish rights on @object-ui. 17b, ruling B — the private VS Code extension object-ui stays in the one fixed group. 17c, ruling B — the QUICK_REFERENCE release-sync rows retire; decision B (17c) carried here.

⛔ Draft, Tier H, cutover window only. Verified on the merged tree at objectui@cd70b7818 (objectstack main 43edf90 + PR A #25710 + git subtree add --prefix=ui of objectui main + the verification branch's adaptations + this diff). Red on main by design until the subtree PR of sub-issue 5: without ui/, check-changeset-fixed reports the 39 @object-ui/* names in fixed as stale, and pnpm console:build has no @object-ui/console to build.

Body refreshed 2026-10-25T11:07Z on head 4ac569dc00. Comments read through 6396849495: the seat's HOLD notes (6393497736, 6393776210) stand as written, and this PR stays draft, unrequested and unqueued. The docs-drift run (6396849495) lists no page for its 2 anchors. For the 5 files with no anchor I searched content/docs by hand for build-dist, sdui-manifest, .objectui-sha, console:build and the pin wording: only the historical notes releases/v17/17-0.mdx and 17-6.mdx name them, and those stay as history.

What changes

1. One fixed group (.changeset/config.json). The 39 public @object-ui/* packages and the private VS Code extension object-ui (17b) join the @objectstack/* fixed group; @object-ui/example-*, @object-ui/site and @object-ui/test-support are ignored. ui/.changeset/config.json is deleted by the ui-side patch (changesets reads one config per repository), and objectui's pending ui/.changeset/*.md move to the root .changeset/. Root check-changeset-fixed accepts a private name in the group only when PRIVATE_FIXED_MEMBERS declares it (object-ui alone, with its reason), the package is private, and privatePackages.version is true; it reds if that member leaves the group. check:lockstep-package-count subtracts the declared private members, so the published count stays 112. check-changeset-no-major now reads packages/console/build-dist.sh as the Console's packed-copy build script, and check-empty-changeset's frontmatter-parser family loses the deleted objectui digest.

2. @objectstack/console builds in this workspace. packages/console/build-dist.sh copies ui/apps/console/dist (built by turbo through @object-ui/console#build) into packages/console/dist, ships the tracked sdui.manifest.json (ADR-0080), and runs the single-zod canary over the bytes it ships. Root task @objectstack/console#build:dist (turbo.json) depends on @object-ui/console#build; pnpm console:build runs it, and pnpm release / cut-rc.yml run it after pnpm run build. files and prepublishOnly are unchanged. scripts/build-console.sh is deleted. The CLI's remedy for a missing Console dist names pnpm console:build.

3. The objectstack-side pin is deleted. .objectui-sha, scripts/bump-objectui.sh (+ selftest), scripts/objectui-changeset-digest.mjs, scripts/objectui-range.mjs, scripts/check-prerelease-pin-watch.mjs, scripts/check-console-sha.mjs, scripts/check-console-injection.mjs, scripts/assert-console-spec-injection.mjs, scripts/console-spec-probes.mjs, packages/spec/scripts/build-console-objectstack-root.test.ts; the pin reads in cut-rc.yml ("THE objectui PIN IS AN INPUT HERE" and Read the committed objectui pin), release.yml, lint.yml, showcase-smoke.yml and the root package.json scripts (objectui:*, check:console-sha, check:console-injection, check:objectui-*, check:prerelease-pins; pnpm dev* no longer runs check:console-sha). scripts/check-console-intercept-disarm.mjs stays. Release notes (collect-release-notes.sh) say "no objectui pin" when the new ref has none. Gate self-tests and rosters that named the deleted scripts follow (dispatch-gates, pnpm-filter-targets, check-pnpm-filter-targets (tree-aware: foreign @object-ui/ targets must be 0 without ui/, >0 with it), bare-root-worklist, check-type-check-coverage). The lockstep count in content/docs/protocol/backward-compatibility.mdx and scripts/publish-smoke-pack.mjs reads 112, both scopes (check:lockstep-package-count --fix), and packages/spec/vitest.repo-tests.json drops the deleted test.

4. The objectui-side pin is deleted, as a patch. ui/ does not exist on main, so this half is scripts/ui-import/4a-ui-side.patch with its apply and verify commands in scripts/ui-import/README.md, applied by sub-issue 5's adaptation commit. It deletes .objectstack-sha, .objectstack-pin/, bump-objectstack.sh, objectstack-pin.mjs, objectstack-floor.mjs, check-spec-range-floors.mjs, check-installed-spec-pin-claims.mjs, the dist-pin Vite probes vite-objectstack-spec-dist.ts / vite-objectstack-client-dist.ts, changeset-release.yml, spec-range-floors.yml, release-github-releases.mjs and their tests, plus (17c) sync-quick-reference-release.mjs, its test and the quick-reference-current-release-4143 pin, with QUICK_REFERENCE.md's version rows. The single-zod guard moves to ui/scripts/vite-single-zod.ts (it runs in every console build); apps/console/vite.config.ts drops both injections. Every reader of the Changesets config goes through a new changesetConfigPath() (own root standalone, monorepo root when nested); objectui's check-changeset-fixed and check-unused-dependencies otherwise keep their extension rules (17b). The patch is written against verify head 9e37acd126.

5. One release lane. objectui's changeset-release.yml is gone; root release.yml publishes both scopes in one pnpm -r publish, and the root scripts/release-github-releases.mjs cuts one GitHub Release per package tag across both scopes.

The four deleted Console checks, and what proves the same thing now

Deleted What it proved Now
assert-console-spec-injection.mjs the built Console bundles THIS tree's @objectstack/spec, not the copy objectui's lockfile installed Can no longer be false. Every @objectstack/* dependency under ui/ is workspace:^ (33 spec, 2 client, 2 lint, 2 formula rows measured), which pnpm links and never resolves from the registry; the merged lockfile has 0 registry entries for @objectstack/spec or @objectstack/client and 37 link: rows to packages/spec. The single-zod guard (Vite, ui/scripts/vite-single-zod.ts) and canary (build-dist.sh, on the shipped bytes) still run in every build.
check-console-injection.mjs a Console dist restored from the pin-keyed cache was built against the current spec Can no longer be false. The cache keyed on .objectui-sha is gone; turbo's hash for @object-ui/console#build includes @objectstack/spec#build, @objectstack/client#build and @objectstack/lint#build (measured with turbo run build:dist --filter=@objectstack/console --dry=json), so a spec change misses the cache.
check-console-sha.mjs the local packages/console/dist was built from the pinned objectui commit The pin it compared against is gone, so that drift cannot occur. A local dist can still be older than ui/ after a pull; pnpm console:build rebuilds it (a turbo cache hit when nothing changed). Nothing checks this on pnpm dev any more: reported to the dispatcher.
console-spec-probes.mjs the shared probe derivation for the two injection checks above Left with them; nothing else imported it.

Verification (merged tree at objectui@cd70b7818; the 17b/17c items re-measured on verify head 9e37acd126)

  • pnpm changeset version (on verify head 9e37acd126 + this PR + the ui patch): all 113 members move 18.1.0 → 18.2.0 in one bump: 112 public (73 @objectstack/*, 39 @object-ui/*) and the private extension object-ui. The other private @objectstack/* packages move as they do on main. pnpm -r publish and release-verify-npm skip object-ui (private), so nothing it owes the registry changes.
  • pnpm -r publish --dry-run after the version: 112 packages, 39 @object-ui/* + 72 @objectstack/* + create-objectstack, all 18.2.0. pnpm pack of @object-ui/core: @objectstack/spec workspace:^ → ^18.2.0, @object-ui/types workspace:* → 18.2.0.
  • pnpm console:build (CI=true): exit 0, single-zod canary green. The packed @objectstack/console has the same top-level dist/ entries as the published 18.1.0 tarball, minus dist/.objectstack-injection.json and dist/.objectui-sha; assets 2,268 → 2,381 (newer objectui), tarball 9,260K → 9,140K.
  • Console eager-closure budget (ui/scripts/check-eager-closure-budget.mjs, ceiling 3,496.0 KB): this build 3,054.2 KB gzipped, vendor-objectstack 1,605.2 KB; the published 18.1.0 dist measured by the same ceilings: 3,522.3 KB, vendor-objectstack 1,851.5 KB. The membership half is red identically on both (packages/core: 1 of 89 modules in vendor-objectstack), so it predates this PR.
  • The ui-side patch on verify head 9e37acd126: git apply --check passes after README steps 1–2 and reproduces the edited ui/ tree byte for byte (60 files). With this PR's root half, install and pnpm run build: type-check:scripts, type-check:vitest-config, lint:root exit 0; root and objectui check-changeset-fixed pass; vitest run scripts/__tests__ 17 failed / 5,573 passed, where 2 are 15 s load timeouts that pass alone, 2 fail the same way without the patch (check-lockfile-integrity; quick-reference-commands-4149 on the root scripts the adaptation drops, cutover bill), and 14 read objectui's nested ui/.github/, which 4b PR 2 deletes.
  • actionlint 1.7.7 over release.yml, cut-rc.yml, lint.yml, showcase-smoke.yml: exit 0. No step reads a pin file.

Gates (this branch, no ui/)

dispatch-gates --commands derives 166 families for this diff; all 166 ran, and dispatch-gates --ran reconciles: 164 run, 2 NOT-MEASURED. All were run on head 4ac569dc00 (after merging main at f0cf338330, which had moved .objectui-sha and the root build script), after a full pnpm run build. 156 exit 0, including check:required-contexts, check:workflow-status-functions, check:workflow-step-name-quoting, check-changeset-no-major, check-empty-changeset, check-adr-0087-registration, check:lockstep-package-count (112) and check:nul-bytes. One is red on main itself and not this PR's: check:liveness (translation/flows.screens cites service-automation/src/engine.ts, which #25734 refactored; this PR touches neither). The other 9 are red or not measured because ui/, PR B or 4b has not landed yet, as designed:

Gate Exit Why red here Clears when
check-changeset-fixed 1 the 39 @object-ui/* names and object-ui in fixed have no package without ui/ (on the merged tree: exit 0, 112 public + 1 declared private) sub-issue 5
check-prerelease-pin-watch --self-test, --verbose 1, 1 named only by prerelease-pin-watch.yml; this PR deletes the script PR B of #25697
check-self-test-wired --self-test 1 ci.yml console-pin and prerelease-pin-watch.yml still invoke deleted scripts PR B of #25697
check:pm-dispatch-gates 1 3 of 1,913 fast-tier cases, all on the same live invocations of deleted scripts PR B of #25697
check:console-sha, check:console-injection NOT-MEASURED (254) root scripts deleted here; only the console-pin job names them PR B of #25697
check-sdui-manifest, check:sdui-lockstep 1, 1 they read .objectui-sha 4b PR 2 (#25712)

Depends on, outside this PR

🤖 Generated with Claude Code

https://claude.ai/code/session_0149BHSXfCdQywGaLdpRAtWe

… objectui pin (objectstack#25711, WIP)

Co-Authored-By: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0149BHSXfCdQywGaLdpRAtWe
…the in-workspace Console build (objectstack#25711, WIP)

Co-Authored-By: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0149BHSXfCdQywGaLdpRAtWe
…ts as live specimens (objectstack#25711, WIP)

Co-Authored-By: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0149BHSXfCdQywGaLdpRAtWe
…ted pin pieces (objectstack#25711, WIP)

- check-pnpm-filter-targets: the foreign-scope live assertion is tree-aware;
  without ui/ no committed filter names @object-ui/ (build-console.sh left).
- pnpm-filter-targets: the @object-ui/ foreign entry states its new cause and
  when it retires (the PR that lands ui/).
- collect-release-notes: section 3 reads a pinless ref instead of failing on
  the missing .objectui-sha.
- bare-root-worklist: the two check-console-injection UNJUDGED rows are gone
  with the gate.
- check-type-check-coverage: the @objectstack/console EXEMPT note names
  build-dist.sh.
- dispatch-gates self-test: the prerelease-pin-watch literal specimen leaves.
- cut-rc builds the Console before the version commit; release.yml and
  cut-rc comments name console:build; packages/console README describes the
  in-workspace build.

Co-Authored-By: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0149BHSXfCdQywGaLdpRAtWe
…window, and the changeset (objectstack#25711, WIP)

scripts/ui-import/4a-ui-side.patch removes objectui's pin on objectstack, the
dist-injection Vite probes, objectui's own release lane and its own Changesets
config inside ui/. ui/ does not exist on main until the subtree PR of sub-issue
5, so it ships as a patch with its apply and verify commands in the README.

Co-Authored-By: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0149BHSXfCdQywGaLdpRAtWe
…list drops the deleted Console test (objectstack#25711, WIP)

check:lockstep-package-count derives the count from the fixed group, which now
holds both scopes (73 @objectstack + 39 @object-ui). vitest.repo-tests.json still
named build-console-objectstack-root.test.ts, deleted with build-console.sh.

Co-Authored-By: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0149BHSXfCdQywGaLdpRAtWe
… relative link (objectstack#25711, WIP)

A relative href is a 404 on npm, and on GitHub until ui/ lands.

Co-Authored-By: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0149BHSXfCdQywGaLdpRAtWe
@objectstack-fleet

Copy link
Copy Markdown
Contributor Author

Dispatch seat note — HELD, do not merge before the cutover window. Content ACCEPTed on card #25711 (comment there carries the checks and rulings). check-governed-merges --pr objectstack-ai/objectstack#25745: GOVERNED, tier H(人合) — .github/workflows/** ×4, 12,835 changed lines > 3,000. By the order this PR is red on main by design until the ui/ subtree lands (child 5): check-changeset-fixed needs ui/; ci.yml's console-pin and pin-watch jobs still invoke scripts this PR deletes until PR B of #25697 lands beside it. So: stays draft, no review requested, not enqueued. In the cutover window the seat posts the final 维护者速读 and 席位核对 here, labels the PR, and requests review from GOVERNED_APPROVERS; it lands only after an authorized APPROVED, together with child 5, PR B and 4b PR 2. Before that, git apply --check scripts/ui-import/4a-ui-side.patch is re-run against the final objectui main.


Generated by Claude Code

@os-zhuang
os-zhuang marked this pull request as ready for review October 25, 2026 05:06
@os-zhuang
os-zhuang enabled auto-merge October 25, 2026 05:06
@objectstack-fleet
objectstack-fleet Bot disabled auto-merge October 25, 2026 05:07
@objectstack-fleet
objectstack-fleet Bot marked this pull request as draft October 25, 2026 05:07
@objectstack-fleet

Copy link
Copy Markdown
Contributor Author

Dispatch seat — HOLD reaffirmed. @os-zhuang please leave this PR in draft until the seat opens the cutover window.

At 05:06Z this PR was approved, marked ready and had auto-merge enabled. At 05:07Z the card thread put it back to draft and disabled auto-merge; the approval (review 5641652106) stands untouched. Nothing was lost, but had the queue taken it, main would have gone red: by the order this PR is red on main by design until the ui/ subtree lands — check-changeset-fixed needs ui/, and the console-pin / pin-watch jobs in ci.yml still invoke scripts this PR deletes until PR B of #25697 lands beside it (seat note above, 05:0x; card #25711 carries the ACCEPT and the rulings).

Landing order for the cutover window (epic #25677, child 5 procedure): subtree import + adaptation → this PR (4a) → PR B of #25697 → 4b PR 2 (#25712). In that window the seat posts the final 维护者速读 and ## 席位核对 here, flips ready, and requests review from GOVERNED_APPROVERS; the PR lands only after an authorized APPROVED given at that point. Until then: draft, no review requested, not enqueued. A ready/auto-merge flip before that is reverted by the seat.

If the hold itself should be overruled, that is Tesla's call, in the epic's decision thread, not on this PR.


Generated by Claude Code

… and the QUICK_REFERENCE release sync retires (objectstack#25711, WIP)

Tesla's rulings of 2026-10-25: decision 17b, ruling B, keeps the private VS Code
extension `object-ui` in the fixed group. The root check-changeset-fixed now
accepts a declared private member (PRIVATE_FIXED_MEMBERS) while
privatePackages.version is true, and check:lockstep-package-count counts
published members only. The ui-side patch drops its private-arm change to
objectui's check-changeset-fixed and keeps the extension rows of
check-unused-dependencies. Decision 17c, ruling B, is carried in the same patch:
QUICK_REFERENCE.md's synced "Current Release" rows, the sync script and its two
tests retire. The patch is regenerated against verify head 9e37acd.

Co-Authored-By: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0149BHSXfCdQywGaLdpRAtWe
…1, WIP)

main moved .objectui-sha (#25735) and the root build script (#25738); the pin stays
deleted and the build keeps main's site exclusion.

Co-Authored-By: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0149BHSXfCdQywGaLdpRAtWe
@github-actions github-actions Bot added dependencies Pull requests that update a dependency file documentation Improvements or additions to documentation tests tooling labels Oct 25, 2026
@github-actions

Copy link
Copy Markdown
Contributor

📓 Docs Drift Check

2 anchor(s) derived from 3 changed package(s); no hand-written page names any of them. ⚠️ 5 changed file(s) yielded no anchor (packages/cli/src/utils/sdui-manifest.ts, packages/console/README.md, packages/console/build-dist.sh, …), so the pages documenting them are NOT COVERED by this run — this is not a clean bill of health for those files.

What this run could not see
  • 5 changed file(s) yielded no anchor (packages/cli/src/utils/sdui-manifest.ts, packages/console/README.md, packages/console/build-dist.sh, …) — pages documenting those are invisible to this run
  • the SDK route bridge reached 54 of 206 client-bound route-ledger rows — the other 152 have no registrar path: tail to select them, so pages documenting THEIR client methods cannot appear above, on this or any run. Of those 152: 0 are remediable by widening that discovery convention (an in-repo file declares the path; the convention did not scan it); 55 are structural — on a ledger where NOT ONE row is declared in-repo, so no discovery change reaches them at any price; 97 are undecided (no in-repo declaration, on a ledger that has other in-repo registrars — absence and an unreadable spelling are not distinguishable here). The rows themselves: node scripts/docs-audit/affected-docs.mjs --bridge-coverage
  • a page that states a rule by its inputs shares no identifier with the emitter that implements the rule, so an emitter-only diff cannot list it — not on this run and not on any run. Measured on fix(driver-sql): emit varchar(maxLength) for a text field a declared index keys on #11430: content/docs/protocol/objectql/types.mdx documents the text-family column mapping by the ObjectQL type names it maps FROM (text / textarea / html) while the diff changed createColumn; it went unlisted, and it was the page that diff falsified, in four places. No shared token exists to detect this on, so a rule your change carries has to be re-read by hand in the pages that restate it.
  • a key NAME is not a key, so the hand re-read the line above prescribes can land on the wrong schema. The same spelling is authorable on one governed type and a [REMOVED] tombstone on another for each of active, aria, joins, objects, template, tools and version (censused on [finding] tools is a key on BOTH AgentSchema (tombstoned, dead) and SkillSchema (live, cloud-attested), so a name-based search attributes skill examples to the agent key — it produced a false stop-the-line alarm on PR #19059 #19093 over the liveness ledger's governed types, top-level keys); nothing in a search result distinguishes the two, so a grep hit on a LIVE example reads as evidence about the DEAD key. Measured on fix(spec): the agent.tools liveness row says dead — it claimed live on a key the schema tombstoned #19059: content/docs/ai/agents.mdx was reported as contradicting the agent.tools tombstone over its tools: example at :161, which is inside the defineSkill({ block opened at :155 — the page was already correct. Settle ownership by PARSING the value against both schemas, never by the name: that literal PASSES SkillSchema, and as an AgentSchema it FAILS at tools with the tombstone prescription. ⛔ These names are not the whole class — a key retired through a .strict() guidance map leaves no tombstone in the walked shape and none of them here (tool.category, live as AIToolDefinition.category).

Coarse fallback — 152 page(s) merely mention a changed package (the pre-#9192 predicate, kept for the deliberately-wide backstop): node scripts/docs-audit/affected-docs.mjs --json 5612dd931be8f982847ac83b021ce56daa0b23d9 → packageMentionDocs.

Which tree this was computed on

This run read content/docs from 10f8e624f1a21fd4e0c1eeba46f1dfd0b2d198ab — the merge of head 4ac569dc00bb0e0124464436cae513a440cf05cb into base 5612dd931be8f982847ac83b021ce56daa0b23d9, which is what actions/checkout gives a pull_request run. Not the PR head.

A worktree cut from an older main holds a different content/docs, so re-deriving there can legitimately return a different list — that is a different tree, not a wrong row. To answer on the same tree:

# while this PR is open — GitHub drops the merge commit once it closes
git fetch origin 10f8e624f1a21fd4e0c1eeba46f1dfd0b2d198ab && git checkout 10f8e624f1a21fd4e0c1eeba46f1dfd0b2d198ab
# afterwards, rebuild it from the two parents, which stay fetchable
git fetch origin 5612dd931be8f982847ac83b021ce56daa0b23d9 4ac569dc00bb0e0124464436cae513a440cf05cb && git checkout -B drift-repro 5612dd931be8f982847ac83b021ce56daa0b23d9 && git merge --no-ff 4ac569dc00bb0e0124464436cae513a440cf05cb

node scripts/docs-audit/affected-docs.mjs --json 5612dd931be8f982847ac83b021ce56daa0b23d9

⚠️ That checkout carried uncommitted changes, so the commit above does not fully identify what was read.

@objectstack-fleet

Copy link
Copy Markdown
Contributor Author

Card thread — CI on head 4ac569dc00, 2026-10-25T11:10Z: the 4 red checks are all known, and none is a new failure from this PR.

Check (failed step) Owner
Validate Package Dependencies (check-changeset-fixed) Red on main by design until the ui/ subtree lands (child 5). Without ui/, the 39 @object-ui/* names in fixed read as stale. It exits 0 on the merged tree.
Stable release watch for prerelease pins (self-test the probe) PR B of #25697, which retires prerelease-pin-watch.yml next to this PR.
Lint · repo & tooling gates (self-test wiring; SDUI manifest; sdui-parser lockstep) Self-test wiring belongs to PR B (ci.yml console-pin and pin-watch still invoke the deleted scripts). The two SDUI steps belong to 4b PR 2 (#25712), because they read .objectui-sha.
Spec property liveness Red without this PR too. The translation/flows.screens row cites packages/services/service-automation/src/engine.ts, which #25734 refactored. This PR touches neither packages/services/** nor the spec ledger, and the same check:liveness fails the same way locally. It is out of scope for this card, so I am not porting a fix.

All four match the seat's HOLD note (6393497736) and the body's verification section. I am not re-running them: each would fail the same way on this head. The PR stays draft and stays watched. It lands only in the cutover window, together with child 5, PR B and 4b PR 2.


Generated by Claude Code

@objectstack-fleet

Copy link
Copy Markdown
Contributor Author

Card thread — addendum to 6396896948, 2026-10-25T11:11Z: 2 more red checks on 4ac569dc00. Both are known.

No re-run, for the same reason as before. The PR stays draft and watched.


Generated by Claude Code

@objectstack-fleet

Copy link
Copy Markdown
Contributor Author

Card thread — addendum 2, 2026-10-25T11:21Z: Test Core (8/8) on 4ac569dc00 is not this PR's.

The failing command is pnpm run test in packages/plugins/plugin-pinyin-search. main's scheduled CI run 40187126172 on the same base 5612dd931b fails Test Core (8/8) with the identical annotation. That run also fails (1/8). The push run on that commit (40185602458) was green. This PR does not touch plugin-pinyin-search. Locally on this head the package passes 39/39 in 4 files, but it takes 53 s, with 129 s of import time. That points at a timing-sensitive shard rather than a code failure.

I have no fix to port. I am not re-running it from this card thread. The PR stays draft and watched.


Generated by Claude Code

@objectstack-fleet

Copy link
Copy Markdown
Contributor Author

Card thread — addendum 3, 2026-10-25T11:32Z: Test Core (1/8) on 4ac569dc00 comes from the same liveness break as above.

The failing command is pnpm run test in packages/spec. main's scheduled CI run 40187126172 fails Test Core (1/8) on the same base 5612dd931b, with the same annotation. Locally on this head, the spec suite is 23 failed / 21,810 passed. All 23 failures are in scripts/liveness/check-liveness.test.ts, which runs the checker against verbatim copies of the shipped ledgers. Those ledgers carry the translation/flows.screens → service-automation/src/engine.ts row that #25734 broke (see 6396896948). This PR touches neither the ledgers nor packages/services/**.

There is no fix to port within this card. The PR stays draft and watched.


Generated by Claude Code

This branch has not been deployed

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

Labels

ci/cd dependencies Pull requests that update a dependency file documentation Improvements or additions to documentation size/xl tests tooling

Projects

None yet

3 participants