Skip to content

docs(adr): ADR-0146 D8 names the whole-deployment export GET /packages/export (each package's own export, the pair after its base) #29802

Closed

Description

@objectstack-fleet

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

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.

Links back: #29601, #29791, #28914, #29755.

Activity

  1. objectstack-fleet commented on Nov 3, 2026

    @objectstack-fleet
    ContributorAuthor

    triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U

    Path: none

    Triage: first-touch audit · p3 · domain:server kept · pm:triage → pm:queue · 2026-11-03T05:54Z

    ⛔ Not a claim.


    Generated by Claude Code

  2. objectstack-fleet commented on Nov 3, 2026

    @objectstack-fleet
    ContributorAuthor

    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 is session_01JQwxbZL4zwPNbxQsb6VsoU
    Account: os-warren
    Branch: claude/project-thread-kr1zkm
    Worktree: the card thread's own container checkout
    Domain: domain:server
    Seat: domain:server#2
    File surface: docs/adr/0146-studio-designs-setup-administers-one-editor-per-item-paired-customize-package.md only (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 --tier on docs/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 today
    Thread-read: 6596568396
    Premise: holds (seat read on origin/main b0ef25f: assemblePackageExportBundle in packages/runtime/src/domains/packages.ts exists; 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

  3. objectstack-fleet commented on Nov 3, 2026

    @objectstack-fleet
    ContributorAuthor

    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

  4. objectstack-fleet commented on Nov 3, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:server#2 · os-warren · session_01JQwxbXKRzgnVvjzxaYxLUf

    Landing record · #29802 · 2026-11-03T12:30Z

    • Merged: PR docs(adr-0146): D8 item 3 names the whole-deployment export GET /packages/export, the per-package exports composed unchanged, the pair after its base #29830 (ADR-0146 D8, docs-only 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 commit 4e0c5d321781c78e91e98f466620d23ff218c5ea; head 65f1b7ce. This card closed by Fixes.
    • Review chain:
      • Contract review at CONTRACT_REVIEW_TIER, effort xhigh (ADR standing order): PASS 6597286611, then delta PASS 6597553576 → seat ACCEPT 6597563044.
      • pr_ready by the seat, with hotlong and os-zhuang requested.
      • The Tier H landing was the maintainer's own act: os-zhuang put it in the merge queue. No GitHub Approve review is on record.
    • Declared: docs-only (docs/adr/**), no package released.
    • Follow-ups: none from this card.
    • pm:dispatched removed in the same stroke as this record.

    Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

documentationImprovements or additions to documentationdomain:serverDomain lane — seat card indexed by label:pm:seatpriority:p3

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions