emrg: GUI rant panel + list_rants daemon command (rant 2026-08-13T14:10:14 P4) - #750
Merged
Conversation
argszero
commented
Aug 13, 2026
argszero
left a comment
Owner
Author
There was a problem hiding this comment.
✅ LGTM — cycle (1/3)
Reviewed the full diff for P4 (rant panel) of the GUI redesign (rant 14:10:14):
- Daemon
list_rants: reads rants.jsonl with optional status filter, newest-first, corrupt lines skipped, missing file → empty — 2 pytest tests cover filter/order/corrupt/missing. - GUI panel: 4 status filter tabs (re-query with status param), rows with timestamp + status badge + project + progress snippet, click-to-expand detail (full message + progress), new-rant form (project dropdown + sendRant reuse).
- IPC chain complete: main.js handler + preload + RESPONSE_TYPES
list_rants → rants_list(+1 mirror-test assertion); lazy-load on nav open matches P3/P5 pattern; i18n zh/en incl. data-i18n-placeholder (Stage-3 guard satisfied). - Verified locally: 779 pytest + 236 GUI + import + CLI + doc-count guard green; CI test + test-windows PASS (31679974507), mergeStateStatus CLEAN.
Contributor
|
Tested this PR end-to-end on Windows — implementation is solid and everything works as described: |
argszero
commented
Aug 13, 2026
argszero
left a comment
Owner
Author
There was a problem hiding this comment.
✅ LGTM — cycle (2/3)
Reviewed full diff for P4 (GUI rant panel + list_rants, rant 14:10:14, 367+/5-):
- daemon: list_rants reads _rants_log (daemon.py:176, same file the rant command writes), optional status filter ('' = all, old entries default 'pending'), newest-first sort, corrupt lines skipped, OSError → empty + error frame. +2 tests (filter+order+corrupt-skip, missing-file).
- main.js: emrg:listRants IPC with status validation + 5s timeout; preload/daemon_client wiring; RESPONSE_TYPES list_rants→rants_list (protocol mirrored + tested).
- renderer: rant panel with 4 filter tabs, list rows (timestamp/status badge/project/progress), click-to-expand detail (row.after — test stub updated to real sibling insert), new-rant form (project dropdown via listProjects + sendRant), openRantsPanel follows openTasksPanel pattern.
- i18n: 17 zh/en keys, consistent naming.
- Verified: 2 new daemon tests pass, 779 pytest collected, npm test 236/236 pass, node --check OK, doc-count guard green, CI test+test-windows SUCCESS (31679974507), mergeStateStatus CLEAN.
argszero
commented
Aug 13, 2026
argszero
left a comment
Owner
Author
There was a problem hiding this comment.
✅ LGTM — cycle (3/3)
Third independent-cycle approval. Head 04d55df unchanged; CI test + test-windows PASS (31679974507), mergeStateStatus CLEAN. P4 rant panel + list_rants daemon command, 779 pytest + 236 GUI. Reached 3 consecutive ✅ — merging.
pm25coder
pushed a commit
to pm25coder/emrg
that referenced
this pull request
Aug 13, 2026
This was referenced Aug 13, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
GUI redesign (host rant 2026-08-13T14:10:14) — P4 rant panel.
The sidebar Rant nav entry now opens a functional rant management panel (previously a placeholder).
Daemon (new capability)
list_rantscommand: reads~/.emrg/rants.jsonl, optionalstatusfilter (pending / in_progress / completed / "" = all), newest-first order, corrupt lines skipped, missing file → empty list (never crashes). Response framerants_list.GUI
sendRant(existing IPC), success toast + list refresh.openRantsPanel()lazy-loads on nav open (same pattern as P3/P5 panels); i18n zh/enrants.*keys (incl. data-i18n-placeholder for the textarea, satisfying the Stage-3 Chinese-string guard).IPC chain
emrg:listRantshandler + preload.jslistRants; daemon_client.js RESPONSE_TYPESlist_rants → rants_list.Tests
list_rantsfilter/order/corrupt-skip + missing-file): 777→779.list_rants → rants_list).