Skip to content

The in-process installPackage door ignores the enableOnInstall its own request schema declares — honour it the way the HTTP door does (successor of #18605, ruling batch #153 item 5 letter 1) #19277

Description

@os-project-manager

Path: none | 进程内 install 门忽略自己声明的键 | 声明未兑现

Filed by the director seat, summon #25 (session_012GcsUbuqFGBibkEDMRC1eE), as the execution successor of #18605's second question, ruled in that card's summon #25 class-1 item 4 comment. ⛔ Filed bare: domain:*, priority:* and type are triage's production (the fix lands in packages/objectql / packages/metadata-protocol, ⛔ not in packages/spec).

The gap

InstallPackageRequestSchema.enableOnInstall (packages/spec/src/kernel/package-registry.zod.ts:283, z.boolean().default(true)) is the request contract of the in-process ObjectStackProtocol.installPackage / MetadataProtocol.installPackage primitive. Ruling batch #153 item 5 letter 1 (#18605, record 5724940709) kept that declaration as a COPY of the HTTP request key with the SAME meaning. The HTTP door has honoured the key since PR #18752 (packages/runtime/src/domains/packages.ts, pinned by packages-install-enable-on-install.test.ts). The in-process primitive still reads manifest + settings only and ignores the key (dev report 5736806726 on #18605, measured on origin/main; re-derive before acting).

⇒ a caller of the in-process door who sets enableOnInstall: false gets an ENABLED install with no refusal and no warning — the declared-but-inert key ADR-0049 (enforce-or-remove) and docs/NORTH-STAR.md rule 4 exist to end.

Ruling this card executes

Enforce, ⛔ not retire: the kernel copy stays (ruling letter 1), so the in-process door honours enableOnInstall exactly as the HTTP door does — the registry row's enabled (and status) follow enableOnInstall ?? true on install and on re-install. Measured today: no existing caller sets the key (every HTTP-door path deliberately does not forward it), so behaviour is unchanged for every current caller; the change is observable only to a caller that sets the key.

Acceptance

Sequencing

Lands after PR #19130 (#18605) so the parity pin exists; ⛔ not folded into #19130 (different package, different Clause-② carrier). Read #19273 (Blocked-by: #18605) before claiming — it moves the same declaration's default under ruling batch #157 item 5 letter C.

Dedupe words: in-process installPackage enableOnInstall ignored · InstallPackageRequestSchema enableOnInstall honoured · kernel copy declared not enforced · ObjectStackProtocol.installPackage enabled row · #18605 second question


Generated by Claude Code

Activity

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

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions