Commit Graph
9088 Commits
Author SHA1 Message Date
Ruben FiszelandClaude Opus 5 dbb63cfb36 fix: the app head is the tail of app.versions, not the newest timestamp
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-16 09:13:01 +02:00
Ruben FiszelandClaude Opus 5 63cc0181de fix: a reused destination retires the routes pointing at it, and draft_base stays out of diffs
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-16 08:41:26 +02:00
Ruben FiszelandClaude Opus 5 d17f8fc111 fix: the unread-head warning reads as caution in the deploy drawer too, and the cross-kind refusal names a remedy
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-16 00:15:36 +02:00
Ruben FiszelandClaude Opus 5 6af8118513 feat: an app deploy answers with the version it wrote, so the editor stops inferring it
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 23:44:51 +02:00
Ruben FiszelandClaude Opus 5 df2973ffff fix: an unread head confirms with the copy for caution, not for an observed deploy
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 22:55:35 +02:00
Ruben FiszelandClaude Opus 5 a51ead0e21 fix: an unanswered head read confirms rather than assuming the app editor is current
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 21:01:52 +02:00
Ruben FiszelandClaude Opus 5 46817d8a90 fix: the move endpoint validates its source path, and two comments say what their branch does
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 20:44:59 +02:00
Ruben FiszelandClaude Opus 5 9abd8fa7aa fix: a fresh session checkout takes the head its payload came from, and a deploy keeps the base it pinned
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 20:27:31 +02:00
Ruben FiszelandClaude Opus 5 de5769fb56 fix: the cross-kind refusal reads properly, and a session flow keeps its own response's head
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 20:10:50 +02:00
Ruben FiszelandClaude Opus 5 dfbc696ddb fix: the other app kind collides whoever owns it, and session tabs get a head to compare
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 19:51:55 +02:00
Ruben FiszelandClaude Opus 5 8e10e5a091 docs: the base-unknown confirmation says what it knows, and two comments match the guard
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 19:05:34 +02:00
Ruben FiszelandClaude Opus 5 60bf076b60 fix: an unclaimed deploy always confirms, and the prompt keeps warning a loaded teammate draft
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 18:44:55 +02:00
Ruben FiszelandClaude Opus 5 1662dfbc33 fix: a failed anchor read is not a raced deploy, and take latest closes only its own drawer
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 18:20:06 +02:00
Ruben FiszelandClaude Opus 5 2d0a4f777f fix: session tabs compare the same base pair, and a consumed draft is not out of date
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 17:38:42 +02:00
Ruben FiszelandClaude Opus 5 168ef0c6f5 fix: an emptied selection is no shift anchor, and a deploy leaves no draft for the prompt to compare
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 17:15:29 +02:00
Ruben FiszelandClaude Opus 5 0a6d49800e fix: a group member can be told where their item went, and a deploy names the head's author
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 16:50:42 +02:00
Ruben FiszelandClaude Opus 5 5baae5c3d1 docs: the raw-app deploy comment says what that editor actually does with version
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 16:23:26 +02:00
Ruben FiszelandClaude Opus 5 61d13cb72e fix: the route's lineage follows an in-place deploy, and the raw-app editor's event type carries the head
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 16:22:51 +02:00
Ruben FiszelandClaude Opus 5 b95cc73857 fix: the derived base is read after the sanitizer, and a deploy that claims nothing leaves no base to compare
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 15:56:26 +02:00
Ruben FiszelandClaude Opus 5 4f3d99c65b fix: a deploy always names the head it left behind, and pins a base only when it can claim one
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 15:34:04 +02:00
Ruben FiszelandClaude Opus 5 c037b3e97b fix: a deploy claims only the version it appended to the head it read, and names the head separately
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 15:05:06 +02:00
Ruben FiszelandClaude Opus 5 04bae85e93 refactor: pin the version this deploy wrote even when one landed on top, and tighten three comment blocks
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 14:46:53 +02:00
Ruben FiszelandClaude Opus 5 8a05c7a8aa fix: the deploy-override diff takes an opening its editor can hand back
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 14:23:39 +02:00
Ruben FiszelandClaude Opus 5 03ec3fde2f fix: an app deploy pins only a version it wrote as the next draft's base
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 14:21:27 +02:00
Ruben FiszelandClaude Opus 5 a149ba9231 fix: abandoning an opening clears the drawer it still owns
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 13:50:06 +02:00
Ruben FiszelandClaude Opus 5 bd2616c5af fix: the no-op routed discard gates its answer on reading the destination, and a session draft keeps its unknown base
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 13:37:54 +02:00
Ruben FiszelandClaude Opus 5 5b4d745b55 fix: a retried routed discard still names the destination, and filling the drawer takes the opening too
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 12:32:23 +02:00
Ruben FiszelandClaude Opus 5 7b490b87a8 fix: taking the diff drawer without a token claims it, and the classic app editor takes one
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 12:13:37 +02:00
Ruben FiszelandClaude Opus 5 f71262dc7f fix: the drawer owns its opening, a loaded script draft keeps no base it lacks, and a legacy occupant says who can clear it
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 11:54:01 +02:00
Ruben FiszelandClaude Opus 5 d3b87cf70b fix: a legacy draft occupies its destination, a superseded opening writes nothing, and a loaded flow draft keeps no base it lacks
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 11:15:11 +02:00
Ruben FiszelandClaude Opus 5 493448b2ce fix: a routed discard names where it landed, a superseded drawer opening is dropped, and a loaded draft keeps its base in every editor
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 10:31:49 +02:00
Ruben FiszelandClaude Opus 5 c80f3f5293 fix: a loaded raw-app draft keeps its own fork base, and an unknown head is refused
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 09:59:10 +02:00
Ruben FiszelandClaude Opus 5 201945146b fix: a NUL in a move's summary is dropped, and take latest simply adopts the head it was handed
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 09:46:54 +02:00
Ruben FiszelandClaude Opus 5 9237a93783 fix: the flow drawer's head is the version its payload came from, and its callback type says so
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 09:34:03 +02:00
Ruben FiszelandClaude Opus 5 f5c97aae13 fix: a head nobody could name is not behind, so take latest is not offered without one
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 09:20:06 +02:00
Ruben FiszelandClaude Opus 5 062adc284b feat: take latest adopts the head the diff shows, and is offered while the drawer sees the draft behind
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 09:02:51 +02:00
Ruben FiszelandClaude Opus 5 194c3218d8 fix: taking the latest moves the head each editor knows, not just the base
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 08:47:47 +02:00
Ruben FiszelandClaude Opus 5 a4da7d3ee6 fix: take latest re-reads the head at click time; type the kept head as prepared diff data
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 01:26:36 +02:00
Ruben FiszelandClaude Opus 5 19226a1783 fix: say so when a version fails to load in the diff picker
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 01:15:23 +02:00
Ruben FiszelandClaude Opus 5 1c035e44ab fix: the picker marks the version on display as head, restore compares the head, relocation follows the last move
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 01:14:59 +02:00
Ruben FiszelandClaude Opus 5 8146737342 fix: a failed version load keeps the picker on what the diff shows; one spelling for a legacy delete
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 00:55:55 +02:00
Ruben FiszelandClaude Opus 5 7a345b6c7e fix: count picker load generations, and report a skipped legacy upsert as a conflict
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 00:31:09 +02:00
Ruben FiszelandClaude Opus 5 f007ce8e8e fix: a poisoned draft's path keys follow a move, legacy only bypasses routing on a delete, picker loads are generation-guarded
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 00:16:07 +02:00
Ruben FiszelandClaude Opus 5 0a1dca929b fix: a redeploy ends a route off its path, take-latest persists on raw apps, stale picker loads are dropped
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 00:00:30 +02:00
Ruben FiszelandClaude Opus 5 73b16863c0 fix: a clone keeps only a base it can resolve; a base-unknown script deploys without a false guard
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-14 22:48:00 +02:00
Ruben FiszelandClaude Opus 5 29e75d27d5 fix: an unknown base stays unknown in every loader, and an owner move extends an item move
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-14 22:32:28 +02:00
Ruben FiszelandClaude Opus 5 68cd7a4420 fix: a draft-only app move refuses the other app kind; a session keeps an unknown base unknown
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-14 20:51:14 +02:00
Ruben FiszelandClaude Opus 5 ee2c2abcb9 fix: session loaders keep a draft's base, and a failed relocation flush stays put
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-14 20:15:04 +02:00
Ruben FiszelandClaude Opus 5 ccea81f5e9 refactor: the server follows a moved draft through a move record, not client-sent row ids
A move writes old path -> new path (per workspace and kind, per owner for a
draft-only move) in its transaction; a draft save or discard addressed to a
path the caller has no draft at resolves through it and keeps the moved
draft's path keys. Creating an item at a path drops the records leaving it.
Every writer (edit routes, sessions, chat, CLI, the tab-close flush) follows
without passing an id, so the id plumbing is gone.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-14 19:14:26 +02:00
Ruben FiszelandClaude Opus 5 1005868e41 fix: guard a base-unknown raw-app deploy against the head at load; keep the base in session hydration
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-14 17:21:18 +02:00