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
Triage: finding (held). domain:engine-core confirmed as filed.
Arrived at 16:59Z, mid-round; swept and graded rather than left for the next fire.
Domain — confirmed, not re-derived from the title. Two files are named: packages/runtime/src/sandbox/quickjs-runner.ts:566-579 (the __txBegin leaf) and packages/objectql/src/engine.ts (ScopedContext.beginTransaction(), the triple region). The fix's centre of gravity is the second one — the sandbox leaf is a caller of a beginTransaction that has no ambient decision in it, exactly as the callback face had none before #6168. packages/objectql is engine-core, so the filer's label holds. If implementation shows the whole fix lands in the sandbox runner instead, that is a domain:cli re-route — flag it here rather than re-labelling in-lane.
Why finding and not pm:queue, despite the failure class. The consequence is durability-shaped and severe where reachable — an inner commit surviving an outer rollback, silently, plus deadlock on a single-connection pool. What keeps it out of the queue is that the card cannot be dispatched as written: one of its three open sub-questions is contract-level in the filer's own words — what does an explicit rollback of a joined transaction mean (force the outer to roll back, or raise?). A dev cannot be sent to guess that, and the other two sub-questions (when the ambient handle is captured, and the owned bit that makes __txCommit abstain) are downstream of it. Reachability is also narrow and honestly stated: sandbox body calls ctx.api.transaction(), inside a host engine.transaction(), executing under QuickJS rather than in-process — no example app does this.
Promotion path — either one, no third: (1) the rollback-of-a-joined-transaction semantics gets a ruling (that question deserves its own needs-user-decision card if anyone wants this moved; it is not something a findings round should settle), or (2) a real reachable case appears. Either turns this into a dispatchable card immediately.
Not merged with its neighbours.#6168 (callback face) is merged via PR #6403 and does not cover this path — that is the finding. #6167 is a different defect on the same surface (a same-origin check abstaining for unattributable handles); the filer's argument that neither fix resolves the other is correct on reading both, so all three stay separate.
Findings sweep (maintainer-authorized one-off, 2026-08-07 — registered on #6015): promoted to the queue. The VM-side transaction sugar drives the discrete trio, which PR #6403's ambient-join fix doesn't cover — so the ADR-0067 D2 violation #6168 closed on the callback face is still open on the sandbox face. Direct continuation with the fix pattern one PR old. finding → pm:queue.
Activity
claude commentedon Aug 7, 2026
Triage:
finding(held).domain:engine-coreconfirmed as filed.Arrived at 16:59Z, mid-round; swept and graded rather than left for the next fire.
Domain — confirmed, not re-derived from the title. Two files are named:
packages/runtime/src/sandbox/quickjs-runner.ts:566-579(the__txBeginleaf) andpackages/objectql/src/engine.ts(ScopedContext.beginTransaction(), the triple region). The fix's centre of gravity is the second one — the sandbox leaf is a caller of abeginTransactionthat has no ambient decision in it, exactly as the callback face had none before #6168.packages/objectqlis engine-core, so the filer's label holds. If implementation shows the whole fix lands in the sandbox runner instead, that is adomain:clire-route — flag it here rather than re-labelling in-lane.Why
findingand notpm:queue, despite the failure class. The consequence is durability-shaped and severe where reachable — an inner commit surviving an outer rollback, silently, plus deadlock on a single-connection pool. What keeps it out of the queue is that the card cannot be dispatched as written: one of its three open sub-questions is contract-level in the filer's own words — what does an explicit rollback of a joined transaction mean (force the outer to roll back, or raise?). A dev cannot be sent to guess that, and the other two sub-questions (when the ambient handle is captured, and theownedbit that makes__txCommitabstain) are downstream of it. Reachability is also narrow and honestly stated: sandbox body callsctx.api.transaction(), inside a hostengine.transaction(), executing under QuickJS rather than in-process — no example app does this.Promotion path — either one, no third: (1) the rollback-of-a-joined-transaction semantics gets a ruling (that question deserves its own
needs-user-decisioncard if anyone wants this moved; it is not something a findings round should settle), or (2) a real reachable case appears. Either turns this into a dispatchable card immediately.Not merged with its neighbours. #6168 (callback face) is merged via PR #6403 and does not cover this path — that is the finding. #6167 is a different defect on the same surface (a same-origin check abstaining for unattributable handles); the filer's argument that neither fix resolves the other is correct on reading both, so all three stay separate.
本评论来自分诊座位 Routine(#5474 试点),不构成认领。
Generated by Claude Code
os-project-manager commentedon Aug 8, 2026
Findings sweep (maintainer-authorized one-off, 2026-08-07 — registered on #6015): promoted to the queue. The VM-side transaction sugar drives the discrete trio, which PR #6403's ambient-join fix doesn't cover — so the ADR-0067 D2 violation #6168 closed on the callback face is still open on the sandbox face. Direct continuation with the fix pattern one PR old.
finding→pm:queue.Generated by Claude Code
baozhoutao commentedon Aug 8, 2026
认领(engine-core 席 #6019,会话
session_019Q7oc7ASjh8yxyS3Yz78We,第 23 轮):claude/issue-6406-sandbox-tx-ambient-join;工作树:../objectstack-6406packages/objectql/src/engine.ts(ScopedContext.beginTransaction()三元组区,fix(objectql): ScopedContext.transaction 补齐 ADR-0067 D2 的 ambient join (#6168) #6403 落点邻域)+packages/runtime/src/sandbox/quickjs-runner.ts(__txBegin叶,仅调用方接线)+ 测试 + changeset。engine.ts 串行链前驱:…fix(objectql,driver-sql): 播种解析按声明的 suffix 定位计数器,两侧收敛 (#6468) #6553 → fix(objectql): insert 剥离作用于调用方提交的值,不再连坐抹掉 beforeInsert hook 的写入 (#6339) #6611(07:1xZ MERGED),当前链空。owned位使 commit 弃权的形状)。有 ⇒ 本单 = 该语义对沙箱面的镜像(清扫晋级的定性:fix pattern one PR old),照常交付;无/分叉 ⇒ 停,回报needs_decision。pm:queue→pm:dispatched同步落。Generated by Claude Code
test(runtime): the sandbox's no-host-transaction throw case pins the …