The roots are an assembly fact (the shipped set beside this app's config, the user's own under $DSH_HOME) but only `dsh web` patched them in, so the merged `dsh run` booted the roster with no roots and failed resolving `standard`. The shared profile boot now owns the patch for every launcher, and master's interrupt_agent tool joins the standard composition's exact catalog. The roster helpers the wire layer added (standingKeyFor, serviceForAgent's chain guards, the direct mountPreset boundary) gain the unit coverage the per-file gate requires. |
||
|---|---|---|
| .. | ||
| args.ts | ||
| bin.ts | ||
| dump-config.ts | ||
| plugin.ts | ||
| process-shutdown.ts | ||
| profile-boot.ts | ||
| web.ts | ||