You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 4e00f4a
Browse filesBrowse the repository at this point in the historyBrowse files
chore(gates): rank every root module and reject zone-level value cycles (#3280)
R5 could not see through the unranked (root) zone: nine zones formed one value cycle through
it, and src/sdk/index.ts and src/ai-sdk/index.ts (rank 4) reached daemon-client (rank 5)
through src/agent-device-client.ts.
- scripts/layering/root-module-zones.ts declares the zone of every src/*.ts module, and
targetDagZone reads it. (root) ranks above the spine (8) and holds only bin.ts, cli.ts and
daemon.ts, so a ranked import of any undeclared root module is an R5 back-edge. New zones:
daemon-contracts (2), command-runtime (3), platform-runtime (4, now including its private
src/platform-runtime/ submodule) and platform-runtime-host (5: its facets read daemon
session artifacts, and daemon-server and platform-runtime reach it only through
loadHost's import()). core takes the two root modules it imports; daemon-client takes
agent-device-client.ts.
- With that declaration and the old ranks, the gate reports exactly the two known inversions
(sdk -> daemon-client, ai-sdk -> daemon-client). The published SDK entries must export a
client that reaches the daemon with no injected transport, so no code change removes that
dependency: sdk and ai-sdk move to rank 6 above daemon-client, cli to 7.
- R80 zone-value-dag projects static value imports onto zones and rejects any cycle, which
catches same-rank pairs R5 cannot order.
- Dynamic imports stay out of R5 and R80; the reason is recorded at R5 in check.ts.
R6 now measures seven type-only inversions the unranked root hid (commands -> daemon-client,
core -> platform-runtime, core -> platform-runtime-host, plugins -> sdk, and three
platform-runtime -> platform-runtime-host types of lazily loaded host modules), ratcheted
equally at the merge-base.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
0 commit comments