Commit Graph
7062 Commits
Author SHA1 Message Date
Ruben FiszelandClaude Opus 5 f8ebd281c8 docs: condense the AsOf invariant to four lines
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 16:56:59 +02:00
Ruben FiszelandClaude Opus 5 aa2d6043e1 fix: count an outside write for read ordering even when it changes nothing on screen
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 16:36:21 +02:00
Ruben FiszelandClaude Opus 5 da588bf8ed fix: tell a failed refresh from an absent editor, and a patch's value from a newer one
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 16:18:53 +02:00
Ruben FiszelandClaude Opus 5 8a948f127b fix: let an outside discard snapshot when it was asked for, not after its wait
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 16:01:43 +02:00
Ruben FiszelandClaude Opus 5 a3b9a9370d fix: have a live editor say whether it dealt with the row, not just that it answered
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 15:44:17 +02:00
Ruben FiszelandClaude Opus 5 f28a6845e0 fix: give a deploy, an item deletion and a draft discard their own transitions
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 15:26:33 +02:00
Ruben FiszelandClaude Opus 5 184af46829 fix: let a deployed item's editor settle its own row instead of discarding it
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 15:04:35 +02:00
Ruben FiszelandClaude Opus 5 b4ed4f52c5 fix: re-read a live editor before a deploy discards the draft it made
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 14:50:47 +02:00
Ruben FiszelandClaude Opus 5 994b8dcae1 fix: keep an unsent row on its own baseline, and let one editor own one delete
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 14:31:52 +02:00
Ruben FiszelandClaude Opus 5 6fde8e9dce fix: re-issue a draft delete the server never received instead of assuming it landed
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 14:16:11 +02:00
Ruben FiszelandClaude Opus 5 e226143f4c fix: open an item on the row its syncer could not send
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 14:02:16 +02:00
Ruben FiszelandClaude Opus 5 c5312f2a19 fix: drop only a refused payload on adoption, never one that never reached the server
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 13:51:14 +02:00
Ruben FiszelandClaude Opus 5 978d8b5813 fix: drop the payload the server refused when a read adopts a fresh baseline
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 13:39:16 +02:00
Ruben FiszelandClaude Opus 5 15a9cacf01 fix: mark a read's row baseline after its own flush, not before
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 13:26:04 +02:00
Ruben FiszelandClaude Opus 5 b4a89a3b16 docs: say handed over, not landed, for the row-baseline ordering token
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 13:12:13 +02:00
Ruben FiszelandClaude Opus 5 d491693a8a fix: let an unasked read move the deployed side under a conflict without answering it
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 12:41:05 +02:00
Ruben FiszelandClaude Opus 5 a3e0e6e80d fix: order a read's row baseline against every writer, and spare a conflicted holder
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 12:27:34 +02:00
Ruben FiszelandClaude Opus 5 a0077ce5e9 fix: measure a discard against what moved under it, not against the value
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 12:08:22 +02:00
Ruben FiszelandClaude Opus 5 c9a3fcbda2 fix: let a discard asked for before the first read throw away what it turns up
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 11:59:00 +02:00
Ruben FiszelandClaude Opus 5 8455c7da3a fix: tag which patch owns a field rather than inferring it from the value
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 11:44:14 +02:00
Ruben FiszelandClaude Opus 5 8bfaae1def refactor: take one request-time snapshot per command instead of four by hand
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 11:39:57 +02:00
Ruben FiszelandClaude Opus 5 bc2e51c514 refactor: take a read's row and its sync baseline together, ordered
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 11:37:40 +02:00
Ruben FiszelandClaude Opus 5 2fab8c8aff refactor: derive the deployed baseline instead of overlaying it by hand
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 11:35:51 +02:00
Ruben FiszelandClaude Opus 5 04eed3f58a fix: three concurrency holes in the item store's command layer
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 11:30:55 +02:00
Ruben FiszelandClaude Opus 5 b33f70e77f fix: keep the row baseline a read that started earlier would rewind
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 11:01:36 +02:00
Ruben FiszelandClaude Opus 5 899899b284 docs: condense the discard invariant to four lines
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 10:50:07 +02:00
Ruben FiszelandClaude Opus 5 a68b19130f fix: grey the draft banner's Discard while a command is in flight, like Save
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 10:31:53 +02:00
Ruben FiszelandClaude Opus 5 8a6fa9b8a4 fix: measure a queued discard against the value it named, not a write count
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 10:31:53 +02:00
Ruben FiszelandClaude Opus 5 6cbf34c045 fix: discard the value as of the click, not as of its turn
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 10:14:03 +02:00
Ruben FiszelandClaude Opus 5 89170ab042 fix: keep an in-flight patch's fields on every write of the deployed side
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 10:02:37 +02:00
Ruben FiszelandClaude Opus 5 1a50765295 fix: let an outside write that lands during a discard keep the item
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 09:46:12 +02:00
Ruben FiszelandClaude Opus 5 47b6934266 fix: leave a command's own value replacement out of the edit count
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 09:33:02 +02:00
Ruben FiszelandClaude Opus 5 d17f60945a fix: count a re-read's edits from before its row went out
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015vn1jCHUcAdaG9C4NsUehF
2026-09-15 09:19:05 +02:00
Ruben FiszelandClaude Opus 5 718a7b516e fix: send a held item's queued row before re-reading it
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015vn1jCHUcAdaG9C4NsUehF
2026-09-15 09:11:41 +02:00
Ruben FiszelandClaude Opus 5 8478b4ea98 refactor: write the item a panel config stands for without becoming it
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015vn1jCHUcAdaG9C4NsUehF
2026-09-15 00:45:39 +02:00
Ruben FiszelandClaude Opus 5 866050aaf6 fix: carry the stamp with a value handed between entries
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015vn1jCHUcAdaG9C4NsUehF
2026-09-14 20:49:41 +02:00
Ruben FiszelandClaude Opus 5 2bedaf1afe fix: ignore an ask older than the one that already holds, its value included
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015vn1jCHUcAdaG9C4NsUehF
2026-09-14 20:39:50 +02:00
Ruben FiszelandClaude Opus 5 6e98542839 refactor: stamp every ask of an item so the one asked last holds
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015vn1jCHUcAdaG9C4NsUehF
2026-09-14 20:27:04 +02:00
Ruben FiszelandClaude Opus 5 8d0966d902 fix: keep a parked draft from outranking a discard asked after it
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015vn1jCHUcAdaG9C4NsUehF
2026-09-14 20:13:20 +02:00
Ruben FiszelandClaude Opus 5 4ea45a83aa fix: hold a discard superseded by a later draft, whether or not the move lands
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015vn1jCHUcAdaG9C4NsUehF
2026-09-14 20:00:03 +02:00
Ruben FiszelandClaude Opus 5 226cf97d1f fix: let the ask that came last hold, a draft rewritten unchanged included
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015vn1jCHUcAdaG9C4NsUehF
2026-09-14 19:40:23 +02:00
Ruben FiszelandClaude Opus 5 2d48f7f0f9 fix: let the last outside write at a key win over a discard and a parked draft
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015vn1jCHUcAdaG9C4NsUehF
2026-09-14 19:29:13 +02:00
Ruben FiszelandClaude Opus 5 4ffa65538f fix: let a discard asked before a move lands win over the edits it drops
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015vn1jCHUcAdaG9C4NsUehF
2026-09-14 19:12:23 +02:00
Ruben FiszelandClaude Opus 5 984e958a72 fix: keep an outside draft written to an editor still loading behind a move
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015vn1jCHUcAdaG9C4NsUehF
2026-09-14 18:49:21 +02:00
Ruben FiszelandClaude Opus 5 aca3aef0ec fix: keep a draft written at a key while a save is moving onto it
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015vn1jCHUcAdaG9C4NsUehF
2026-09-14 18:36:44 +02:00
Ruben FiszelandClaude Opus 5 981ba6f882 fix: name the item on screen in the drawers' title, anchor and picker
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015vn1jCHUcAdaG9C4NsUehF
2026-09-14 18:22:19 +02:00
Ruben FiszelandClaude Opus 5 a043f76f0c fix: carry a run-as-only edit onto the entry a move replaces it with
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015vn1jCHUcAdaG9C4NsUehF
2026-09-14 18:22:19 +02:00
Ruben FiszelandClaude Opus 5 228da1bfca fix: follow a variable the drawer renamed and stayed open on
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015vn1jCHUcAdaG9C4NsUehF
2026-09-14 18:05:28 +02:00
Ruben FiszelandClaude Opus 5 1648336e3e fix: keep the edits of an editor a move replaces at its key
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015vn1jCHUcAdaG9C4NsUehF
2026-09-14 18:05:28 +02:00
Ruben FiszelandClaude Opus 5 901e096380 refactor: gate every command on a move heading for its key
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015vn1jCHUcAdaG9C4NsUehF
2026-09-14 17:40:27 +02:00