yhh
b18d8ef3aa
feat(studio): storage relocation, composer intake, and the checkpoint agreement
...
Accumulated work from the branch, carried across the rebase onto origin/studio
and merged with what landed there in the meantime.
Storage: a workspace can name where its state lives, and the server tracks the
one relocation it may be running (internal/storage, config/storage_roots,
serve/storage, the Storage panel).
Composer intake: what a drop or a long paste becomes is one pure function —
payload in, action out — so "what happens if I drop a folder" is a test rather
than a branch of an onDrop handler. It sits on the drop router that landed
upstream: that one answers which pane a drop hit, this one answers what it
means and says so before the pointer is released. A paste long enough to bury
the composer becomes a chip beside it instead.
Session: the checkpoint agreement and the lineage/torn-log recovery cases,
plus the conflict diagnostic learning where two transcripts parted and which
roles stood there — a position and a role tell a local reshape from a foreign
write without recording any content.
Model refs: the default-model write checks the live catalog, so an extension
model the runtime knows can be persisted as the default.
2026-08-19 23:52:04 -07:00
..
2026-08-14 05:03:58 -07:00
2026-08-08 01:03:45 +08:00
2026-08-15 00:04:53 -07:00
2026-08-15 00:04:53 -07:00
2026-08-04 11:25:42 +08:00
2026-08-04 11:25:42 +08:00
2026-08-04 17:48:59 +08:00
2026-08-07 15:30:33 +08:00
2026-08-03 18:56:03 +08:00
2026-08-07 14:39:41 +08:00
2026-08-07 15:30:33 +08:00
2026-07-29 20:19:59 -07:00
2026-08-10 13:58:28 +08:00
2026-08-15 07:38:00 -07:00
2026-08-06 18:29:53 +08:00
2026-08-06 18:29:53 +08:00
2026-07-06 19:20:00 +08:00
2026-08-11 16:40:32 +08:00
2026-08-11 16:40:32 +08:00
2026-08-11 16:40:32 +08:00
2026-08-10 20:06:02 +08:00
2026-07-31 01:12:43 +08:00
2026-08-07 15:30:33 +08:00
2026-08-18 02:38:47 -07:00
2026-08-10 02:47:35 +08:00
2026-08-14 23:04:00 -07:00
2026-08-09 05:32:30 +08:00
2026-08-10 14:30:58 +08:00
2026-08-10 03:29:27 +08:00
2026-08-07 15:30:33 +08:00
2026-08-18 18:33:44 -07:00
2026-08-07 12:17:44 +08:00
2026-08-10 02:43:50 +08:00
2026-08-10 02:43:50 +08:00
2026-08-19 17:37:22 -07:00
2026-08-07 14:39:41 +08:00
2026-08-10 13:58:28 +08:00
2026-08-06 11:56:17 +08:00
2026-08-07 15:30:33 +08:00
2026-08-19 06:25:57 -07:00
2026-08-19 06:25:57 -07:00
2026-08-15 01:04:38 -07:00
2026-08-15 01:04:38 -07:00
2026-08-15 04:20:13 -07:00
2026-08-15 04:20:13 -07:00
2026-08-19 17:37:22 -07:00
2026-07-18 05:11:47 +00:00
2026-08-07 15:30:33 +08:00
2026-08-06 11:56:17 +08:00
2026-08-07 15:30:33 +08:00
2026-08-09 19:01:14 -07:00
2026-08-09 18:38:33 -07:00
2026-07-17 16:27:09 +08:00
2026-07-17 16:27:09 +08:00
2026-08-11 19:02:51 +08:00
2026-08-14 06:39:11 -07:00
2026-08-04 05:49:39 +08:00
2026-08-10 14:08:43 +08:00
2026-08-07 15:30:33 +08:00
2026-08-07 15:30:33 +08:00
2026-08-04 13:20:08 +08:00
2026-07-11 16:03:24 +08:00
2026-08-03 18:56:03 +08:00
2026-07-14 16:27:42 +08:00
2026-08-08 01:03:45 +08:00
2026-08-10 17:16:26 +08:00
2026-08-11 19:38:08 +08:00
2026-08-19 14:19:06 +08:00
2026-08-05 10:41:57 +08:00
2026-08-08 02:29:40 +08:00
2026-08-03 19:16:27 +08:00
2026-08-03 19:16:27 +08:00
2026-07-17 16:27:09 +08:00
2026-08-07 15:30:33 +08:00
2026-08-04 15:14:52 +08:00
2026-06-12 11:42:03 +08:00
2026-08-07 14:21:07 +08:00
2026-08-04 16:19:58 +00:00
2026-08-04 16:19:58 +00:00
2026-07-24 16:00:36 +08:00
2026-08-09 22:30:29 +08:00
2026-08-09 21:33:07 +08:00
2026-07-29 15:09:26 +08:00
2026-07-29 20:19:59 -07:00
2026-06-03 05:36:10 -07:00
2026-08-07 15:30:33 +08:00
2026-07-29 20:19:59 -07:00
2026-07-28 16:43:21 +08:00
2026-08-06 15:40:27 +08:00
2026-08-17 07:05:41 -07:00
2026-08-08 15:52:39 +08:00
2026-08-07 15:30:33 +08:00
2026-08-08 13:20:47 +08:00
2026-08-08 15:52:39 +08:00
2026-08-15 02:22:45 -07:00
2026-08-08 15:52:39 +08:00
2026-08-08 15:52:39 +08:00
2026-08-16 20:30:16 -07:00
2026-08-19 02:20:21 -07:00
2026-08-16 20:30:16 -07:00
2026-06-01 01:36:16 -07:00
2026-05-30 23:55:25 -07:00
2026-08-07 15:30:33 +08:00
2026-07-29 02:27:29 +08:00
2026-07-29 02:27:29 +08:00
2026-08-19 23:52:04 -07:00
2026-06-02 01:28:35 -07:00
2026-08-19 23:52:04 -07:00
2026-08-07 15:30:33 +08:00
2026-08-07 16:38:23 +08:00
2026-06-02 01:28:35 -07:00
2026-07-14 22:48:07 +08:00
2026-07-14 22:48:07 +08:00
2026-07-11 18:39:50 +08:00
2026-07-03 11:58:21 +08:00
2026-07-03 12:19:57 +08:00
2026-08-08 02:29:40 +08:00
2026-08-10 17:16:26 +08:00
2026-08-15 00:04:53 -07:00
2026-08-09 18:38:33 -07:00
2026-08-19 06:25:57 -07:00
2026-07-17 16:48:56 +08:00
2026-08-07 15:30:33 +08:00
2026-08-07 15:30:33 +08:00
2026-07-05 01:39:16 +08:00
2026-08-09 06:13:36 -07:00
2026-08-19 06:22:46 -07:00
2026-08-04 14:55:18 +08:00
2026-07-24 09:12:24 +08:00
2026-08-07 15:30:33 +08:00
2026-08-10 02:43:50 +08:00
2026-08-10 02:43:50 +08:00
2026-08-10 02:43:50 +08:00
2026-08-05 03:34:29 +08:00
2026-07-04 11:16:58 +08:00
2026-06-12 13:36:53 +08:00
2026-07-29 20:19:59 -07:00
2026-08-02 18:46:03 +08:00
2026-08-02 21:57:02 +08:00
2026-08-15 04:20:13 -07:00
2026-08-09 04:34:09 +08:00
2026-08-15 04:20:13 -07:00
2026-06-02 08:04:02 -07:00
2026-08-10 09:18:37 -07:00
2026-08-03 18:56:03 +08:00
2026-08-04 04:19:14 +08:00
2026-08-06 11:56:17 +08:00
2026-08-15 02:07:20 -07:00
2026-08-15 02:07:20 -07:00
2026-08-10 04:38:55 -07:00
2026-08-07 15:30:33 +08:00
2026-08-07 07:40:38 -07:00
2026-08-15 07:38:00 -07:00
2026-08-17 21:12:36 -07:00
2026-08-18 02:38:47 -07:00
2026-08-15 07:38:00 -07:00
2026-08-08 01:03:45 +08:00
2026-08-03 15:42:37 +08:00
2026-08-10 14:19:47 +08:00
2026-08-10 14:19:47 +08:00
2026-08-07 15:30:33 +08:00
2026-08-07 15:30:33 +08:00
2026-07-19 21:48:20 +08:00
2026-07-19 21:48:20 +08:00
2026-08-15 22:23:55 -07:00
2026-08-08 20:48:07 -07:00
2026-08-17 01:00:40 -07:00
2026-08-12 14:18:55 +08:00
2026-07-27 22:02:21 +08:00
2026-07-27 22:02:21 +08:00
2026-08-06 15:02:39 +08:00
2026-08-10 17:41:41 +08:00
2026-07-15 11:57:59 +08:00
2026-08-19 23:52:04 -07:00
2026-08-07 15:30:33 +08:00
2026-08-14 05:03:58 -07:00
2026-08-07 15:30:33 +08:00
2026-08-07 15:30:33 +08:00
2026-08-07 15:30:33 +08:00
2026-08-06 15:40:27 +08:00
2026-07-11 18:39:50 +08:00
2026-07-11 20:41:15 +08:00
2026-08-15 04:20:13 -07:00
2026-07-13 19:27:20 +00:00
2026-08-11 09:25:13 +08:00
2026-07-11 17:37:53 +08:00
2026-08-04 11:50:07 +08:00
2026-08-02 20:04:37 +08:00
2026-08-11 19:02:51 +08:00
2026-07-29 20:19:59 -07:00
2026-08-04 11:25:42 +08:00
2026-08-04 11:25:42 +08:00
2026-07-29 00:44:43 +08:00
2026-08-07 15:30:33 +08:00
2026-08-17 01:00:40 -07:00
2026-07-27 22:02:21 +08:00
2026-07-28 14:48:25 +08:00
2026-08-07 14:39:41 +08:00
2026-08-07 14:39:41 +08:00
2026-06-02 04:52:30 -07:00
2026-07-29 20:19:59 -07:00
2026-07-29 20:32:11 -07:00
2026-07-29 20:32:11 -07:00
2026-07-29 20:32:11 -07:00
2026-08-07 15:30:33 +08:00
2026-06-05 01:20:24 -07:00
2026-07-24 08:21:22 +08:00
2026-08-07 15:30:33 +08:00
2026-08-07 15:30:33 +08:00
2026-08-07 15:30:33 +08:00
2026-08-11 19:02:51 +08:00
2026-08-07 15:30:33 +08:00
2026-08-07 15:30:33 +08:00
2026-08-04 15:39:05 +08:00
2026-08-07 15:30:33 +08:00
2026-08-11 18:09:58 +08:00
2026-08-04 15:14:52 +08:00
2026-06-02 01:28:35 -07:00
2026-08-15 22:23:55 -07:00
2026-08-10 02:43:50 +08:00
2026-08-10 02:43:50 +08:00
2026-08-10 02:43:50 +08:00
2026-08-10 02:43:50 +08:00
2026-08-10 02:43:50 +08:00
2026-08-07 15:30:33 +08:00
2026-08-15 00:04:53 -07:00
2026-08-11 09:25:13 +08:00
2026-07-14 03:01:51 +08:00
2026-08-07 15:30:33 +08:00