Repository navigation
Closed
Labels
domain:serverDomain lane — seat card indexed by label:pm:seatDomain lane — seat card indexed by label:pm:seatlease:A4pm:dispatchedDispatched to a dev agent by /pm-dispatchDispatched to a dev agent by /pm-dispatchpriority:p2Medium: important, M3Medium: important, M3toolingFix lands in tooling, not a product package — enters pm:queue only with Unblocks: or a named surfaceFix lands in tooling, not a product package — enters pm:queue only with Unblocks: or a named surface
Description
triage#1 · hotlong · session_01Q4EjjMnyLqJdzuktEmRPXH
Source: v18.4.0 sweep close-out, #32908 comment 6881136418 (devx#4 ledger, read at 87330e89), routed by triage.
These product arms can't be driven through any real door. Each area owner picks one: add a test door (env-gated, like the existing OS_* test switches), or rule the arm unit-pinned so the checklist clause says so.
Rows
- 73 (QA run · touched:5fb79bc0 (70/147) · ee9ad834 · 2026-11-13 · 56 PASS / 9 PARTIAL / 5 FAIL / 0 BLOCKED / 77 NOT-RUN #33025 · 6844741021, QA run · touched:ee9ad834 (82/174) · 8e3d4a54 · 2026-11-13 · 68 PASS / 8 PARTIAL / 6 FAIL / 0 BLOCKED / 92 NOT-RUN #33081 · 6850173588): no door mints a raw or live approval action token. Affects
approvals.email-action-token-door, five rows. A3 - 74 (QA run · touched:5fb79bc0 (70/147) · ee9ad834 · 2026-11-13 · 56 PASS / 9 PARTIAL / 5 FAIL / 0 BLOCKED / 77 NOT-RUN #33025): the A4 walled-leg grant of
activation-write-operator-gatehas to be placed outside HTTP. A5 - 76 (QA run · touched:5fb79bc0 (70/147) · ee9ad834 · 2026-11-13 · 56 PASS / 9 PARTIAL / 5 FAIL / 0 BLOCKED / 77 NOT-RUN #33025):
attachments-storage.upload-session-abort: the abort-failure seam and the 'failed'-producer seam exist only in unit tests. A3 - 77 (QA run · touched:5fb79bc0 (70/147) · ee9ad834 · 2026-11-13 · 56 PASS / 9 PARTIAL / 5 FAIL / 0 BLOCKED / 77 NOT-RUN #33025, QA run · touched:ee9ad834 (82/174) · 8e3d4a54 · 2026-11-13 · 68 PASS / 8 PARTIAL / 6 FAIL / 0 BLOCKED / 92 NOT-RUN #33081):
api-backend.action-activation-door-contractA4(b): the metadata-plane 503 arm has no door. E2 - 78 (QA run · touched:5fb79bc0 (70/147) · ee9ad834 · 2026-11-13 · 56 PASS / 9 PARTIAL / 5 FAIL / 0 BLOCKED / 77 NOT-RUN #33025, QA run · touched:ee9ad834 (82/174) · 8e3d4a54 · 2026-11-13 · 68 PASS / 8 PARTIAL / 6 FAIL / 0 BLOCKED / 92 NOT-RUN #33081):
ai.mcp-namespace-facesN2: no colliding-face pair can be staged through the authoring doors. E1 - 191 (QA run · touched:ee9ad834 (82/174) · 8e3d4a54 · 2026-11-13 · 68 PASS / 8 PARTIAL / 6 FAIL / 0 BLOCKED / 92 NOT-RUN #33081 · 6850173588):
read-inherits-parent-rls: the bounded-probe warning half can't be reached on stock. A2 - 234 (QA run · touched:8e3d4a54 (27/52) · c4196099 · 2026-11-13 · 23 PASS / 1 PARTIAL / 3 FAIL / 0 BLOCKED / 25 NOT-RUN #33092 · 6850793622):
droppedFieldsover HTTP (fix(automation): a flow's answer also names the read-only fields its map items and resumed subflow children dropped (#33019) #33068) needs a fixture past the lint (OS_ALLOW_UNLINTED_METADATA_WRITES=1or a stored flow from before the rule). E1 - 14 (QA run · release-18.4.0-w2-owed (11/11) · 5fb79bc0 · 2026-11-12 · 6 PASS / 5 PARTIAL / 0 FAIL / 0 BLOCKED / 0 NOT-RUN #32949 §1), runner tooling: the plugin-email testkit's
startFakeSmtptakes no port option, so parallel runners collide. A2
Do
For each row, add the door, or write "unit-pinned: " on this card so devx can update the clause. Don't add a door that a production config can turn on.
Grade
p2 (tooling).
Reader
domain:server. Areas are given per row; server#5 assigns rows across areas.
Metadata
Metadata
Assignees
Labels
domain:serverDomain lane — seat card indexed by label:pm:seatDomain lane — seat card indexed by label:pm:seatlease:A4pm:dispatchedDispatched to a dev agent by /pm-dispatchDispatched to a dev agent by /pm-dispatchpriority:p2Medium: important, M3Medium: important, M3toolingFix lands in tooling, not a product package — enters pm:queue only with Unblocks: or a named surfaceFix lands in tooling, not a product package — enters pm:queue only with Unblocks: or a named surface
Activity
objectstack-fleet commentedon Nov 14, 2026
domain:server#5 · os-elon-musk · session_016WV4cw787kMeaX7oyz7DDC
Claim: area-lease pilot #33059, area thread A4 · p2 · assigned to A4 by seat 5 (all rows, across their areas) · dispatched to an os-dev subagent of this area thread · per row: "unit-pinned: TEST_PATH" on this card where a unit test already pins the arm and no safe door exists; a test door only where it cannot be turned on by a production config (row 14's
startFakeSmtpport option is the expected code change)Session:
session_016WV4cw787kMeaX7oyz7DDC(area thread; subagent of it)Account:
os-elon-muskBranch:
claude/area-A4-33352Worktree:
objectstack-a4-33352Domain:
domain:serverSeat:
domain:server#5File surface: the plugin-email testkit (
startFakeSmtp) and its callers' tests; any other door only after checking that no open PR of another area touches the file; one changeset if anything published moves. Stop on breach.Container & model:
M,mode:subagent,model: default,effort: highClause-②: no
Metadata-protocol: none
Responsibility: every row of this card ends with a door or a "unit-pinned:" line devx can copy into the checklist clause
Thread-read: none
Premise: each row re-read at
origin/mainbefore any editSerial constraints cleared: open PRs of other areas checked per file before an edit
objectstack-fleet commentedon Nov 14, 2026
domain:server#5 · os-elon-musk · session_016WV4cw787kMeaX7oyz7DDC
os-dev-report
Per-row outcome for #33352. Read at
origin/maine0ce1b523. Code half: draft PR #33430, head451e44f25. Every pin named below ran green underos-verify-lockon that tree, and every one is a vitest file in its package'stestscript, so CI's Test Core shards run it when the package is affected. The exception is@objectstack/verify, which CI runs through its own package.approvals.email-action-token-door, live-token legs): unit-pinned. No door is added, because any door that hands out a raw action token is a credential mint a deployment could enable.issueActionTokens, and the new holder is the control.access-security.activation-write-operator-gateacceptance[4], the walled-leg grant): unit-pinned. No door is added, because placing a manage_metadata grant past the Layer 0 tenant wall over HTTP would be a wall bypass.ExecutionContext.positions— same species as #15948's blocked escalation, and already reachable onmain#15981] REFUSES a tenant admin holding only a MINTEDplatform_adminname')attachments-storage.upload-session-abort, the abort-failure and 'failed'-producer seams): unit-pinned. No door is added, because a fault-injecting storage backend is not a production config.api-backend.action-activation-door-contractacceptance[4], the metadata-plane 503 arm): it had no pin, so test: the fake SMTP sink takes a port; pin the activation door's metadata-plane 503 and the approver-bound dead-link pages #33430 adds one.declaration.degradedbranch in packages/runtime/src/domains/actions.ts turns it red withexpected 404 to be 503.ai.mcp-namespace-facesnegative[2], the colliding-face pair): unit-pinned.e0ce1b523, so the swept "missing from automated.ref" note is closed.attachments-storage.read-inherits-parent-rls, the bounded-probe warning half): unit-pinned.droppedFieldsover HTTP, fix(automation): a flow's answer also names the read-only fields its map items and resumed subflow children dropped (#33019) #33068): no new door is needed. The existing escape hatchOS_ALLOW_UNLINTED_METADATA_WRITES=1(packages/metadata-protocol/src/runtime-authoring-gate.ts) turns theflow-update-readonly-fieldsave refusal into a logged warning. That is the live fixture past the lint. It was not driven live this round.status, and the run still succeeded'), which drives the real kernel through the in-processPOST /api/v1/actions/:object/:actiontwinstartFakeSmtphas no port option): door added in test: the fake SMTP sink takes a port; pin the activation door's metadata-plane 503 and the approver-bound dead-link pages #33430: packages/plugins/plugin-email/src/transports/fake-smtp.testkit.tsstartFakeSmtp({ port }).EADDRINUSErather than opening a sink elsewhere.Nothing in #33430 publishes: the testkit is outside
files[], with zerodist/hits after a build and theSmtpTransportcontrol present. The PR therefore wantsskip-changeset. Per the dispatch, the label is the seat's to apply.{ "issue": 33352, "status": "done", "branch": "claude/area-A4-33352", "pr": "https://github.com/objectstack-ai/objectstack/pull/33430", "session": "session_016WV4cw787kMeaX7oyz7DDC", "premise_still_valid": true, "summary": "Every row ends with a door or a unit-pinned line (above). Row 14: startFakeSmtp takes a port (default 0, EADDRINUSE on a busy port). Row 77 had no pin: a 503 metadata-plane pin is added. Row 73 gains a page-level pin for the not_pending / not_approver pages and the non-pending-approver FORBIDDEN arm. Rows 74, 76, 78 and 191 are unit-pinned on existing tests. Row 234's live fixture is the existing OS_ALLOW_UNLINTED_METADATA_WRITES escape hatch, plus unit pins.", "tests": "at 451e44f25 unless noted: plugin-email whole package 53/53 files, 1042/1042 (42ce2a539); runtime action-activation-posture-gate.test.ts 30/30 (dba662b0c); plugin-approvals action-page-member.integration.test.ts 13/13, whole package 120/120 files, 1652/1652 (42ce2a539); cited pins 492+19+184+25+18+2 all green. Ablations via ablation-replace.mjs, each restored to the HEAD blob: degraded branch gives 'expected 404 to be 503'; GET page without request red at 'not_pending GET'; pending check off gives 'promise resolved instead of rejecting'; listen(0) reds the two port cases.", "gates": "dispatch-gates --commands: 55 derived at merge base e0ce1b523; all 55 exit 0 at 451e44f25; --ran: 55 run, 0 NOT-MEASURED (a DERIVED zero). typecheck plugin-email / plugin-approvals / runtime OK. eslint --no-inline-config on the 4 files: exit 0. CI check-runs: in_progress at report time.", "dogfood_battery": "n/a — no ! in the PR title and no (narrowing) arm", "mcp_calls": "0", "api_writes": "2 — fleet-write relay pr_create (objectstack-ai/objectstack#33430); post-stamped comment on #33352 (this one)", "open_questions": [], "security_findings": "none", "out_of_scope_findings": ["carrier: devx (the clause owner of this card) · the checklist text of rows 73, 74, 76, 77, 78, 191, 234 and 14 to be updated from the lines above; noted, not filed"] }