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"