From c460e4b3aa1d08d76e222943d9ed73446dc5acbf Mon Sep 17 00:00:00 2001 From: EMRG Evolution Date: Thu, 6 Aug 2026 08:47:11 +0800 Subject: [PATCH] =?UTF-8?q?emrg:=20daemon=20rant=20handler=20=E8=A1=A5=20c?= =?UTF-8?q?ompleted=20=E5=AD=97=E6=AE=B5=20=E2=80=94=20=E5=AF=B9=E9=BD=90?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E5=BA=8F=E8=A7=84=E8=8C=83=EF=BC=88timestamp?= =?UTF-8?q?=E2=86=92project=E2=86=92status=E2=86=92progress=E2=86=92comple?= =?UTF-8?q?ted=E2=86=92message=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- emrg/server/daemon.py | 3 ++- tests/test_daemon.py | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/emrg/server/daemon.py b/emrg/server/daemon.py index 4aa9bf15..33e3c03d 100644 --- a/emrg/server/daemon.py +++ b/emrg/server/daemon.py @@ -793,13 +793,14 @@ async def _process_message( # Optional project targeting (multi-project support) project = msg.get("project", "").strip() - # Field order: timestamp → project → status → progress → message + # Field order: timestamp → project → status → progress → completed → message # (project right after timestamp per user feedback; message last) entry = { "timestamp": msg.get("timestamp", datetime.now().isoformat()), "project": project, "status": "pending", "progress": None, + "completed": None, } # message last, so status fields stay visible when scanning the file entry["message"] = rant_message diff --git a/tests/test_daemon.py b/tests/test_daemon.py index 76d0ff00..5e22f457 100644 --- a/tests/test_daemon.py +++ b/tests/test_daemon.py @@ -491,7 +491,7 @@ async def _send(self, data: dict) -> bool: def test_rant_field_order(tmp_path, monkeypatch): """Rant entries are written with field order: - timestamp → project → status → progress → message (message last).""" + timestamp → project → status → progress → completed → message (message last).""" monkeypatch.setattr("emrg.server.daemon.config_dir", lambda: tmp_path) server = _make_server() writer = _FakeWriter() @@ -508,8 +508,9 @@ def test_rant_field_order(tmp_path, monkeypatch): assert len(lines) == 1 entry = json.loads(lines[0]) assert list(entry.keys()) == [ - "timestamp", "project", "status", "progress", "message", + "timestamp", "project", "status", "progress", "completed", "message", ] + assert entry["completed"] is None # new rants default to null completed assert entry["project"] == "emrg" assert entry["status"] == "pending" assert entry["message"] == "test rant message"