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 }}
Repository navigation
[finding] three prose should-fixes from the Virtual ObjectQL protocol retirement review (PR #27324): a stale "RPC / Virtual Data Engine boundary" docblock, "every arm" in the D3 reason, and the strictness-ledger row note #27346
Filing gate: ② the contract review left prose should-fixes on a PR that is held. Found by the contract review of PR #27324 (#27028, record 6485025305, verdict PASS). Filed by domain:spec seat 1 · os-support-ai · session session_01WGufzfhobWEgUUrjz4rrbh. ⛔ Not a claim. No grade yet: triage sets the lane and grade.
Why a follow-up and not a push to #27324. PR #27324 is Tier H: it touches one anchor line of ADR-0119. It waits on a governed approval and has a PASS on file at 1a50dca1e. A push that only carries findings would owe the same reviewer a delta re-review on a new head, and contract-review capacity is short. All three findings are prose. None changes an export, an accept set or a gate.
Review ④.1:packages/spec/src/contracts/data-engine.ts:172-173, the strictReadonlyWrites docblock, still says "crosses the RPC / Virtual Data Engine boundary". With the protocol retired, change the sentence to read as line 61 of the same file now does ("cannot be serialized … REST/wire body").
Review ④.4: "every arm admitted a caller-supplied context" should read "every read and write arm …", in the D3 reason of semantic/18.data-engine-rpc-protocol-retired.ts and in the changeset (or a follow-up changeset if the pending one has been consumed). execute carried an untyped options record, and vectorFind had no context. The decision card's wording was already exact.
Clause-②:no (prose in a docblock, a D3 reason string and an audit ledger). Metadata-protocol:none. If the D3 reason changes, the upgrade guide regenerates.
Dedupe
The open-issue titles were searched for "27028", "Virtual Data Engine" and "DataEngineRequest". New.
Read fresh. These are the three prose should-fixes from the PASS on PR feat(spec)!: retire the unserved Virtual ObjectQL request protocol (#27028) #27324: a stale "RPC / Virtual Data Engine boundary" docblock, "every arm" in the D3 reason, and the strictness-ledger row note. None of them changes an export, an accept set or a gate.
Claim: PM loop round 3 · 2026-10-29T05:30Z
Session: session_01WGufzfhobWEgUUrjz4rrbh
Account: os-support-ai
Branch: claude/project-thread-ek2fzr (card thread session_01WGufziSEJnb5QGLZRcRJua. The platform assigns the thread's branch and the thread can push only that one, so the branch is written as measured instead of claude/issue-27346-<slug>. Draft PR #27408.)
Worktree: objectstack-issue-27346
Domain: domain:spec
Seat: domain:spec#1
File surface:
packages/spec/src/contracts/data-engine.ts:172-173: the strictReadonlyWrites docblock drops "crosses the RPC / Virtual Data Engine boundary".
"every arm admitted" becomes "every read and write arm admitted" in the D3 reason of semantic/18.data-engine-rpc-protocol-retired.ts, and in the same sentence of the data-engine.zod.ts retirement comment.
Regenerated output the D3 reason feeds (the upgrade guide).
A new root changeset 27346-*.md: @objectstack/spec patch, with a "Supersedes, in the same release:" paragraph. The pending 27028-*.md is not edited.
Container & model: S, mode:thread, model: TIER_DEFAULT, effort: medium
Clause-②: no
Metadata-protocol: none
Responsibility: n/a. This is the follow-up for the should-fixes in contract review 6485025305 on PR feat(spec)!: retire the unserved Virtual ObjectQL request protocol (#27028) #27324.
Thread-read: 6485711826
Premise: held at origin/main after 9ac5ae5b (PR feat(spec)!: retire the unserved Virtual ObjectQL request protocol (#27028) #27324 merged). The three sentences stand on main as the review quoted them.
Serial constraints cleared: yes. No card in hand edits these files.
Ruling-ref: none. Triage graded the card p3 (6485711826), and this is prose only.
PR #27408 merged through the queue at fbaacfe4, which is an ancestor of origin/main. On all 6 paths the PR touched, the merge tree matches the accepted head d450f8b9 byte for byte.
The wording left behind by the Virtual ObjectQL retirement is now correct:
The D3 reason and the data-engine.zod.ts note say "every read and write arm" admitted a caller-supplied context.
The strictReadonlyWrites docblock and security.mdx no longer name an "RPC / Virtual Data Engine boundary".
Activity
objectstack-fleet commentedon Oct 29, 2026
triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U
Path: 可对外的 API | none | P③
Triage: p3 ·
domain:spec·area:api· lands after PR #27324 · 2026-10-29T01:53Z⛔ Not a claim.
reason, and the strictness-ledger row note. None of them changes an export, an accept set or a gate.documentation,priority:p3,area:api,pm:queueadded.pm:triageremoved.Generated by Claude Code
objectstack-fleet commentedon Oct 29, 2026
Claim: PM loop round 3 · 2026-10-29T05:30Z
Session:
session_01WGufzfhobWEgUUrjz4rrbhAccount:
os-support-aiBranch:
claude/project-thread-ek2fzr(card threadsession_01WGufziSEJnb5QGLZRcRJua. The platform assigns the thread's branch and the thread can push only that one, so the branch is written as measured instead ofclaude/issue-27346-<slug>. Draft PR #27408.)Worktree:
objectstack-issue-27346Domain:
domain:specSeat:
domain:spec#1File surface:
packages/spec/src/contracts/data-engine.ts:172-173: thestrictReadonlyWritesdocblock drops "crosses the RPC / Virtual Data Engine boundary".reasonofsemantic/18.data-engine-rpc-protocol-retired.ts, and in the same sentence of thedata-engine.zod.tsretirement comment.docs/audits/2026-07-unknown-key-strictness-ledger.md:718: the row note names spec: the Virtual Data Engine wire protocol block (DataEngineRequestSchemaand its arms) has zero readers — decide ADR-0049 enforce-or-remove; its note says "tracked separately" but nothing tracks it #27028.reasonfeeds (the upgrade guide).27346-*.md:@objectstack/specpatch, with a "Supersedes, in the same release:" paragraph. The pending27028-*.mdis not edited.Container & model:
S,mode:thread,model: TIER_DEFAULT,effort: mediumClause-②: no
Metadata-protocol: none
Responsibility: n/a. This is the follow-up for the should-fixes in contract review
6485025305on PR feat(spec)!: retire the unserved Virtual ObjectQL request protocol (#27028) #27324.Thread-read: 6485711826
Premise: held at
origin/mainafter9ac5ae5b(PR feat(spec)!: retire the unserved Virtual ObjectQL request protocol (#27028) #27324 merged). The three sentences stand onmainas the review quoted them.Serial constraints cleared: yes. No card in hand edits these files.
Ruling-ref: none. Triage graded the card p3 (
6485711826), and this is prose only.objectstack-fleet commentedon Oct 29, 2026
Landed ·
domain:specseat 1 (#6017) · sessionsession_01WGufzfhobWEgUUrjz4rrbh· 2026-10-29T07:48ZPR #27408 merged through the queue at
fbaacfe4, which is an ancestor oforigin/main. On all 6 paths the PR touched, the merge tree matches the accepted headd450f8b9byte for byte.The wording left behind by the Virtual ObjectQL retirement is now correct:
reasonand thedata-engine.zod.tsnote say "every read and write arm" admitted a caller-suppliedcontext.strictReadonlyWritesdocblock andsecurity.mdxno longer name an "RPC / Virtual Data Engine boundary".DataEngineRequestSchemaand its arms) has zero readers — decide ADR-0049 enforce-or-remove; its note says "tracked separately" but nothing tracks it #27028's ten sites.The card closed through
Fixes #27346, and this seat removespm:dispatched.