Background
Uteke v0.18.0 (2026-09-14) shipped room lifecycle management (uteke#1202/#1203):
POST /room/rename — rename a room; server rewrites the registry row and every room_memories/room_documents reference in one transaction
POST /room/update — edit room title/description (omitted fields stay unchanged)
POST /room/memory/move — move a memory between rooms, preserving author/role/joined_at provenance
Audited against the v0.17.0..v0.18.0 diff: purely additive (811+/11- across 9 files), no changes to the ~55 endpoints corin already uses, retrieval behavior identical. No action is required for corin v0.4.0 compatibility — this issue is about adopting the new capabilities.
Scope
- UtekeClient (
src-tauri/src/uteke_client.rs): add room_rename(old_id, new_id), room_update(room_id, title?, description?), room_memory_move(memory_id, from_room, to_room) following the existing request/response struct pattern
- Commands + IPC: expose Tauri commands (
uteke_room_rename, uteke_room_update, uteke_room_memory_move) — follow the 5-file pattern (uteke_client.rs → commands.rs → lib.rs → types.ts → ipc.ts)
- UI: actions in the Rooms view — rename (inline or modal), edit title/description, move memory to another room (picker on memory detail + room context menu)
- Compat gate: add
roomLifecycle: [0, 18, 0] to MIN_VERSIONS in src/lib/ts/compat.ts; gate the new actions per the existing pattern (NamespacesView / NamespaceManager upgrade hints, UpgradePrompt), so corin stays fully functional against uteke ≥ 0.16.1
Out of scope
- Ingest date anchors (
--timestamp / import timestamps) — separate issue if wanted
- Room deletion policy changes (existing
room_delete unchanged)
Acceptance criteria
References
Background
Uteke v0.18.0 (2026-09-14) shipped room lifecycle management (uteke#1202/#1203):
POST /room/rename— rename a room; server rewrites the registry row and everyroom_memories/room_documentsreference in one transactionPOST /room/update— edit room title/description (omitted fields stay unchanged)POST /room/memory/move— move a memory between rooms, preserving author/role/joined_at provenanceAudited against the
v0.17.0..v0.18.0diff: purely additive (811+/11- across 9 files), no changes to the ~55 endpoints corin already uses, retrieval behavior identical. No action is required for corin v0.4.0 compatibility — this issue is about adopting the new capabilities.Scope
src-tauri/src/uteke_client.rs): addroom_rename(old_id, new_id),room_update(room_id, title?, description?),room_memory_move(memory_id, from_room, to_room)following the existing request/response struct patternuteke_room_rename,uteke_room_update,uteke_room_memory_move) — follow the 5-file pattern (uteke_client.rs→commands.rs→lib.rs→types.ts→ipc.ts)roomLifecycle: [0, 18, 0]toMIN_VERSIONSinsrc/lib/ts/compat.ts; gate the new actions per the existing pattern (NamespacesView/NamespaceManagerupgrade hints,UpgradePrompt), so corin stays fully functional against uteke ≥ 0.16.1Out of scope
--timestamp/ import timestamps) — separate issue if wantedroom_deleteunchanged)Acceptance criteria
json_checkedusage (404 on missing room/link surfaced as readable errors)cargo fmt --allclean before opening the PR (lesson from v0.2.0)References
rooms.description)