chore(gates): classify #2278 daemon-platform-runtime edges and ratchet handler session authority - #2354
chore(gates): classify #2278 daemon-platform-runtime edges and ratchet handler session authority#2354thymikee wants to merge 3 commits into
Conversation
Size Report
Startup median (7 runs, lower is better):
|
|
R75 hardcodes src/daemon/types.ts for SessionState, but #2346 moves that declaration to src/daemon/session-state.ts. After that merge the shape overlay silently stops measuring the imports it is meant to ratchet. Reuse the owning declaration discovery and add a planted-red test against the moved declaration path. |
…ratchet handler session authority (R75)
0ed7285 to
5529929
Compare
|
The SessionState move is handled now. One gap remains in R74: dynamic imports are recorded with an empty symbol set. The existing |
|
Addressed in 4a7c2b7. The layering scanner now captures named bindings from destructured dynamic imports: |
|
R74 still has a bypass at 4a7c2b7. Adding a rest binding alongside the approved name, such as { recoverLegacyAppLogMarkersAfterDaemonLock, ...operationHost }, leaves the recorded symbol set unchanged while exposing every other export. The scanner silently ignores RestElement and computed properties. Reject unclassified bindings instead of dropping them, and add a planted-red regression using the existing classified import. CI is green, but this leaves the no-regrowth guarantee incomplete. |
Summary
Structural no-regrowth checks for the #2278 daemon-platform coupling audit (companion PR carries the audit record and ADR 0022):
Category-3 implementation work is owned by the child issues (#2332, #2333, #2334; the selector seam by #2273/#2274). Part of #2278. 7 files.
Validation
Tested at 0ed7285: pnpm check:layering green (201 tests; R74 13 classified entries, R75 14/22 handler-owned files). Both rules observed red against planted violations before acceptance: an unclassified daemon→root platform-runtime import (R74) and a new handler-owned SessionState import (R75; staged, since the scan reads tracked files only). pnpm check:affected --run passes at 0ed7285. No device-facing changes.