creatixchu
ebe6ca20ad
fix(web): address review findings on producer-declared context forms
...
- `catalogHistory` validated its durable read. `agent.session.events` is a
JSONL/SQLite seed on resume or fork, and seed validation guarantees only a
source object with a non-empty `kind`; a `skill-catalog` record with missing
or wrongly shaped `entries` threw inside the step listener, failing every
later turn of that session. It is now skipped as an unrecognizable record,
the posture the replaced content digest had, with a regression test over six
malformed shapes.
- The headless keyless smoke still filtered catalogs by the old plugin source,
so the `built-bin-smoke` gate would not have found the catalog message.
- Entries record the published description unescaped. The pseudo-XML escaping
belongs to the `<available_skills>` frame and is applied when rendering it,
so a description containing `<` no longer reaches the card as `<`.
`escapeText` is injective, so republish semantics and the model-facing text
are unchanged.
- Adjacent text blocks join with no separator, matching how provider adapters
flatten them; the body no longer shows a line break the model never saw.
- Provenance fields are bounded like the text: an unknown producer may record
an arbitrarily large value.
- Both readers are all-or-nothing, and the row's form marker reports what
rendered rather than what was declared, so a partly unreadable record cannot
present a confident but incomplete account.
- The catalog body consumes `update` as a replacement notice; the digest
canonicalizes per entry as JSON, since every separator character is itself
legal in a description.
- `core.md` documents the form axis with a `ContextForm` type-equiv block, and
both projections assert the wiring they duplicate.
2026-08-05 14:55:21 +08:00
..
2026-08-04 18:42:13 +08:00
2026-07-24 23:43:10 +08:00
2026-08-04 18:42:13 +08:00
2026-08-04 17:36:14 +08:00
2026-07-27 14:01:15 +08:00
2026-08-04 17:36:14 +08:00
2026-08-04 17:36:14 +08:00
2026-07-23 19:33:30 +08:00
2026-08-04 17:36:14 +08:00
2026-08-04 17:36:14 +08:00
2026-07-30 17:40:25 +08:00
2026-08-04 17:36:14 +08:00
2026-08-02 12:51:09 +08:00
2026-08-02 12:51:09 +08:00
2026-08-02 12:51:09 +08:00
2026-08-04 18:42:13 +08:00
2026-07-28 10:26:15 -07:00
2026-08-04 18:42:13 +08:00
2026-08-04 17:36:14 +08:00
2026-07-28 05:22:47 -07:00
2026-08-04 17:36:14 +08:00
2026-08-04 17:36:14 +08:00
2026-07-28 17:58:09 +08:00
2026-08-04 17:36:14 +08:00
2026-08-04 17:36:14 +08:00
2026-07-29 23:15:15 +08:00
2026-08-04 17:36:14 +08:00
2026-08-04 17:36:14 +08:00
2026-07-29 23:15:15 +08:00
2026-08-04 17:36:14 +08:00
2026-08-04 17:36:14 +08:00
2026-07-27 17:38:42 +08:00
2026-08-04 17:36:14 +08:00
2026-08-04 17:36:14 +08:00
2026-07-30 21:28:13 +08:00
2026-08-04 17:36:14 +08:00
2026-08-04 17:36:14 +08:00
2026-07-24 23:43:10 +08:00
2026-08-04 17:36:14 +08:00
2026-08-04 13:20:28 +08:00
2026-08-04 13:20:28 +08:00
2026-08-04 13:20:28 +08:00
2026-08-04 17:36:14 +08:00
2026-07-31 13:49:41 +08:00
2026-08-04 17:36:14 +08:00
2026-08-04 17:36:14 +08:00
2026-07-22 23:07:14 +08:00
2026-08-04 17:36:14 +08:00
2026-08-05 13:17:38 +08:00
2026-08-04 17:45:12 +08:00
2026-08-05 13:17:38 +08:00
2026-08-04 20:54:42 +08:00
2026-07-28 10:26:15 -07:00
2026-08-04 20:54:42 +08:00
2026-08-02 12:51:09 +08:00
2026-08-02 12:51:09 +08:00
2026-08-02 12:51:09 +08:00
2026-08-04 17:36:14 +08:00
2026-07-29 21:15:42 +08:00
2026-08-04 17:36:14 +08:00
2026-08-04 20:54:42 +08:00
2026-07-27 04:14:51 +08:00
2026-08-04 20:54:42 +08:00
2026-08-04 17:36:14 +08:00
2026-07-29 22:10:26 +08:00
2026-08-04 17:36:14 +08:00
2026-08-04 17:36:14 +08:00
2026-07-26 23:06:00 +08:00
2026-08-04 17:36:14 +08:00
2026-08-04 17:36:14 +08:00
2026-07-22 23:07:14 +08:00
2026-08-04 17:36:14 +08:00
2026-08-04 17:36:14 +08:00
2026-07-26 02:33:29 +08:00
2026-08-04 17:36:14 +08:00
2026-08-04 17:36:14 +08:00
2026-07-22 21:37:30 +08:00
2026-08-04 17:36:14 +08:00
2026-08-04 17:36:14 +08:00
2026-07-25 16:43:07 +08:00
2026-08-04 17:36:14 +08:00
2026-08-04 18:42:13 +08:00
2026-07-24 01:40:25 +08:00
2026-08-04 18:42:13 +08:00
2026-08-04 17:36:14 +08:00
2026-07-28 10:26:15 -07:00
2026-08-04 17:36:14 +08:00
2026-08-05 10:57:53 +08:00
2026-07-24 01:40:25 +08:00
2026-08-05 10:57:53 +08:00
2026-08-05 10:57:53 +08:00
2026-07-24 01:40:25 +08:00
2026-08-05 10:57:53 +08:00
2026-08-05 10:57:53 +08:00
2026-08-02 05:58:45 -07:00
2026-08-05 10:57:53 +08:00
2026-08-05 10:57:53 +08:00
2026-07-20 20:35:15 +08:00
2026-08-05 10:57:53 +08:00
2026-08-04 18:42:13 +08:00
2026-07-24 22:12:23 +08:00
2026-08-04 18:42:13 +08:00
2026-08-05 10:57:53 +08:00
2026-07-26 14:05:33 +08:00
2026-08-05 10:57:53 +08:00
2026-08-04 18:42:13 +08:00
2026-07-27 21:20:06 +08:00
2026-08-04 18:42:13 +08:00
2026-08-02 01:29:04 +08:00
2026-08-02 01:29:04 +08:00
2026-08-02 01:29:04 +08:00
2026-08-02 12:51:09 +08:00
2026-08-02 12:51:09 +08:00
2026-08-02 12:51:09 +08:00
2026-08-04 17:36:14 +08:00
2026-07-28 13:58:06 +08:00
2026-08-04 17:36:14 +08:00
2026-08-04 17:36:14 +08:00
2026-07-22 14:29:52 +08:00
2026-08-04 17:36:14 +08:00
2026-08-04 17:36:14 +08:00
2026-07-22 14:29:52 +08:00
2026-08-04 17:36:14 +08:00
2026-08-04 17:36:14 +08:00
2026-07-22 14:29:52 +08:00
2026-08-04 17:36:14 +08:00
2026-08-04 17:36:14 +08:00
2026-07-29 20:10:42 +08:00
2026-08-04 17:36:14 +08:00
2026-08-02 12:45:36 +08:00
2026-08-02 12:45:36 +08:00
2026-08-02 12:45:36 +08:00
2026-08-02 12:51:09 +08:00
2026-08-02 12:51:09 +08:00
2026-08-02 12:51:09 +08:00
2026-08-04 17:36:14 +08:00
2026-07-22 20:35:38 +08:00
2026-08-04 17:36:14 +08:00
2026-08-04 17:36:14 +08:00
2026-07-27 21:30:28 +08:00
2026-08-04 17:36:14 +08:00
2026-07-30 20:26:33 +08:00
2026-07-30 20:26:33 +08:00
2026-07-30 20:26:33 +08:00
2026-08-04 20:28:23 +08:00
2026-08-04 20:28:23 +08:00
2026-08-04 20:28:23 +08:00
2026-08-04 17:36:14 +08:00
2026-07-28 17:58:09 +08:00
2026-08-04 17:36:14 +08:00
2026-08-02 03:56:25 +08:00
2026-08-02 03:56:25 +08:00
2026-08-02 03:56:25 +08:00
2026-08-04 17:36:14 +08:00
2026-07-26 01:16:41 +08:00
2026-08-04 17:36:14 +08:00
2026-08-04 17:36:14 +08:00
2026-07-30 10:11:38 +08:00
2026-08-04 17:36:14 +08:00
2026-07-31 18:37:34 +08:00
2026-07-31 18:37:34 +08:00
2026-07-31 18:37:34 +08:00
2026-08-04 20:54:42 +08:00
2026-07-29 00:39:56 +08:00
2026-08-04 20:54:42 +08:00
2026-07-31 18:37:34 +08:00
2026-07-31 18:37:34 +08:00
2026-07-31 18:37:34 +08:00
2026-08-04 17:36:14 +08:00
2026-07-26 22:53:47 +08:00
2026-08-04 17:36:14 +08:00
2026-08-04 17:36:14 +08:00
2026-07-26 02:43:34 +08:00
2026-08-04 17:36:14 +08:00
2026-08-04 17:36:14 +08:00
2026-07-26 04:02:38 +08:00
2026-08-04 17:36:14 +08:00
2026-08-04 17:36:14 +08:00
2026-07-26 15:26:52 +08:00
2026-08-04 17:36:14 +08:00
2026-08-05 00:31:43 +08:00
2026-08-05 00:31:43 +08:00
2026-08-05 00:31:43 +08:00
2026-07-29 22:27:49 +08:00
2026-07-29 22:27:49 +08:00
2026-07-29 22:27:49 +08:00
2026-08-04 17:36:14 +08:00
2026-07-31 18:25:03 +08:00
2026-08-04 17:36:14 +08:00
2026-08-03 14:02:54 +08:00
2026-08-03 14:02:54 +08:00
2026-08-03 14:02:54 +08:00
2026-08-04 18:42:13 +08:00
2026-07-28 01:41:32 +08:00
2026-08-04 18:42:13 +08:00
2026-08-02 16:25:02 +08:00
2026-08-02 16:25:02 +08:00
2026-08-02 16:25:02 +08:00
2026-07-30 09:40:38 +08:00
2026-07-30 09:40:38 +08:00
2026-07-30 09:40:38 +08:00
2026-08-03 13:31:19 +08:00
2026-08-03 13:31:19 +08:00
2026-08-03 13:31:19 +08:00
2026-08-04 17:36:14 +08:00
2026-07-31 18:37:34 +08:00
2026-08-04 17:36:14 +08:00
2026-08-02 12:51:10 +08:00
2026-08-02 12:51:10 +08:00
2026-08-02 12:51:10 +08:00
2026-07-31 16:49:55 +08:00
2026-07-31 16:49:55 +08:00
2026-07-31 16:49:55 +08:00
2026-08-04 17:36:14 +08:00
2026-07-30 21:04:00 +08:00
2026-08-04 17:36:14 +08:00
2026-08-04 13:20:28 +08:00
2026-08-04 13:20:28 +08:00
2026-08-04 13:20:28 +08:00
2026-08-04 17:36:14 +08:00
2026-07-28 19:43:56 +08:00
2026-08-04 17:36:14 +08:00
2026-08-04 17:36:14 +08:00
2026-07-28 14:24:41 +08:00
2026-08-04 17:36:14 +08:00
2026-08-04 15:25:30 +08:00
2026-08-04 15:25:30 +08:00
2026-08-04 15:25:30 +08:00
2026-08-02 17:53:07 +08:00
2026-08-02 17:53:07 +08:00
2026-08-02 17:53:07 +08:00
2026-08-04 17:36:14 +08:00
2026-07-29 14:12:01 +08:00
2026-08-04 17:36:14 +08:00
2026-08-04 20:54:42 +08:00
2026-07-29 21:09:02 +08:00
2026-08-04 20:54:42 +08:00
2026-08-04 20:54:42 +08:00
2026-07-31 14:28:52 +08:00
2026-08-04 20:54:42 +08:00
2026-08-04 17:36:14 +08:00
2026-07-31 01:27:56 +08:00
2026-08-04 17:36:14 +08:00
2026-08-02 01:29:04 +08:00
2026-08-02 01:29:04 +08:00
2026-08-02 01:29:04 +08:00
2026-08-02 20:09:05 +08:00
2026-08-02 20:09:05 +08:00
2026-08-02 20:09:05 +08:00
2026-07-31 13:49:41 +08:00
2026-07-31 13:49:41 +08:00
2026-07-31 13:49:41 +08:00
2026-07-31 10:29:20 +08:00
2026-07-31 10:29:20 +08:00
2026-07-31 10:29:20 +08:00
2026-07-31 16:20:54 +08:00
2026-07-31 16:20:54 +08:00
2026-07-31 16:20:54 +08:00
2026-08-04 17:36:14 +08:00
2026-07-30 19:38:18 +08:00
2026-08-04 17:36:14 +08:00
2026-07-30 22:00:34 +08:00
2026-07-30 22:00:34 +08:00
2026-07-30 22:00:34 +08:00
2026-08-04 15:25:30 +08:00
2026-08-04 15:25:30 +08:00
2026-08-04 15:25:30 +08:00
2026-08-03 18:35:26 +08:00
2026-08-03 18:35:26 +08:00
2026-08-03 18:35:26 +08:00
2026-07-30 17:26:44 +08:00
2026-07-30 17:26:44 +08:00
2026-07-30 17:26:44 +08:00
2026-07-30 16:20:34 +08:00
2026-07-30 16:20:34 +08:00
2026-07-30 16:20:34 +08:00
2026-07-31 15:27:24 +08:00
2026-07-31 15:27:24 +08:00
2026-07-31 15:27:24 +08:00
2026-08-02 17:53:07 +08:00
2026-08-02 17:53:07 +08:00
2026-08-02 17:53:07 +08:00
2026-08-04 18:42:13 +08:00
2026-07-30 21:28:38 +08:00
2026-08-04 18:42:13 +08:00
2026-08-04 15:25:30 +08:00
2026-08-04 15:25:30 +08:00
2026-08-04 15:25:30 +08:00
2026-07-30 20:26:33 +08:00
2026-07-30 20:26:33 +08:00
2026-07-30 20:26:33 +08:00
2026-08-03 16:35:37 +08:00
2026-08-03 16:35:37 +08:00
2026-08-03 16:35:37 +08:00
2026-08-04 15:25:30 +08:00
2026-08-04 15:25:30 +08:00
2026-08-04 15:25:30 +08:00
2026-08-04 17:36:14 +08:00
2026-07-30 22:49:41 +08:00
2026-08-04 17:36:14 +08:00
2026-08-04 14:23:34 +08:00
2026-08-04 14:23:34 +08:00
2026-08-04 14:23:34 +08:00
2026-07-31 15:49:59 +08:00
2026-07-31 15:49:59 +08:00
2026-07-31 15:49:59 +08:00
2026-08-04 13:20:28 +08:00
2026-08-04 13:20:28 +08:00
2026-08-04 13:20:28 +08:00
2026-07-31 13:24:30 +08:00
2026-07-31 13:24:30 +08:00
2026-07-31 13:24:30 +08:00
2026-08-04 17:36:14 +08:00
2026-07-31 16:13:12 +08:00
2026-08-04 17:36:14 +08:00
2026-07-31 20:39:53 +08:00
2026-07-31 20:39:53 +08:00
2026-07-31 20:39:53 +08:00
2026-07-31 14:08:13 +08:00
2026-07-31 14:08:13 +08:00
2026-07-31 14:08:13 +08:00
2026-07-31 14:28:03 +08:00
2026-07-31 14:28:03 +08:00
2026-07-31 14:28:03 +08:00
2026-08-04 17:36:14 +08:00
2026-07-31 02:34:52 -07:00
2026-08-04 17:36:14 +08:00
2026-08-04 17:36:14 +08:00
2026-07-31 16:34:16 +08:00
2026-08-04 17:36:14 +08:00
2026-08-01 06:15:16 -07:00
2026-08-01 06:15:16 -07:00
2026-08-01 06:15:16 -07:00
2026-08-04 15:18:48 +08:00
2026-08-04 15:18:48 +08:00
2026-08-04 15:18:48 +08:00
2026-07-31 20:39:53 +08:00
2026-07-31 20:39:53 +08:00
2026-07-31 20:39:53 +08:00
2026-08-02 14:18:55 +08:00
2026-08-02 14:18:55 +08:00
2026-08-02 14:18:55 +08:00
2026-08-03 23:16:53 +08:00
2026-08-03 23:16:53 +08:00
2026-08-03 23:16:53 +08:00
2026-08-02 03:56:25 +08:00
2026-08-02 03:56:25 +08:00
2026-08-02 03:56:25 +08:00
2026-08-02 05:29:25 -07:00
2026-08-02 05:29:25 -07:00
2026-08-02 05:29:25 -07:00
2026-08-05 00:31:43 +08:00
2026-08-05 00:31:43 +08:00
2026-08-05 00:31:43 +08:00
2026-08-03 18:58:44 +08:00
2026-08-03 18:58:44 +08:00
2026-08-03 18:58:44 +08:00
2026-08-04 15:55:07 +08:00
2026-08-04 15:55:07 +08:00
2026-08-04 15:55:07 +08:00
2026-08-04 15:42:39 +08:00
2026-08-04 15:42:39 +08:00
2026-08-04 15:42:39 +08:00
2026-08-04 14:14:12 +08:00
2026-08-04 14:14:12 +08:00
2026-08-04 14:14:12 +08:00
2026-08-05 12:15:03 +08:00
2026-08-05 12:15:03 +08:00
2026-08-05 12:15:03 +08:00
2026-08-05 14:55:21 +08:00
2026-08-05 14:55:21 +08:00
2026-08-05 14:55:21 +08:00