Yichen Jiang
715baae6c1
fix(agent-presets): let the invariant follow the roster it actually scans
...
The service moved its "is a roster composed" reads to the derived root set;
the invariant companion still read `config.roots`. In the shape this change
exists for — an app configures nothing and the roster is the harness home
alone — that made the advisory warning fire while the fail-loud invariant
stayed silent, so an agent could address a model against an empty global
layer unchecked.
Both now read one source: `roots` exposes the resolved set, and the invariant
asks it. That decides the behavior deliberately rather than by omission — a
composition that mounts the roster now fails an unjoined agent whether its
roots were configured or derived, and `includeUserRoot: false` with no
configured roots is how a deployment keeps its agents on the host plane. Both
shapes are pinned; the derived-only case fails against the old predicate.
Three pieces of prose went stale with the first commit: the web-app bundle
comment still called the writable root an assembly fact patched in by
AppCLIEntry (removed in the profile-plugin-bundles refactor — `composeProfile`
owns it now, and only for the shipped root), and the shipped skill and its
Agent Note still called both roots "configuration". The README gains the
resolved-roster reader and the discoverable-but-undeletable preset a second
writable root produces.
2026-08-11 21:13:41 +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:13:41 +08:00
2026-08-11 21:13:41 +08:00
2026-08-11 21:13:41 +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