2213f5046815

say plainly why a Koh 3 command is refused in a Koh 2 repo: it needs a Koh 3 repo, and this one is still Koh 2 (3.2.15)

time
2026-09-29 02:07 UTC · 2 weeks ago
machine
Junes-MacBook-Pro.local
agent
claude-opus-5-5
session
clear feedback
parent
5ef1c461d861
4 files VERSION+1 −1src/cli/handover.v+1 −1tests/cli_test.v+1 −1v.mod+1 −1
VERSION+1 −1
@@ -1 +1 @@1-3.2.141+3.2.15

view file

src/cli/handover.v+1 −1
@@ -31,7 +31,7 @@3131 	// Koh 2's `view` sets visibility, its `steal` downloads a URL, its `doctor`3232 	// checks something else, and it has no `build` or `strip`.3333 	if command in ['view', 'steal', 'doctor', 'build', 'strip'] {34-		eprintln('  ${fmt.red(fmt.glyph_fail)} this is a Koh 2 repo, where "koh ${command}" is not Koh 3\'s — run "koh migrate" to convert it')34+		eprintln('  ${fmt.red(fmt.glyph_fail)} "koh ${command}" needs a Koh 3 repo, and this one is still Koh 2 — run "koh migrate" to convert it')3535 		exit(1)3636 	}3737 	target := koh2_binary()

view file

tests/cli_test.v+1 −1
@@ -1332,7 +1332,7 @@13321332 		refused := run_home_with_path(legacy, home, fake, command)13331333 		assert refused.code == 1, command13341334 		assert !refused.out.contains('handoff'), command1335-		assert refused.err.contains('koh migrate'), refused.err1335+		assert refused.err.contains('"koh ${command}" needs a Koh 3 repo, and this one is still Koh 2 — run "koh migrate"'), refused.err13361336 	}13371337 	// And one that belongs to the machine, not the repo, is Koh 3's own.13381338 	remote := run_home_with_path(legacy, home, fake, 'remote')

view file

v.mod+1 −1
@@ -1,6 +1,6 @@11 Module {22 	name: 'koh3'3-	version: '3.2.14'3+	version: '3.2.15'44 	description: 'One SQLite file per repo, one line of history.'55 	license: 'MIT'66 }

view file