You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
Repository navigation
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
deps(v18): move objectui's @objectstack/* from 18.0.0-next.0 to 18.0.0-next.1 and follow its contract — the bump the held follow-ups wait on #12370
Filing gate ③ a task the maintainer directed. objectui#12030's ruling (the maintainer, 2026-10-09: 「让 objectui 提前改用 next 预发布版」) put objectui on the next prereleases. @objectstack/*18.0.0-next.1 was published to next at 2026-10-14T12:08Z (the maintainer: 「18.0.0-next.1 已发布」). Filed by the objectstack triage seat (seat post objectstack-ai/objectstack#6015, session_01AavokzJ5DndAwitDXvKy4U) as the one bump card for this release. ⛔ Not a claim.
Reader (who acts): the objectui domain:ui execution seat, the same path #12030 took for next.0. One PR. The publish itself is not objectui's.
What changes
objectui main resolves @objectstack/*18.0.0-next.0 across the lockfile, with ranges at ^18.0.0-next.0. The bump moves the lockfile, and the ranges' floor where a held card needs it, to 18.0.0-next.1.
The maintainer's rule 「发版本优先的都p1」: every next.N publish gets one consumer bump card, filed by triage when the publish is confirmed, so the held follow-ups have one carrier instead of several PRs racing on the lockfile.
Claim: PM loop round 1
Session: session_01XVp19E1MYUTFM3dnkwz8gB
Account: baozhoutao (the seat's linked user as GET /user answers it; the card's assignee)
Branch: claude/issue-12370-spec-next-1
Worktree: objectui-issue-12370
Domain: domain:ui
Seat: domain:ui#2
File surface: the root and package package.json@objectstack/* ranges, pnpm-lock.yaml, packages/types/src/__tests__/held-public-block-arms-10872.test.ts (objectui#12338, which rides this PR), and the contract-following fixes for any red that 18.0.0-next.1 raises. Each fix is declared per site in the PR body, and a red that belongs to a held card is named, not fixed (stop on breach; explain in the report)
Container & model: M, mode:subagent, model: opus (default tier; dispatch-gates --tier --repo objectstack-ai/objectui reads no path-derived mandate)
Clause-②: yes — following next.1 narrows @object-ui/types accept sets that parse through the spec's schemas (objectui#12338's action row is one). The contract review is owed before the queue.
Responsibility: n/a — not a defect card
Thread-read: none
Serial constraints cleared: the in-flight PR #12371 (objectui#12101) pins refusals measured on the installed 18.0.0-next.0 in flowValueSlots-12101.test.tsx. Whichever of the two lands second merges main and re-runs that file on its own installed spec. No other open objectui PR touches pnpm-lock.yaml or an @objectstack/* range (read 2026-10-14T13:09Z). objectui#12338 rides this PR as the card body directs, and is claimed under this comment.
{
"issue": 12370,
"status": "done",
"branch": "claude/issue-12370-spec-next-1",
"pr": "https://github.com/objectstack-ai/objectui/pull/12381",
"session": "session_01XVp19E1MYUTFM3dnkwz8gB",
"premise_still_valid": true,
"summary": "Moved all 40 @objectstack/* ranges in 32 manifests from ^18.0.0-next.0 to ^18.0.0-next.1 (lockfile regenerated by pnpm install only), and followed the next.1 contract. Fixed objectui#12338's row (actionType 'api' + target) and the other mechanical reds the full suite raised: action-arm bag identity (next.1's onSuccess block carries an openIn default that the objectui#8317 boundary strips), the retired view api provider in the grid, tree and subschema pins, lockfile/quick-reference/live-e2e pins, and 30 installed-pin claim sites (re-measured on next.1 against next.0, then restamped; one ledgered historical). One red is named as a held card's: record:related_list.parentDataSource (spec marks it PLANNED, not yet rendered) is booked in UNPUBLISHED_EXEMPTIONS with objectui#12294 as owner. The changeset has 24 minor entries (the 22 objectui#12030 declared, plus console and runner); there is no .changeset/pre.json, so objectui#12334 has not landed. A4: objectui#12371 landed before the push, main was merged, and flowValueSlots-12101.test.tsx is green on next.1 (no verdict change).",
"tests": "Full suite in four lock-held quarters (vitest --shard=K/4): shard1@bd55fee 2 files red/1261 passed; shard2@8992522 4/1256; shard3@272a269 1/1263; shard4@08331ae 3/1260 (one of those, check-object-metadata-write-doors, is a 15s timeout under load). Negative control: the 9 red files on main 2d8450e with next.0 installed gave 'Test Files 9 passed (9) / Tests 505 passed (505)'. After the fixes, the reds plus the flowValueSlots-12101 and pin-claims tests on 76afe66 with next.1 gave 'Test Files 12 passed (12) / Tests 571 passed (571)'. After the second main merge on 94b542a, the 10 test files that merge brought gave 177/177, and type-check for app-shell + plugin-grid gave 31/31. Build: turbo build (no site) 43/43, BUILD_EXIT=0. type-check: turbo 81/81, TYPECHECK_EXIT=0 (76afe66). #12338: a tsx probe over @object-ui/types faces shows the remedy row without an executor ACCEPT on next.0 and REJECT custom@properties.onSuccess on next.1, on both faces; the fixed test passes in the 12-file run. Clause-② table: 9 documents flip ACCEPT to REJECT on both faces, with 6 controls stable (in the PR body). Gates at 76afe66: frozen install 0; check:phantom-deps/self-import/unreferenced-sources/doc-example-readers/handler-key-reads/side-effects-array/element-data-source-declaration/spec-symbols/action-forward-parity/designer-field-key-parity/icon-record-names/i18n-keys/i18n-drift/i18n-designer-parity/installed-pin-claims/lockfile-integrity/control-bytes/changeset-claims/pending-changeset-literals all 0; check-changeset-fixed 0; check-changeset-presence 0; check-changeset-no-major 0. check:spec-floors 1 on the branch and on main 2d8450e, same 'scan collapsed' message, so the bump does not change it. NOT MEASURED: pnpm lint repo-wide (CI owns it). Narrowed instead: eslint --no-inline-config --format json over the 34 changed ts/tsx/mjs files counts 34 files and 0 errors; eslint.config.js has no parserOptions.project/projectService, so linting is not type-aware and the diff cannot move a verdict on an untouched file. Ablation: none run, because this is a contract-following change and the next.0 control is the before leg.",
"mcp_calls": "0",
"api_writes": "3: git push of the branch (not REST); POST /repos/objectstack-ai/objectui/pulls (draft) plus POST /issues/12381/assignees through the fleet-write relay (one pr_create stroke); POST /repos/objectstack-ai/objectui/issues/12370/comments (this os-dev-report). Read-only REST GETs: the issue, comment and PR bodies. Labels: zero writes, because the dispatch named none and no objectui gate reads a seat label.",
"open_questions": [],
"out_of_scope_findings": [
"carrier: holder of objectui#12294, or none · noted, not filed: packages/core/src/utils/normalize-list-view.ts:430 (and its test at :401) and the object-tree data .describe() in packages/types/src/zod/objectql.zod.ts:2795 still describe four view-data providers / an api provider that next.1 retires. Prose only, no reader. In PR Acceptance notes."
]
}
The patch round was a real contract follow, not a count edit. next.1 added checkPageComponentViewData, and objectui's PageNodeSchema / PageKindNodeSchema now attach it by the spec's export. The seat wrote its row into the PR body's Clause-② table from the dev's report. The dev's four local quarters had missed it, because two main merges reshuffled the shard plan between quarters; CI's 12 shards caught it.
A4 held: objectui#12371 landed first, main was merged, and flowValueSlots-12101.test.tsx is green on next.1 with no verdict change.
CI at head: 32 success, 3 skipped, 0 failures (filter=latest), all 12 test shards included.
needs:contract-review is removed in the same stroke. Next: pr_ready + automerge_enable. Once this merges, the held follow-ups' Restart-when: lines are met, and the unlock scan restarts them.
Labels:pm:dispatched is removed from this card and from objectui#12338 in the same stroke.
Install surface for the held follow-ups: objectui main now resolves @objectstack/*18.0.0-next.1. The cards this card's body names as waiting on it are objectui#12326, objectui#12294, objectui#12335, objectui#12349, objectui#12329 and objectui#12195. objectui#12271 also waits on a spec release; its probe is objectstack#23073's key. Each card's own Restart-when: / Blocked-by: line is for the unlock scan to judge. ⛔ This note does not restart them.
Activity
objectstack-fleet commentedon Oct 14, 2026
Claim: PM loop round 1
Session:
session_01XVp19E1MYUTFM3dnkwz8gBAccount:
baozhoutao(the seat's linked user asGET /useranswers it; the card's assignee)Branch:
claude/issue-12370-spec-next-1Worktree:
objectui-issue-12370Domain:
domain:uiSeat:
domain:ui#2File surface: the root and package
package.json@objectstack/*ranges,pnpm-lock.yaml,packages/types/src/__tests__/held-public-block-arms-10872.test.ts(objectui#12338, which rides this PR), and the contract-following fixes for any red that18.0.0-next.1raises. Each fix is declared per site in the PR body, and a red that belongs to a held card is named, not fixed (stop on breach; explain in the report)Container & model:
M,mode:subagent,model: opus(default tier;dispatch-gates --tier --repo objectstack-ai/objectuireads no path-derived mandate)Clause-②: yes — following next.1 narrows
@object-ui/typesaccept sets that parse through the spec's schemas (objectui#12338's action row is one). The contract review is owed before the queue.Responsibility:
n/a — not a defect cardThread-read: none
Serial constraints cleared: the in-flight PR #12371 (objectui#12101) pins refusals measured on the installed
18.0.0-next.0inflowValueSlots-12101.test.tsx. Whichever of the two lands second mergesmainand re-runs that file on its own installed spec. No other open objectui PR touchespnpm-lock.yamlor an@objectstack/*range (read 2026-10-14T13:09Z). objectui#12338 rides this PR as the card body directs, and is claimed under this comment.Generated by Claude Code
objectstack-fleet commentedon Oct 14, 2026
os-dev-report
{ "issue": 12370, "status": "done", "branch": "claude/issue-12370-spec-next-1", "pr": "https://github.com/objectstack-ai/objectui/pull/12381", "session": "session_01XVp19E1MYUTFM3dnkwz8gB", "premise_still_valid": true, "summary": "Moved all 40 @objectstack/* ranges in 32 manifests from ^18.0.0-next.0 to ^18.0.0-next.1 (lockfile regenerated by pnpm install only), and followed the next.1 contract. Fixed objectui#12338's row (actionType 'api' + target) and the other mechanical reds the full suite raised: action-arm bag identity (next.1's onSuccess block carries an openIn default that the objectui#8317 boundary strips), the retired view api provider in the grid, tree and subschema pins, lockfile/quick-reference/live-e2e pins, and 30 installed-pin claim sites (re-measured on next.1 against next.0, then restamped; one ledgered historical). One red is named as a held card's: record:related_list.parentDataSource (spec marks it PLANNED, not yet rendered) is booked in UNPUBLISHED_EXEMPTIONS with objectui#12294 as owner. The changeset has 24 minor entries (the 22 objectui#12030 declared, plus console and runner); there is no .changeset/pre.json, so objectui#12334 has not landed. A4: objectui#12371 landed before the push, main was merged, and flowValueSlots-12101.test.tsx is green on next.1 (no verdict change).", "tests": "Full suite in four lock-held quarters (vitest --shard=K/4): shard1@bd55fee 2 files red/1261 passed; shard2@8992522 4/1256; shard3@272a269 1/1263; shard4@08331ae 3/1260 (one of those, check-object-metadata-write-doors, is a 15s timeout under load). Negative control: the 9 red files on main 2d8450e with next.0 installed gave 'Test Files 9 passed (9) / Tests 505 passed (505)'. After the fixes, the reds plus the flowValueSlots-12101 and pin-claims tests on 76afe66 with next.1 gave 'Test Files 12 passed (12) / Tests 571 passed (571)'. After the second main merge on 94b542a, the 10 test files that merge brought gave 177/177, and type-check for app-shell + plugin-grid gave 31/31. Build: turbo build (no site) 43/43, BUILD_EXIT=0. type-check: turbo 81/81, TYPECHECK_EXIT=0 (76afe66). #12338: a tsx probe over @object-ui/types faces shows the remedy row without an executor ACCEPT on next.0 and REJECT custom@properties.onSuccess on next.1, on both faces; the fixed test passes in the 12-file run. Clause-② table: 9 documents flip ACCEPT to REJECT on both faces, with 6 controls stable (in the PR body). Gates at 76afe66: frozen install 0; check:phantom-deps/self-import/unreferenced-sources/doc-example-readers/handler-key-reads/side-effects-array/element-data-source-declaration/spec-symbols/action-forward-parity/designer-field-key-parity/icon-record-names/i18n-keys/i18n-drift/i18n-designer-parity/installed-pin-claims/lockfile-integrity/control-bytes/changeset-claims/pending-changeset-literals all 0; check-changeset-fixed 0; check-changeset-presence 0; check-changeset-no-major 0. check:spec-floors 1 on the branch and on main 2d8450e, same 'scan collapsed' message, so the bump does not change it. NOT MEASURED: pnpm lint repo-wide (CI owns it). Narrowed instead: eslint --no-inline-config --format json over the 34 changed ts/tsx/mjs files counts 34 files and 0 errors; eslint.config.js has no parserOptions.project/projectService, so linting is not type-aware and the diff cannot move a verdict on an untouched file. Ablation: none run, because this is a contract-following change and the next.0 control is the before leg.", "mcp_calls": "0", "api_writes": "3: git push of the branch (not REST); POST /repos/objectstack-ai/objectui/pulls (draft) plus POST /issues/12381/assignees through the fleet-write relay (one pr_create stroke); POST /repos/objectstack-ai/objectui/issues/12370/comments (this os-dev-report). Read-only REST GETs: the issue, comment and PR bodies. Labels: zero writes, because the dispatch named none and no objectui gate reads a seat label.", "open_questions": [], "out_of_scope_findings": [ "carrier: holder of objectui#12294, or none · noted, not filed: packages/core/src/utils/normalize-list-view.ts:430 (and its test at :401) and the object-tree data .describe() in packages/types/src/zod/objectql.zod.ts:2795 still describe four view-data providers / an api provider that next.1 retires. Prose only, no reader. In PR Acceptance notes." ] }objectstack-fleet commentedon Oct 14, 2026
Review: ACCEPT — objectui PR #12381 ·
domain:uiseat 2 ·session_01XVp19E1MYUTFM3dnkwz8gB· 2026-10-14T19:15ZReviewed on GitHub at head
50056a8, against this card, objectui#12338 and the contract review on this head, not against the dev's report.main. Its body opensFixes #12370andFixes #12338, the only closing keywords; types(test):held-public-block-arms-10872.test.ts:224asserts an executor-less page action row withonSuccessis accepted — refused once the spec release carrying objectstack#23331 is installed; give the rowactionType: 'api'#12338 rides this PR as both cards direct. The second line isClause-②: yes. No held card's number (Studio: acontrolled_by_parentobject needs exactly onemaster_detailwithrequired: true(objectstack#23100) — the designer writes an omittedrequiredthat the save door now refuses, andderiveMasterObjectreads the first master by order #12326, record blocks honour the per-element dataSource the spec already declares — record:details / record:highlights / record:quick_actions / record:related_list on an app page bind their record from the component's dataSource, so a product page composes without the record shell (maintainer ruling cloud#2839 Q1 D, 2026-10-13) #12294, metadata-client:reset()cannot name a package — after objectstack#23165 a console reset or discard of an item two packages hold answers 409, and the remedy?package=is one the console cannot send #12335, studio(automations): read the engine'sregistrationverdict on a flow, so a flow the engine refused at boot no longer reads as "unpublished" or "enabled" (objectstack#23316) #12349, v18: the flow designer and simulator stop teaching and emulating the single-brace{var}dialect, which objectstack#19939 deletes (the objectui half of #19939 pass 4, S7) #12329, [finding] usePageAssignment ignores PageSchema.isDefault and takes the first record page in meta.pages order, so two isDefault record pages for one object are decided by plugin init order #12195) carries a keyword. The governed sweep reads NOT governed, 589 lines (+370 / −219).6176288280on PR chore(deps): move @objectstack/* to 18.0.0-next.1 and follow its contract (objectui#12370) #12381:Served-tier: CONTRACT_REVIEW_TIER,Head-sha50056a8da4…(this head),Local-runs: none.next.0keys;@object-ui/typesfaces by reference, with types(test):held-public-block-arms-10872.test.ts:224asserts an executor-less page action row withonSuccessis accepted — refused once the spec release carrying objectstack#23331 is installed; give the rowactionType: 'api'#12338's row carryingactionType: 'api'+target;stripImportedDefaults;ViewDataSchemarefusesapi;checkPageComponentViewDatais attached by the spec's own export;record:related_list.parentDataSourceis booked to held card record blocks honour the per-element dataSource the spec already declares — record:details / record:highlights / record:quick_actions / record:related_list on an app page bind their record from the component's dataSource, so a product page composes without the record shell (maintainer ruling cloud#2839 Q1 D, 2026-10-13) #12294;minormatches the published surface: deps(v18): move objectui's @objectstack/* dependencies to thenextprereleases (18.0.0-next.N) ahead of 18.0 GA — the maintainer's ruling, since 17.x ships no new release #12030's 22 packages plus console and runner. There is no.changeset/pre.json, so the bump carries no release cut.checkPageComponentViewData, and objectui'sPageNodeSchema/PageKindNodeSchemanow attach it by the spec's export. The seat wrote its row into the PR body's Clause-② table from the dev's report. The dev's four local quarters had missed it, because twomainmerges reshuffled the shard plan between quarters; CI's 12 shards caught it.mainwas merged, andflowValueSlots-12101.test.tsxis green on next.1 with no verdict change.normalize-list-view.ts:430and theObjectTreeSchema.data.describe()still name four view-data providers. PR docs: published text no longer teaches the retired view-levelprovider: 'api'(objectui#12364) #12380 (objectui#12364), in the queue, rewrites both; whichever lands second carries the other's text.filter=latest), all 12 test shards included.needs:contract-reviewis removed in the same stroke. Next:pr_ready+automerge_enable. Once this merges, the held follow-ups'Restart-when:lines are met, and the unlock scan restarts them.Generated by Claude Code
objectstack-fleet commentedon Oct 14, 2026
Landed ·
domain:uiseat 2 ·session_01XVp19E1MYUTFM3dnkwz8gB· 2026-10-14T19:54Zmainff9df88. It closed this card and objectui#12338completed, by the PR'sFixes #12370andFixes #12338, its only closing keywords. No other card closed with it.origin/main, 65 of the 68 files the PR touches are blob-identical to the accepted, contract-reviewed head50056a8. That covers every manifest,pnpm-lock.yaml, thelayout.zod.tspage-check attachment, the types(test):held-public-block-arms-10872.test.ts:224asserts an executor-less page action row withonSuccessis accepted — refused once the spec release carrying objectstack#23331 is installed; give the rowactionType: 'api'#12338 row and.changeset/12370-spec-next-1.md.ObjectCalendar.tsx,packages/types/src/objectql.tsandzod/objectql.zod.ts. Each differs from the head by exactly PR docs: published text no longer teaches the retired view-levelprovider: 'api'(objectui#12364) #12380's text hunks (objectui#12364, merged first asd75f212).pm:dispatchedis removed from this card and from objectui#12338 in the same stroke.mainnow resolves@objectstack/*18.0.0-next.1. The cards this card's body names as waiting on it are objectui#12326, objectui#12294, objectui#12335, objectui#12349, objectui#12329 and objectui#12195. objectui#12271 also waits on a spec release; its probe is objectstack#23073's key. Each card's ownRestart-when:/Blocked-by:line is for the unlock scan to judge. ⛔ This note does not restart them.Generated by Claude Code
chore(deps): move @objectstack/* to 18.0.0-next.1 and follow its cont…