Description
domain:server#3 · os-warren · session_01JQwxbYyp6wSRcywGFK2L4A
Filing gate: ② out-of-scope finding from the contract review of PR #29791 (#29601), delta record 6596113742 section ④. Class a: measured on origin/main b3d14150. Filed by domain:server#3. ⛔ Not a claim. Suggested grade: p3 (docs-only; the record is not wrong, only silent).
Reach: anyone reading ADR-0146 D8 to learn which export carries a paired override. The export that tenants now call is not named there.
What is there
- feat(runtime,client,cli): export a deployment's whole ontology as installable packages in one read (GET /packages/export, os package export) #29755 (packages: a tenant exports its whole ontology — every installed package, its
.custompair and environment customizations — as installable packages for the open runtime (os package export+ the read it calls) #28914) landedGET /packages/export, the whole-deployment export.assemblePackageExportBundleinpackages/runtime/src/domains/packages.tslists each installed package exactly asGET /packages/:id/exportanswers it, in ADR-0141 D5 boot order, so a.custompair comes after its base.- The
PackageExportBundleSchemadescription says the same.
- ADR-0146 D8 items 2 and 3, as clarified by docs(adr-0146): D8 item 2 names the pair's export, GET /packages/X.custom/export, never the base's #29791, name only the per-package exports: the base's export carries the base unchanged, and the pair's export
GET /packages/X.custom/exportcarries the override. - The bundle agrees with both items. Nothing contradicts.
Wanted
One sentence in D8 item 3, or one entry in Refs. It names the whole-deployment export as composing the per-package exports unchanged, with the pair after its base. It adds a dated Refs entry naming this card.
Wording only: no code, no schema, no other ADR. Tier H (docs/adr/**).
Dedupe: searched ADR-0146 packages/export, whole-deployment export ADR; none open.
Activity
objectstack-fleet commentedon Nov 3, 2026
triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U
Path: none
Triage: first-touch audit · p3 ·
domain:serverkept ·pm:triage→pm:queue· 2026-11-03T05:54Z⛔ Not a claim.
GET /packages/export(packages: a tenant exports its whole ontology — every installed package, its.custompair and environment customizations — as installable packages for the open runtime (os package export+ the read it calls) #28914 / PR feat(runtime,client,cli): export a deployment's whole ontology as installable packages in one read (GET /packages/export, os package export) #29755). The record is not wrong, only silent. One sentence or one Refs entry: wording only, Tier H, p3.docs/adr/**cards (pm-dispatch(execution-duties): docs-onlydocs/adr/**cards dispatch at CONTRACT_REVIEW_TIER + effortxhighby standing order — seats stop asking the maintainer per card (Warren 2026-11-03) #29741):CONTRACT_REVIEW_TIERandxhigh.Generated by Claude Code
objectstack-fleet commentedon Nov 3, 2026
domain:server#2 · os-warren · session_01JQwxbXKRzgnVvjzxaYxLUf
Claim: PM loop round 1 · card thread · 2026-11-03T06:15Z
Session:
session_01JQwxbXKRzgnVvjzxaYxLUf(the seat); the card thread issession_01JQwxbZL4zwPNbxQsb6VsoUAccount:
os-warrenBranch:
claude/project-thread-kr1zkmWorktree: the card thread's own container checkout
Domain:
domain:serverSeat:
domain:server#2File surface:
docs/adr/0146-studio-designs-setup-administers-one-editor-per-item-paired-customize-package.mdonly (D8 item 3 sentence or one Refs entry, plus a dated Refs entry); no changeset (skip-changeset)Container & model: card thread,
mode:thread,model: claude-fable-5-1(MANDATORY:dispatch-gates --tierondocs/adr/**, no one-line exit),effort: xhigh(#29741 standing order for docs/adr cards)Clause-②: no
Metadata-protocol: none
Responsibility:
ADR-0146 (this lane)|D8 names only the per-package exports, silent on GET /packages/export|readers of ADR-0146 D8 learning which export carries a paired override; reachable todayThread-read: 6596568396
Premise: holds (seat read on
origin/mainb0ef25f:assemblePackageExportBundleinpackages/runtime/src/domains/packages.tsexists; ADR-0146 D8 names no whole-deployment export)Serial constraints cleared: #29755 (#28914) merged; #29791 (#29601) clarified D8 items 2 and 3.
Order: project file pm-orders/server/seat2/order-29802.md.
Generated by Claude Code
objectstack-fleet commentedon Nov 3, 2026
domain:server#2 · os-warren · session_01JQwxbZL4zwPNbxQsb6VsoU
os-dev-report
{ "issue": 29802, "status": "done", "branch": "claude/project-thread-kr1zkm", "pr": "https://github.com/objectstack-ai/objectstack/pull/29830", "session": "session_01JQwxbZL4zwPNbxQsb6VsoU", "premise_still_valid": true, "summary": "One sentence added inside ADR-0146 D8 item 3, after the two per-package routes it names: the whole-deployment export GET /packages/export (#28914) composes those per-package exports unchanged (every installed package the deployment's own code does not register, each entry exactly what its own GET /packages/:id/export answers, in ADR-0141 D5's hydrate order, so a .custom pair comes after its base) and adds no reading of its own, with path#symbol anchors on assemblePackageExportBundle and PackageExportBundleSchema. Refs gains a dated entry naming #29802, #29755 and #28914. Item 3 was chosen over a Refs-only entry because the card's reach is a reader of D8 learning which export carries a paired override and item 3 is where the per-package routes are named; no Status-line amendment entry, following the file's #29791 convention (reserved for rulings that change a decision). Measured first on origin/main b0ef25f5: assemblePackageExportBundle (packages/runtime/src/domains/packages.ts, declaration line 3616) skips source=code rows, orders the rest with orderHydrationBatch over declaredDependencyIds and pushes assemblePackageManifest(deps, id, registry, context), the same call with the same arguments the per-package route serves at line 2599; PackageExportBundleSchema (packages/spec/src/api/package-lifecycle.zod.ts line 332) describes the same; ADR-0146 D3 has the pair declare its base in manifest.dependencies; ADR-0141 D5's Decided paragraph is the hydrate order. The premise holds. One commit, one file, +10/-2; draft PR #29830 via the relay (run 41590590258, body 7900 bytes read back identical), label skip-changeset, no reviewers, no assignees; Tier H, left draft for the seat's review and the maintainer's Approve.", "tests": "Docs-only: no test changes, no test run owed (no package touched), no ablation (a documentation edit is not ablated). Symbol-anchor proof by count comparison instead: node scripts/check-adr-symbol-anchors.mjs on the untouched origin/main checkout b0ef25f5 answers 3050 anchors, 735 symbol (708 declaration); at head 42951327 the gate answers 3052 anchors, 737 symbol (710 declaration), so both new path#symbol anchors resolve at their declaration sites.", "gates": "Local subset at head 42951327 (origin/main b0ef25f5): node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack derived 21 commands (13 by path, 0 by kind, 8 whole-tree); every one ran from the worktree with its exit code captured before any pipe, all 21 exit 0: check-adr-links 0, check-adr-links --self-test 0, check-closing-keyword-parity 0, check-closing-keyword-parity --self-test 0, check-comment-mask-corpus 0, ci/plan-test-core-shards --self-test 0, lint check:doc-formula-expressions 0, check:adr-anchors 0, check:adr-index 0, check:adr-symbol-anchors 0, check:ci-filter-parity 0, check:closed-ceremony-text 0, check:cross-package-test-inputs 0, check:doc-authoring 0, check:driver-memory-census 0, check:gitlink-declared 0, check:nul-bytes 0, check:pm-governed-merges 0, check:pm-prior-rulings 0, check:refd-timer-probe 0, check:watch-hint-literal 0. Prerequisite for check:doc-formula-expressions: pnpm exec turbo run build --filter=@objectstack/formula --filter=@objectstack/lint under the verify lock, os-verify-lock VERDICT command-exit 0, held 163 s. Reconciliation: dispatch-gates --ran ran-all.list --repo objectstack-ai/objectstack answered 21 derived, 21 run, 0 NOT-MEASURED, 0 UNRUN, exit 0. --tier: the mandated tier for docs/adr/** holds (recorded on the claim); changed lines 12 vs the 3000 threshold. pnpm lint (repo-wide eslint) is CI-owned and was not run locally; the diff has no lintable source. CI: every family runs on the PR's check-runs; not re-run locally, and none read at report time (status honest: in_progress).", "dogfood_battery": "n/a: no ! in the PR title and no (narrowing) arm", "mcp_calls": "0: no GitHub MCP tool called, read or write", "api_writes": "2: (1) the relay pr_create stroke, POST /repos/objectstack-ai/objectstack/dispatches (run 41590590258, success) which created PR #29830 and its labels leg (skip-changeset, confirmed by a REST read of the pull); (2) this os-dev-report comment via post-stamped.mjs, POST /repos/objectstack-ai/objectstack/issues/29802/comments. git push is not a REST write. REST reads with the session token only: GET issues/29802 (twice) and its comments (twice), GET pulls/29830 (once).", "open_questions": [], "security_findings": "none", "out_of_scope_findings": [], "deviations": [ "The platform's post-create step (MCP issue_write assignees + update_pull_request reviewers) was skipped: the order forbids GitHub MCP reads and writes and says not to request reviewers; the relay set no assignee and no reviewer.", "The harness attribution reminder names a model in the co-author trailer; the commit carries the model-free pair AGENTS.md requires (Claude-Session URL + Co-authored-by: Claude).", "No PR-activity subscription or CI wait: the dispatch contract (os-dev.md) overrides the platform's PR-subscription posture; the seat owns review and landing.", "The dated Refs entry names #29802, #29755 and #28914, not this PR's own number, which did not exist when the sentence was written; the seat's rework round can add it if wanted.", "Worktree /home/claude/objectstack-issue-29802 is removed after this report; rework re-creates it from origin/claude/project-thread-kr1zkm." ] }Generated by Claude Code
objectstack-fleet commentedon Nov 3, 2026
domain:server#2 · os-warren · session_01JQwxbXKRzgnVvjzxaYxLUf
Landing record · #29802 · 2026-11-03T12:30Z
docs/adr/**, Tier H) at 2026-11-03T12:30Z. Maintainer os-zhuang queued it at 2026-11-03T12:22Z, and it went through the merge queue. Merge commit4e0c5d321781c78e91e98f466620d23ff218c5ea; head65f1b7ce. This card closed byFixes.CONTRACT_REVIEW_TIER, effort xhigh (ADR standing order): PASS 6597286611, then delta PASS 6597553576 → seat ACCEPT 6597563044.pr_readyby the seat, with hotlong and os-zhuang requested.docs/adr/**), no package released.pm:dispatchedremoved in the same stroke as this record.Generated by Claude Code