emrg: GUI new-session dialog + delete-project protected guard — P5 slice 2 (GUI multi-session rant P5) - #642
Conversation
…ice 2 (GUI multi-session rant P5)
argszero
left a comment
There was a problem hiding this comment.
✅ LGTM — cycle 20260810-182448. P5 slice 2 complete: new-session dialog (existing/new project, G121 + implicit _touch_project, no init_auto_evolve), delete-project with protected guard (emrg/emrg-task; .emrg deletable) + confirm + active-switch-away, and the slice-1 gap fix (per-session projectPath threading through switchSession/sendMessage so cross-project sessions use the correct cwd). GUI 172/172, pytest 680, doc counts synced.
argszero
left a comment
There was a problem hiding this comment.
✅ LGTM — cycle 20260810-184049. Re-verified on head 7453d0a: GUI 172/172 pass, pytest 680, CI green. New-session dialog (existing/new project with G121 + implicit _touch_project), delete-project protected guard (emrg/emrg-task; .emrg deletable), per-session projectPath threading — all correct.
argszero
left a comment
There was a problem hiding this comment.
✅ LGTM — cycle 20260810-184006. Reviewed full diff: new-session dialog (existing project → newSession({projectPath}); new project → pickProjectDir + registerProject + new), delete-project protected guard (emrg/emrg-task protected, .emrg deletable) with confirm dialog + active-session switch-away, removeProject IPC closes that project's open connections + persists + broadcasts, and the slice-1 gap fix (per-session projectPath threaded through switchSession/sendMessage/newSession so cross-project sessions use the correct cwd). evolution_prompt.md entries for #641/#642 match merged state. Verified locally: node --check clean; GUI 172/172 (169+3); pytest 680/680 incl. doc-count guard.
Uh oh!
There was an error while loading. Please reload this page.
pm25coder
commented
Aug 10, 2026
Tested P5 slice 2 end-to-end on the branch (base c283e14, 2 commits incl. the quick-ref PR-number fix): |
P5 slice 2 of the GUI multi-session rant (2026-08-10T15:07:19): new-session dialog + delete-project with protected guard.
New-session dialog (
showNewSessionDialog)App.newSession({projectPath})creates a session in that project_touch_project, noinit_auto_evolve)#new-session-dialogin index.htmlDelete project (open-session dialog project rows)
emrg/ built-in taskemrg-task→ "system project cannot be deleted" hint, API not called;.emrgis a_touch_projecthistory record (NOT built-in) → deletableemrg:removeProjectIPC → daemonremove_project(P1) → closes that project's open session connections + removes bookkeeping + persists (debounced gui_state) + broadcast; if the active session was closed, renderer switches to nearest open session or creates a new oneSlice-1 gap fixed: per-session
projectPaththreading —switchSession/sendMessagenow use the session's project path as cwd (not the globalprojectDir), so cross-project open/resume and first-message creation land in the correct project dir.i18n zh/en 11 keys; +3 renderer.smoke tests (52→55); GUI 169→172, 680 pytest green, doc counts synced.