You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit d625eda
Browse filesBrowse the repository at this point in the historyBrowse files
Carry each request's answer, who gave it and its delivery through the journal, replay and the phone (CF-6, request half) (#308)
* Record who answered each request and whether the answer reached the CLI
A card is the record of its request across the journal, snapshots, paired desktops and the phone
(CF-6, request half). An accepted answer now saves answeredBy ("desktop" or "phone") and
delivery "sending" before the CLI hears anything, then delivery "sent" after the hand-off. They
travel as whole field values in the existing item events, so the journal stores and replays them
with no new event type.
On a restart, a card still "sending" becomes "uncertain": Modex stopped between taking the answer
and recording its hand-off. The answer is never sent again, and a late answer is refused. The
phone gets answeredBy, delivery and withdrawn on approvals, and a question's notice says when
delivery is uncertain.
test/request-journal.test.ts failed first on each missing field: replay once and twice, a
restart, desktop and phone answering at once (one accepted, the phone's a 409), a paired desktop
resuming after the decision, an expired cursor, a crash mid-send, and a secret kept out of every
file with the journal on.
Refs #279
Coven-Harness: Claude Code / claude-opus-5-5
* Say on a card when the phone answered or delivery is uncertain
answerNote adds "Answered on your phone." under a card the phone answered, and "Modex stopped
before it could confirm the agent received this answer." when delivery is uncertain. An answer
given in the window and sent adds nothing. Its unit test failed first (no such export).
e2e/human-requests.spec.ts runs the Codex question fixture with the journal on, closes Modex,
marks the answered card as if Modex died mid-send, and restarts: the answered and stopped cards
are inert, the uncertain one says so, a second answer is refused, Codex hears nothing more, and no
file holds the secret.
Refs #279
Coven-Harness: Claude Code / claude-opus-5-5
* Document the request lifecycle across replay and reconnect
docs/human-requests.md maps each broker step to the card fields that carry it, and says what a
restart, replay, a late answer, two clients at once, the phone and the window do with them.
docs/event-journal.md points there instead of saying the lifecycle is still to come.
Refs #279
Coven-Harness: Claude Code / claude-opus-5-5
* Let the phone act on threads started on the Mac
Since #181 (v0.0.12), a thread created from a Mac draft keeps the full UUID its draft reserved,
but the companion's thread routes accepted only 8 hex characters. So the phone got a 404 when it
answered an approval, sent a follow-up, set the approval policy or archived any thread started on
the Mac; threads started on the phone, with short ids, worked. CF-8's fidelity e2e found it.
The routes now take any id the store accepts, and the thread must still exist. The new companion
test failed first with 404 for a UUID thread.
Refs #279
Coven-Harness: Claude Code / claude-opus-5-5
* Record CF-6's request half and the phone fix in status
Refs #279
Coven-Harness: Claude Code / claude-opus-5-5
text: `The agent asked: ${item.questions.map((q)=>q.text).join(" · ")}\n${item.answers ? "Answered on your Mac." : item.withdrawn ? "Not answered." : "Answer it in Modex on your Mac."}`};
402
+
text: `The agent asked: ${item.questions.map((q)=>q.text).join(" · ")}\n${item.answers ? (item.delivery==="uncertain" ? "Answered on your Mac; Modex can't tell whether the agent received it." : "Answered on your Mac.") : item.withdrawn ? "Not answered." : "Answer it in Modex on your Mac."}`};
0 commit comments