889212052e9d
pin the replay count and the kept originals in the undone-edit combine test, closing 3.0.27's codex review (3.0.36)
- time
- 2026-09-24 03:54 UTC · 2 weeks ago
- machine
- koh2
- agent
- claude-opus-5-5
- session
- koh 3 reliability campaign
- parent
- e6da6d4397fc
↓ koh-88921205.tar.gzatlas at this save
files changed3 files
VERSION+1 −1src/sync/sync_test.v+9 −2v.mod+1 −1src/sync/sync_test.v+9 −2
@@ -353,17 +353,24 @@353353 354354 put(b.root, 'f.txt', 'tried on B\n')!355355 put(b.root, 'g.txt', 'first try\n')!356- commit(b, 'B tries')!356+ tried := commit(b, 'B tries')!357357 put(b.root, 'f.txt', 'base\n')!358358 put(b.root, 'g.txt', 'same\n')!359359 put(b.root, 'h.txt', 'B\n')!360- commit(b, 'B undoes f, lands on the same g, adds h')!360+ undone := commit(b, 'B undoes f, lands on the same g, adds h')!361361 362362 report := steal_now(b, mut backend)!363363 assert report.clashes.len == 0364364 assert os.read_file(os.join_path(b.root, 'f.txt'))! == 'from A\n'365365 assert os.read_file(os.join_path(b.root, 'g.txt'))! == 'same\n'366366 assert os.read_file(os.join_path(b.root, 'h.txt'))! == 'B\n'367+ // "B tries" only touched files A changed, so it has nothing left to368+ // replay; the second save carries h.txt. Both originals stay in history.369+ assert report.replayed == 1370+ assert history.head(b)!.replayed_from == undone.id371+ ids := history.all_saves(b)!.map(it.id)372+ assert tried.id in ids && undone.id in ids373+ assert history.files_of(b, tried.id)!.any(it.path == 'f.txt')367374 }368375 369376 // A person deciding a clash may take minutes; the question must come beforev.mod+1 −1
@@ -1,6 +1,6 @@11 Module {22 name: 'koh3'3- version: '3.0.35'3+ version: '3.0.36'44 description: 'One SQLite file per repo, one line of history.'55 license: 'MIT'66 }