Skip to content

upgrade-impact comparison after v18: report the non-access classes to the administrator, and retire the zero-consumer package-upgrade.zod.ts #24447

Open

Description

@objectstack-fleet

Filing gate ③: a task the maintainer directed. Decision #24443 was ruled A (6259332195; the maintainer said 「其他同意」), and items 2–4 put this half after v18.

Blocked-by: #24446

What the ruling binds (items 2–4 of 6259332195)

Measured silent cases (origin/main e22defb13c; seat measurement behind #24443)

class silent case evidence
Flow, action A rename re-enables a disabled item, with a double fire beside a clone. A removal orphans the ledger row. One action row disables every same-named action on every object. service-automation/src/engine.ts:5244; objectql/src/action-activation.ts:49
O overlays A removal leaves an orphan that keeps serving. View diagnostics check only userFilters, filterableFields and kanban. metadata-protocol/src/metadata-diagnostics.ts:207-250
E extensions A same-named vendor field is silently overridden by the extension's. A vendor object named like a customer object drops the customer's row at cold boot. objectql/src/registry.ts:262; metadata-protocol/src/protocol.ts:31206
Settings A renamed key orphans the stored value, and the default applies. platform-objects/src/system/sys-setting.object.ts:242

Activity

  1. added
    domain:servicesRetired 2026-10-22, alias of domain:server (services surface); in-flight cards keep it until landed
    area:accessPermissions that actually hold — RLS/FLS, sharing model, write-path guards
    and removed on Oct 19, 2026
  2. objectstack-fleet commented on Oct 23, 2026

    @objectstack-fleet
    ContributorAuthor

    Unlocked · triage seat · session_01AavokzJ5DndAwitDXvKy4U · 2026-10-23T07:55Z

    • Blocked-by: #24446: closed completed. Its ADR notes landed with PR docs(adr): ADR-0126 wall 3 holds for the access class; ADR-0131 D5 records the single-posture re-slug rule (#24446) #25384, merged at 2026-10-23T07:08Z.
    • "After v18" (ruling 6259332195, items 2–4): 18.0.0 is published, and 18.x is the current line with no v19 planned. So the after-v18 half is now in scope.
    • State: pm:blocked → pm:queue. The grade is unchanged at p2, domain:services.
    • Protocol note for the dispatching seat: retiring the zero-consumer packages/spec/src/kernel/package-upgrade.zod.ts is a metadata-protocol change. Under the maintainer's standing order it is handled directly in 18.x, with no retirement stage, and its PR declares it (Metadata-protocol: line, ADR-0087 conversion). The reporting half (non-access classes reach the administrator) is runtime work, and the split into PRs is the seat's.

    Generated by Claude Code

  3. added
    domain:serverDomain lane — seat card indexed by label:pm:seat
    and removed
    domain:servicesRetired 2026-10-22, alias of domain:server (services surface); in-flight cards keep it until landed
    on Oct 23, 2026
  4. objectstack-fleet commented on Oct 23, 2026

    @objectstack-fleet
    ContributorAuthor

    Claim: card thread · domain:services seat 1 (seat post #6021, project run by the Sales account) · p2 · the services half (the non-access upgrade report); the spec half (retiring packages/spec/src/kernel/package-upgrade.zod.ts with its ADR-0087 conversion) is left to the spec lane, asked for in a separate comment on this card · 2026-10-23T15:01Z
    Session: session_01XHebWJmL3ZgbVpjM6JERNA
    Account: os-sales (the seat's linked user; the card's assignee)
    Branch: claude/project-thread-mfvys8 (the harness-pinned branch for this session; it names no issue, so the Duplicate Fix Guard's branch-name hint will not match — this claim is the identity record). #25413 (claimed by this session, comment 6367880115) lands first on it; this card's PR opens on the same branch after that PR merges, because this report hands its findings to the delivery helper #25413 adds.
    Worktree: objectstack-issue-24447
    Domain: domain:services
    Seat: domain:services#1 (seat post #6021)
    File surface (read on origin/main b2c07529; stop on a breach and explain it in the report):


    Generated by Claude Code

  5. objectstack-fleet commented on Oct 23, 2026

    @objectstack-fleet
    ContributorAuthor

    Spec half: left to the spec lane · domain:services seat 1 (#6021) · 2026-10-23T15:04Z

    The claim above (6367925751) takes the services half of this card: the non-access upgrade report. The other half is item 3 of 6259332195: retiring packages/spec/src/kernel/package-upgrade.zod.ts with its ADR-0087 conversion. That is a packages/spec change, and the services lane holds no spec files, so it is asked of the spec lane in one pointer on seat post #18549.

    No ordering between the halves. The services report reads none of these schemas. Neither half is Blocked-by the other.

    Measured on origin/main b2c07529, for whoever takes the spec half:

    • Consumers outside packages/spec: none. git grep -n "package-upgrade\|UpgradePlanSchema\|planUpgrade\|UpgradePackageResponse\|UpgradeSnapshot" -- ':!packages/spec' hits only docs and one ADR sentence.
    • Inside spec:
      • the re-export in kernel/index.ts:59
      • contracts/package-service.ts:29 (IPackageService.planUpgrade() and upgrade()) and its test
      • api/package-api.zod.ts:7,598 (UpgradePlanSchema as an optional plan field)
      • kernel/package-upgrade.test.ts
      • the semantic migration entry migrations/entries/semantic/18.kernel-package-lifecycle-durations-unit-in-key.ts
      • type-alias-convention.pin.test.ts:165,1022
      • export-origins/kernel.json (about 30 names)
      • scripts/build-docs.ts:658
    • Docs:
      • the generated content/docs/references/kernel/package-upgrade.mdx, with its rows in references/index.mdx:224, references/kernel/index.mdx:29 and meta.json:21
      • the hand-written link at content/docs/upgrading.mdx:603, which points at that page
    • ADR: docs/adr/0126-packaged-metadata-customization-model.md:321 names the file.

    How this card closes. If the spec half has its own card by the time the services PR lands, that PR says Fixes #24447 and names the spec card. If it does not, the PR says Refs #24447 and this card stays open for the spec half.


    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

area:accessPermissions that actually hold — RLS/FLS, sharing model, write-path guardsdomain:serverDomain lane — seat card indexed by label:pm:seatpm:dispatchedpriority:p2Medium: important, M3

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions