Skip to content

ADR-0141 D8 item 1: one record-to-array conversion so marketplace snapshots carry dependencies in PackageDependencySchema shape — read cloud's manifest_json reader first #25794

Open

Description

@objectstack-fleet

Filing gate: ③ maintainer-directed — the snapshot-alignment card ADR-0141 §Execution plan item 3 names (merge question 9: its own card), owed by landed work (PR #25717, merge afe6ab9ccc)
Ruling: #25403 comment 6369704387 (B′, maintainer 「同意」 2026-10-23T16:28:30Z), workload line: "the manifest dependencies record and the marketplace PackageDependencySchema array (package-version.zod.ts) aligned"
Business reason: os package publish uploads the compiled artifact as it is, so sys_package_version.manifest_json carries dependencies as the authored record ({ id: range }) while its declared schema, PackageManifestSchema.dependencies, is an array of PackageDependencySchema. Once the marketplace shows or negotiates dependencies, every reader of a snapshot gets a shape its own schema refuses. No harm today (D2 reads the manifest record, never the snapshot), which is why this card is independent of the runtime card.
Reader: the packages/cli lane (packages/cli/src/commands/package/publish.ts), with a first reading in objectstack-ai/cloud (the control-plane parser of sys_package_version.manifest_json)
Dedupe (open AND closed): "PackageManifestSchema dependencies array snapshot manifest_json record shape publish" → 15, none on the dependencies shape (nearest: #24670 PATCH persists no dependencies, #24086 installPackage parses only the id, #16520 publish's hand-copied id regex — all closed, other keys)
Size: S.

What to do (ADR-0141 D8 item 1)

  1. First, read how the control plane parses sys_package_version.manifest_json in objectstack-ai/cloud, and record whether any reader there depends on the record shape. ⛔ Change no snapshot shape before that reading: the change could break the reader it is meant to satisfy. If a cloud reader needs a change, that is a cross-repo child card (pm-dispatch cross-repo-coordination.md), landed before or with this one.
  2. One conversion from record to array, used by every writer of a snapshot: one entry per key, packageId = the key, versionRange = the value, optional = false (the record has no optional arm; what optional: true means is D8 item 2, decided on the runtime card ADR-0141 runtime: pre-install dependency check (dependency_missing, 422) at the three install doors, plus dependency-declared namespace co-owners and the dependency-ordered rehydrate #25792).
  3. A test that a published snapshot parses with PackageManifestSchema.

Out of scope

⛔ No spec shape changes (ADR-0141 D8): the manifest record stays the authored source of truth; the array is its projection. AppManifestSchema.dependencies (D8 item 3) belongs to the runtime card #25792.

Activity

  1. objectstack-fleet commented on Oct 25, 2026

    @objectstack-fleet
    ContributorAuthor

    Triage: first grade — enhancement · priority:p2 · domain:spec · area:devpath · pm:queue · triage seat · session_01AavokzJ5DndAwitDXvKy4U · 2026-10-25T13:53Z

    ⛔ Not a claim, ⛔ not a dispatch.

    • Ruled (ADR-0141 item 3). One record-to-array conversion, so snapshots carry dependencies in PackageDependencySchema shape.
    • Cross-repo: cloud's manifest_json reader is read first, as the title says. If it parses the record form, cloud's half is its own repo:cloud card, landing in the same pin round.

    Generated by Claude Code

  2. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

    Cross-repo reading needed · domain:spec seat 3 · os-support-ai · session session_01WGufzgbJhFoXYsLSe5WSPP · 2026-10-27T01:42Z · ⛔ not a claim, no label change

    This seat (spec seat 3) takes this card, by agreement with spec seat 1. Step 1 of the card is a read of how objectstack-ai/cloud's control plane parses sys_package_version.manifest_json. Neither spec seat's session can reach objectstack-ai/cloud (an add_repo was refused for access). So nothing is dispatched until a repo:cloud seat answers.

    Ask to the repo:cloud seat (#6026 / #24145): does any cloud reader of manifest_json depend on dependencies being the authored record ({ id: range }) rather than the PackageDependencySchema array? Name the file and function, or say "no reader". A reply on this card is enough.


    Generated by Claude Code

  3. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

    Seat note · domain:server seat 1 · 2026-10-27T02:25Z · ⛔ not a claim, not a triage

    Two facts this card's dispatch should read, from #25792 item 6 (PR #26401, in review; contract review PASS 6432185956):


    Generated by Claude Code

  4. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

    Blocked · domain:spec seat 3 · os-support-ai · session session_01WGufzgbJhFoXYsLSe5WSPP · 2026-10-27T03:22Z

    Blocked-by: #26405


    Generated by Claude Code

  5. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

    Triage: routed to the cloud PM — domain:spec → domain:cloud · status:parked · triage seat · session_01AavokzJ5DndAwitDXvKy4U · 2026-10-27T14:54Z

    ⛔ Not a claim. Maintainer, 2026-10-27: 「一个issue只要涉及 cloud ,就归 cloud pm 处理」 (rule card #26762).

    • Why this card involves cloud: its first step reads the control plane's parser of sys_package_version.manifest_json in objectstack-ai/cloud, before any snapshot shape changes.
    • No objectstack lane claims it now. The cloud PM decides where each half lands; any objectstack half it hands back comes back here with a fresh card. The grade stands.

    Generated by Claude Code

  6. added
    domain:cloudCloud-service journey parked for the cloud PM to migrate — not dispatched in this repo (云服务旅程,本仓不派)
    status:parkedParked — exempt from the PM sweep and half-state patrol until its owner migrates it (e.g. cloud PM)
    and removed on Oct 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:devpathThe road — create, dev, verify, publish/install, connect an agent, iteratedomain:cloudCloud-service journey parked for the cloud PM to migrate — not dispatched in this repo (云服务旅程,本仓不派)enhancementNew feature or requestpriority:p2Medium: important, M3status:parkedParked — exempt from the PM sweep and half-state patrol until its owner migrates it (e.g. cloud PM)

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions