xarmian
0cc033edd8
feat(items): content-anchored patch writes on an item with no live editor (PLAN-3578 step 1) ( #2055 )
...
POST /workspaces/{ws}/items/{ref}/patch {edits:[{old,new,line_hint?}],
expected_seq?} replaces exact text in the body. It runs through updateItem,
so it takes every PATCH guard; the body is computed inside the store
transaction from the row it replaces. Each old must occur exactly once;
edits apply in order, all or nothing; every patch writes a version. The
answer carries a unified diff of what changed.
expected_seq does not refuse: a moved seq is applied over when the
anchors still match, and answered rebased with the intervening writes,
read from a seq chain stamped into item activity entries ({prev_seq, seq,
version_id}). complete is decided at runtime, so any write that left no
stamp reads incomplete; a guard test classifies every seq-moving store
statement. Refusals write nothing: patch_anchor_missing,
patch_anchor_ambiguous, patch_room_open (an open editor; step 2).
CLI: pad item patch, pad item show --lines. MCP 0.87 (additive):
pad_item.patch, get lines, three allow-listed codes. The timeline treats
the chain and patch keys as bookkeeping, not a change.
Claude-Session: https://claude.ai/code/session_01Q9WssCjFuHjSfLABoW4tmS
2026-10-11 06:20:09 -04:00
..
2026-05-01 19:52:52 -04:00
2026-05-01 21:04:26 -04:00
2026-05-01 21:35:29 -04:00
2026-05-01 21:40:01 -04:00
2026-07-01 19:35:23 -04:00
2026-10-08 15:15:26 -04:00
2026-09-25 16:24:50 -04:00
2026-09-13 22:38:15 -04:00
2026-09-22 00:42:02 -04:00
2026-09-22 22:49:36 -04:00
2026-09-26 09:47:51 -04:00
2026-09-30 09:34:38 -04:00
2026-09-26 09:47:42 -04:00
2026-09-27 05:40:55 -04:00
2026-10-06 16:48:50 -04:00
2026-10-06 18:54:37 -04:00
2026-10-08 10:43:33 -04:00
2026-10-09 20:31:42 -04:00
2026-10-01 23:09:18 -04:00
2026-07-14 15:48:12 -04:00
2026-10-09 21:47:50 -04:00
2026-09-22 22:49:36 -04:00
2026-10-11 06:20:09 -04:00
2026-09-27 11:00:34 -04:00
2026-05-17 00:15:52 -04:00
2026-07-13 22:46:55 -04:00
2026-09-22 22:49:36 -04:00
2026-10-11 06:20:09 -04:00
2026-08-20 13:26:05 -04:00
2026-05-12 18:09:11 -04:00
2026-09-27 11:00:34 -04:00
2026-07-08 15:28:21 -04:00
2026-09-27 11:00:34 -04:00
2026-07-08 16:26:41 -04:00
2026-10-07 08:36:58 -04:00
2026-10-11 06:20:09 -04:00
2026-05-17 02:33:36 -04:00
2026-05-01 17:45:18 -04:00
2026-09-16 12:00:11 -04:00
2026-07-06 12:37:34 -04:00
2026-05-12 18:09:11 -04:00
2026-09-27 11:00:34 -04:00
2026-10-11 06:20:09 -04:00
2026-10-01 23:52:48 -04:00
2026-10-11 06:20:09 -04:00
2026-10-01 23:52:48 -04:00
2026-10-02 08:22:41 -04:00
2026-10-02 03:34:43 -04:00
2026-10-02 19:52:05 -04:00
2026-10-02 04:37:12 -04:00
2026-10-02 04:37:12 -04:00
2026-10-08 12:46:18 -04:00
2026-10-08 15:15:26 -04:00
2026-09-08 14:51:21 -04:00
2026-05-17 00:15:52 -04:00
2026-09-03 13:07:36 +00:00
2026-10-11 05:29:53 -04:00
2026-10-07 21:03:24 -04:00
2026-09-23 07:46:45 -04:00
2026-06-22 13:26:03 -04:00
2026-10-07 03:14:22 -04:00
2026-05-01 14:34:17 -04:00
2026-10-07 03:14:22 -04:00
2026-09-23 10:48:28 -04:00
2026-05-02 20:03:53 -04:00
2026-08-15 13:17:01 -04:00
2026-08-15 20:24:31 -04:00
2026-08-19 08:13:29 -04:00
2026-07-14 20:37:03 -04:00
2026-10-07 03:14:22 -04:00
2026-09-23 14:35:41 -04:00
2026-08-17 19:02:53 -04:00
2026-10-02 01:36:55 -04:00
2026-08-25 23:20:53 -04:00
2026-09-16 12:00:11 -04:00
2026-10-07 06:40:06 -04:00
2026-10-07 06:40:06 -04:00
2026-05-01 19:52:52 -04:00
2026-10-07 03:14:22 -04:00
2026-07-14 20:37:03 -04:00
2026-10-07 03:14:22 -04:00
2026-09-27 07:59:11 -04:00
2026-09-23 09:56:43 -04:00
2026-10-07 03:14:22 -04:00
2026-09-10 21:06:40 -04:00
2026-07-26 23:56:34 +00:00
2026-09-26 12:20:58 -04:00
2026-10-11 06:20:09 -04:00
2026-09-03 16:22:00 +00:00
2026-09-23 07:46:45 -04:00
2026-09-03 00:54:56 +00:00
2026-08-16 14:17:30 -04:00
2026-05-02 21:31:48 -04:00
2026-10-09 19:42:35 -04:00
2026-09-22 22:49:36 -04:00
2026-09-27 11:00:34 -04:00
2026-09-23 05:17:16 -04:00
2026-10-11 06:20:09 -04:00
2026-09-07 15:33:05 -04:00
2026-09-16 12:00:11 -04:00
2026-09-16 12:00:11 -04:00
2026-05-01 18:11:38 -04:00
2026-10-11 06:20:09 -04:00
2026-07-03 12:17:03 -04:00
2026-09-09 14:25:08 -04:00
2026-09-09 19:22:58 -04:00
2026-09-23 06:01:08 -04:00
2026-09-23 06:01:08 -04:00
2026-05-25 11:46:41 -04:00
2026-10-09 21:47:50 -04:00
2026-10-11 05:29:53 -04:00
2026-10-11 06:20:09 -04:00
2026-10-08 12:40:51 -04:00
2026-10-07 00:02:09 -04:00
2026-07-08 15:06:39 -04:00
2026-05-01 08:58:27 -04:00
2026-09-16 12:00:11 -04:00
2026-09-21 18:52:28 -04:00
2026-09-13 18:34:16 -04:00
2026-08-01 20:42:28 +00:00
2026-07-14 19:21:58 -04:00
2026-10-02 00:05:59 -04:00
2026-07-14 15:56:17 -04:00
2026-10-06 18:54:37 -04:00
2026-09-27 11:00:34 -04:00
2026-10-09 20:31:42 -04:00
2026-09-16 12:00:11 -04:00
2026-10-08 15:15:26 -04:00
2026-09-29 09:29:28 -04:00
2026-09-23 16:23:06 -04:00
2026-09-30 00:41:20 -04:00
2026-10-09 19:42:35 -04:00
2026-10-09 18:56:44 -04:00
2026-10-05 04:49:25 -04:00
2026-10-10 00:50:35 -04:00
2026-10-11 06:20:09 -04:00
2026-07-07 16:28:01 -04:00
2026-08-16 13:49:00 -04:00
2026-10-10 00:50:35 -04:00
2026-09-09 19:22:58 -04:00
2026-09-29 15:25:44 -04:00
2026-10-11 06:20:09 -04:00
2026-09-17 16:13:36 -04:00
2026-05-12 18:09:11 -04:00
2026-10-02 00:05:59 -04:00