8f8891090423

lowercase a repo's name at first offer so a folder's case never changes its Kepr URL (v3.2.26)

time
2026-10-01 18:05 UTC · 1 week ago
machine
Junes-MacBook-Pro.local
agent
claude-opus-5-5
session
lowercase repo names
parent
f5cf9f314308
4 files VERSION+1 −1src/exchange/exchange.v+4 −3src/exchange/exchange_test.v+18 −0v.mod+1 −1
VERSION+1 −1
@@ -1 +1 @@1-3.2.251+3.2.26

view file

src/exchange/exchange.v+4 −3
@@ -70,13 +70,14 @@7070 	store.set_state(repo_state_key, name)!7171 }7272 73-// repo_name is the folder's name at first offer, remembered in the repo so74-// renaming the folder later changes nothing.73+// repo_name is the folder's name at first offer, lowercased so it makes the same74+// Kepr URL whatever the folder's case (June, 2026-10-01), and remembered in the75+// repo so renaming the folder later changes nothing.7576 pub fn repo_name(store &storage.Store, mut backend remote.Backend) !string {7677 	if remembered := store.state(repo_state_key) {7778 		return remembered7879 	}79-	name := os.base(store.root)80+	name := os.base(store.root).to_lower()8081 	// Before the clash check below: a remote this koh cannot read is a "update8182 	// koh" answer, not a "rename the folder" one.8283 	check_format(mut backend, name)!

view file

src/exchange/exchange_test.v+18 −0
@@ -132,6 +132,24 @@132132 	assert backend.get(head_key('proj'))!.body.bytestr() == head_of(a).id133133 }134134 135+fn test_a_repo_name_is_lowercased_at_first_offer() {136+	base := scratch('lower')!137+	defer {138+		os.rmdir_all(base) or {}139+	}140+	dir := os.join_path(base, 'Haven')141+	os.mkdir_all(dir, os.MkdirParams{})!142+	mut a := open_repo(dir)!143+	defer {144+		a.close()145+	}146+	put(a.root, 'a.txt', 'one\n')!147+	make_save(a, 'first')!148+	mut backend := remote.new_folder(os.join_path(base, 'remote'))!149+	assert offer_now(a, mut backend)!.repo == 'haven'150+	assert backend.get(head_key('haven'))!.found151+}152+135153 fn test_steal_fast_forwards_a_machine_that_has_nothing_of_its_own() {136154 	base := scratch('forward')!137155 	defer {

view file

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

view file