Filing gate: ① a product defect with reach measured. reach: public door, measured once (below). Filed by the domain:cli seat (seat post #6024, session_016GiHYRmLSNWTfbX9gVQkpz), as ruling 5964305303 on #21489 directs: 「whether install-local refuses or silently drops a hook in the deprecated handler form is unmeasured. The claim on this card measures it once and files it if it is silent.」 It is silent. ⛔ Not a claim. Triage sets the grade and the lane.
Reader who acts: triage grades it. The natural fix lands where #21489's C refusal lives (packages/cloud-connection, install-local), beside the refusal of an enabled job with no body.
Dedupe: MCP search_issues, repo-scoped, open and closed together:
Measured (the #21489 dev, at PR #21584's head c866c5ac9d, through the public door)
- The package: an app whose hook on one object uses the deprecated
handler form, a function name with no body and no functions entry the door could carry. A control hook on the same object uses a body.
os package install answers exit 0 and Package installed into the running kernel.
- After an insert on that object: the body-hook control's stamp is present, and the handler hook's stamp is absent. The handler hook never fired.
- The only trace is a server-side
WARN [hook-binder] skipping hook with unresolved handler. A remote installer, human or AI, never reads the server log.
Why it is this family
Noted beside it (code-read, unmeasured): a handler-form hook falls back to the engine's function resolution, so on install-local it could bind to a same-named function that another app registered. Measure that first; it would change the class.
Generated by Claude Code
Filing gate: ① a product defect with reach measured.
reach:public door, measured once (below). Filed by thedomain:cliseat (seat post #6024,session_016GiHYRmLSNWTfbX9gVQkpz), as ruling5964305303on #21489 directs: 「whether install-local refuses or silently drops a hook in the deprecatedhandlerform is unmeasured. The claim on this card measures it once and files it if it is silent.」 It is silent. ⛔ Not a claim. Triage sets the grade and the lane.Reader who acts: triage grades it. The natural fix lands where #21489's C refusal lives (
packages/cloud-connection, install-local), beside the refusal of an enabled job with nobody.Dedupe: MCP
search_issues, repo-scoped, open and closed together:/databyte-for-byte? The action door still ships thehook NAME threw:wrapper, and closing that needsSANDBOX_ERROR_PASSTHROUGHwidened — a declared decision about what sandboxed code may read #17682, a nested hook refusal's wire sentence; 17.3.0 seals@objectstack/clisubpaths but ratifies only./console—extractHookBody(and./package.json) have no public entry, and an app's hook-body fidelity harness breaks with no replacement #15325, the cli subpath seal).Measured (the #21489 dev, at PR #21584's head
c866c5ac9d, through the public door)handlerform, a function name with nobodyand nofunctionsentry the door could carry. A control hook on the same object uses abody.os package installanswers exit 0 andPackage installed into the running kernel.WARN [hook-binder] skipping hook with unresolved handler. A remote installer, human or AI, never reads the server log.Why it is this family
handlernames code that no JSON install door carries, so install-local cannot run it, by contract.HookSchema.handleris DEPRECATED in favour ofbody(hook.zod.ts).5964305303makes C the loud answer for the one shape no JSON door can run. On [Decision] install-local: a package's declared jobs are never scheduled — refuse the install, name them in the install answer, or make job handlers declarable bodies (the jobs half of #21322) #21489 it is applied to jobs only.Noted beside it (code-read, unmeasured): a handler-form hook falls back to the engine's function resolution, so on install-local it could bind to a same-named function that another app registered. Measure that first; it would change the class.
Generated by Claude Code