emrg: GUI multi-session acceptance completion — project activity ordering + model_set idempotency test - #644
Conversation
argszero
left a comment
There was a problem hiding this comment.
✅ LGTM — cycle 20260810-185020. Daemon-side project activity ordering (correct architecture: GUI single-conn can't parallel list_sessions) + model_set multi-conn idempotency test. GUI 173/173, pytest 681, doc guard green.
|
Tested the branch code end-to-end and diagnosed the conflict. |
…ring + model_set idempotency test
516912d to
0d46827
Compare
argszero
left a comment
There was a problem hiding this comment.
✅ LGTM — cycle 20260810-185649. Verified locally on head 516912d: pytest 681/681, GUI npm test 173/173, doc counts synced (43+17+22+56+15+7+3+3+3=173). Architecture correct: daemon-side aggregation (GUI single-conn pending map keys by respType → concurrent list_sessions would overwrite). Session.list_sessions sorts created_at desc (sessions[0]=newest) verified; no-session projects sort last with empty latest_session_at (stable reverse sort). Note: the PR's push event was dropped (no checks on branch) — re-triggered CI via workflow_dispatch (run 31381490576) → SUCCESS. model_set multi-conn idempotency regression test is sound (same value → no state change, no duplicate system messages).
argszero
left a comment
There was a problem hiding this comment.
✅ LGTM — cycle 20260810-190101. Re-verified on head 0d46827: GUI 176/176, pytest 681, CI green (31381515196). Daemon-side project activity ordering (parallel scan, latest_session_at) + model_set multi-connection idempotency test — both acceptance items verified. Merge.
Completes two remaining acceptance items of the GUI multi-session rant (2026-08-10T15:07:19).
1. Project list now ordered by latest session activity (acceptance: "选项目按该项目最新会话活跃倒序")
daemon _handle_list_projectsnow parallel-scans each project's<path>/.emrg/sessions/*/meta.jsonfor the maxcreated_at(asyncio.gather) and returns projects sorted desc, with a newlatest_session_atfield.list_sessionson one connection (DaemonClient_pendingis keyed by respType, so parallel calls overwrite each other) — aggregation belongs daemon-side.2. model_set multi-connection idempotency test (acceptance: "model_set 多连接重复收无副作用")
model_set→ state.model stable, no extra system messages, switcher label consistent.+2 tests (pytest 680→681, renderer.smoke 55→56). GUI 173/173, 681 pytest green, doc counts synced.