Yichen Jiang
5c7dd6f8eb
feat(agent-presets): own the writable preset root instead of awaiting an app
...
`Config.roots` defaulted to `[]`, so a deployment that did not patch both roots
in got a roster with none — `dsh run` once booted exactly that and failed
resolving `standard`. The user root never needed an app: `<dshHome>/.agent-presets`
is the same place in every deployment, resolvable here the way
`dsh-skill-local` resolves `<dshHome>/skills`.
The roster now derives that root itself unless `includeUserRoot` is false, and
`apps/cli` supplies only the SHIPPED root, whose path an installed app alone
can resolve. The derived root is appended after every configured root, so a
shipped id still shadows a home directory claiming it and `writableRoot()`
still prefers an explicitly configured `user` root; the set is resolved once at
construction, because a root set that changed between a `list()` and the
`copy()` acting on its answer would author into a directory the caller never
saw.
Every test that pins an exact roster now says `includeUserRoot: false` — the
machine's real harness home must not decide what a golden or an assertion
counts.
2026-08-11 21:09:35 +08:00
..
2026-08-09 11:33:14 +08:00
2026-07-25 16:43:07 +08:00
2026-08-09 11:33:14 +08:00
2026-08-09 11:02:16 +08:00
2026-08-09 01:21:12 +08:00
2026-08-09 11:02:16 +08:00
2026-08-11 15:23:05 +08:00
2026-08-11 15:23:05 +08:00
2026-08-10 13:07:46 +08:00
2026-08-04 17:36:14 +08:00
2026-07-25 15:11:17 +08:00
2026-08-04 17:36:14 +08:00
2026-08-09 03:20:17 +08:00
2026-08-08 15:28:35 +08:00
2026-08-09 03:20:17 +08:00
2026-08-09 11:33:14 +08:00
2026-07-31 19:21:16 +08:00
2026-08-09 11:33:14 +08:00
2026-08-09 17:26:57 +08:00
2026-08-09 17:26:57 +08:00
2026-08-05 10:57:53 +08:00
2026-08-11 15:23:05 +08:00
2026-08-11 15:23:05 +08:00
2026-08-04 17:36:14 +08:00
2026-08-04 17:36:14 +08:00
2026-07-24 12:21:10 +08:00
2026-08-04 17:36:14 +08:00
2026-08-09 11:33:14 +08:00
2026-07-30 21:14:03 +08:00
2026-08-09 11:33:14 +08:00
2026-08-09 11:33:14 +08:00
2026-08-08 02:15:44 +08:00
2026-08-09 11:33:14 +08:00
2026-08-09 15:35:02 +08:00
2026-08-09 15:35:02 +08:00
2026-08-09 15:35:02 +08:00
2026-08-09 21:10:59 +08:00
2026-08-09 21:10:59 +08:00
2026-08-09 21:10:59 +08:00
2026-08-09 11:33:14 +08:00
2026-08-06 20:34:57 +08:00
2026-08-09 11:33:14 +08:00
2026-08-11 18:01:25 +08:00
2026-08-11 18:01:25 +08:00
2026-08-11 18:01:25 +08:00
2026-07-30 14:34:08 +08:00
2026-07-30 14:34:08 +08:00
2026-07-30 14:34:08 +08:00
2026-08-09 15:35:02 +08:00
2026-08-09 15:35:02 +08:00
2026-08-09 15:35:02 +08:00
2026-08-09 11:02:16 +08:00
2026-08-08 01:10:57 +08:00
2026-08-09 11:02:16 +08:00
2026-08-09 16:39:34 +08:00
2026-08-09 15:35:02 +08:00
2026-08-09 11:02:16 +08:00
2026-08-09 11:33:14 +08:00
2026-08-07 22:52:19 +08:00
2026-08-09 11:33:14 +08:00
2026-08-09 21:10:59 +08:00
2026-08-09 21:10:59 +08:00
2026-08-09 21:10:59 +08:00
2026-08-08 11:49:42 -07:00
2026-08-08 11:49:42 -07:00
2026-08-08 11:49:42 -07:00
2026-08-09 11:33:14 +08:00
2026-08-02 12:45:36 +08:00
2026-08-09 11:33:14 +08:00
2026-08-09 11:02:16 +08:00
2026-07-31 15:06:27 +08:00
2026-08-09 11:02:16 +08:00
2026-08-09 11:02:16 +08:00
2026-07-30 17:59:37 +08:00
2026-08-09 11:02:16 +08:00
2026-08-09 11:02:16 +08:00
2026-07-30 15:06:28 +08:00
2026-08-09 11:02:16 +08:00
2026-08-09 21:10:59 +08:00
2026-08-09 21:10:59 +08:00
2026-08-09 21:10:59 +08:00
2026-08-09 13:46:14 +08:00
2026-08-04 15:12:11 +08:00
2026-08-09 13:46:14 +08:00
2026-08-09 11:33:14 +08:00
2026-07-31 01:36:20 +08:00
2026-08-09 11:33:14 +08:00
2026-08-09 21:10:59 +08:00
2026-08-09 21:10:59 +08:00
2026-08-09 21:10:59 +08:00
2026-08-09 11:33:14 +08:00
2026-07-31 05:41:45 -07:00
2026-08-09 11:33:14 +08:00
2026-08-09 17:26:57 +08:00
2026-08-09 17:26:57 +08:00
2026-08-09 17:26:57 +08:00
2026-08-07 14:48:26 +08:00
2026-08-07 14:48:26 +08:00
2026-08-07 14:48:26 +08:00
2026-08-09 11:33:14 +08:00
2026-08-02 12:51:10 +08:00
2026-08-09 11:33:14 +08:00
2026-08-09 11:33:14 +08:00
2026-08-08 15:30:08 +08:00
2026-08-09 11:33:14 +08:00
2026-08-09 11:33:14 +08:00
2026-08-02 05:58:45 -07:00
2026-08-09 11:33:14 +08:00
2026-08-09 11:02:16 +08:00
2026-08-06 17:46:18 +08:00
2026-08-09 11:02:16 +08:00
2026-08-09 11:33:14 +08:00
2026-08-02 13:26:08 +08:00
2026-08-09 11:33:14 +08:00
2026-08-10 23:45:04 +08:00
2026-08-10 23:45:04 +08:00
2026-08-10 23:45:04 +08:00
2026-08-09 13:46:14 +08:00
2026-08-09 01:25:24 +08:00
2026-08-09 13:46:14 +08:00
2026-08-09 14:33:57 +08:00
2026-08-04 16:21:55 +08:00
2026-08-09 14:33:57 +08:00
2026-08-09 11:02:16 +08:00
2026-08-07 23:45:28 +08:00
2026-08-09 11:02:16 +08:00
2026-08-09 16:39:34 +08:00
2026-08-09 15:35:02 +08:00
2026-08-09 16:39:34 +08:00
2026-08-09 16:39:34 +08:00
2026-08-09 15:35:02 +08:00
2026-08-09 16:39:34 +08:00
2026-08-09 11:02:16 +08:00
2026-08-07 22:52:19 +08:00
2026-08-09 11:02:16 +08:00
2026-08-09 11:02:16 +08:00
2026-08-05 12:21:09 +08:00
2026-08-09 11:02:16 +08:00
2026-08-09 21:10:59 +08:00
2026-08-09 21:10:59 +08:00
2026-08-09 21:10:59 +08:00
2026-08-07 23:25:42 +08:00
2026-08-07 23:25:42 +08:00
2026-08-07 23:25:42 +08:00
2026-08-11 12:38:57 +08:00
2026-08-11 12:38:57 +08:00
2026-08-11 12:38:57 +08:00
2026-08-11 19:25:41 +08:00
2026-08-11 19:25:41 +08:00
2026-08-11 19:25:41 +08:00
2026-08-09 11:33:14 +08:00
2026-08-07 22:04:04 +08:00
2026-08-09 11:33:14 +08:00
2026-08-09 15:35:02 +08:00
2026-08-09 15:35:02 +08:00
2026-08-09 11:33:14 +08:00
2026-08-09 11:33:14 +08:00
2026-08-06 19:36:15 +08:00
2026-08-09 11:33:14 +08:00
2026-08-09 21:11:00 +08:00
2026-08-09 21:10:59 +08:00
2026-08-09 21:11:00 +08:00
2026-08-11 17:43:09 +08:00
2026-08-11 17:43:09 +08:00
2026-08-11 17:43:09 +08:00
2026-08-09 17:44:34 +08:00
2026-08-09 17:44:34 +08:00
2026-08-09 17:44:34 +08:00
2026-08-10 20:34:45 +08:00
2026-08-10 20:34:45 +08:00
2026-08-10 20:34:45 +08:00
2026-08-10 19:30:46 +08:00
2026-08-10 19:30:46 +08:00
2026-08-10 19:30:46 +08:00
2026-08-11 15:35:32 +08:00
2026-08-11 15:35:32 +08:00
2026-08-11 15:35:32 +08:00
2026-08-10 14:35:13 +08:00
2026-08-10 14:35:13 +08:00
2026-08-10 14:35:13 +08:00
2026-08-11 19:25:42 +08:00
2026-08-11 19:25:42 +08:00
2026-08-11 19:25:42 +08:00
2026-08-10 22:19:14 +08:00
2026-08-10 22:19:14 +08:00
2026-08-10 22:19:14 +08:00
2026-08-11 16:48:41 +08:00
2026-08-11 16:48:41 +08:00
2026-08-11 16:48:41 +08:00
2026-08-11 21:09:35 +08:00
2026-08-11 21:09:35 +08:00
2026-08-11 21:09:35 +08:00
2026-08-11 14:26:18 +08:00
2026-08-11 14:26:18 +08:00
2026-08-11 14:26:18 +08:00