- `LIVE_RELOAD=false npm run dev` keeps the renderer alive across a machine suspend; the reload client otherwise destroys the session under test. - `dev-peer.sh` plus a separate userdata dir runs a second local peer. - `tools/voice-probe.js` samples peer state and RTP counters from a live window, persisting to localStorage so a renderer reload cannot erase it. - e2e helpers for voice pairs, peer-role election, and a TURN relay. - Electron single-instance and dev-client-load decisions move into rules files with colocated specs.
3.7 KiB
12 — Agent work packets (copy into new chats)
Each packet is one new chat. Attach
@emergency-fix/00-README.mdplus the listed files.
Say: continue this packet; interview before implement; do not expand scope.
Packet A — Silent foreign auth
Attach
@emergency-fix/00-README.md@emergency-fix/04-auth-login-bugs.md@emergency-fix/11-fix-priority-plan.md(Wave 1)@agents-docs/user-stories/silent-cross-signal-server-auth.md
Goal: Wave 1 — never show authorize login for normal foreign joins when home session is valid.
Out of scope: Voice negotiation, DM canonicalize, server password hashing changes.
First message expectation: Short interview (options A–D from user story); wait.
Packet B — Presence / identify-join
Attach
@emergency-fix/00-README.md@emergency-fix/05-signaling-multi-server.md@emergency-fix/08-messaging-visibility.md(membership section)@emergency-fix/11-fix-priority-plan.md(Wave 2)
Goal: Mutual presence + live chat broadcast after connect/reconnect; foreign actor id on join.
Depends: Packet A ideally done (or mock credentials present).
Out of scope: Soft DC replace, TURN.
Packet C — Outbound call + DM identity
Attach
@emergency-fix/00-README.md@emergency-fix/09-identity-cross-signal.md@emergency-fix/10-code-lies-doc-debt.md(L2, L3)@emergency-fix/11-fix-priority-plan.md(Wave 3)
Goal: Routable outbound targetUserId; unreachable UX; single DM thread across aliases; fix phantom LESSON references when shipping.
Out of scope: Auth provision secret (Packet A); full voice ICE redesign.
Note: LESSONS claim these fixes already exist — they do not. Implement, don’t search forever.
Packet D — Voice initiator & routing
Attach
@emergency-fix/00-README.md@emergency-fix/06-voice-webrtc-bugs.md@emergency-fix/03-architecture-map.md@emergency-fix/11-fix-priority-plan.md(Wave 4)
Goal: Cross-home bidirectional voice; per-signal actor initiator election; reconnect UX; TURN product decision.
Depends: A + B strongly; C helpful.
Out of scope: Rewriting entire PeerConnectionManager; server relay policy changes unless proven necessary (ask).
Packet E — Data channel recovery
Attach
@emergency-fix/00-README.md@emergency-fix/07-data-channel-drops.md@emergency-fix/10-code-lies-doc-debt.md(L1)@emergency-fix/11-fix-priority-plan.md(Wave 5)
Goal: Honest recovery (soft replace or documented full rebuild + UX + forced resync); docs match code.
Interview required: Option A vs B in 07.
Packet F — Messaging catch-up & attachments
Attach
@emergency-fix/00-README.md@emergency-fix/08-messaging-visibility.md@emergency-fix/11-fix-priority-plan.md(Wave 6)- Optional:
agents-docs/features/messaging.md,agents-docs/features/attachments.md
Goal: Late-join history; attachment waiting stuck fixed under reorder; README inventory cap corrected.
Depends: B + E.
Packet G — Doc debt sweep
Attach
@emergency-fix/10-code-lies-doc-debt.md@emergency-fix/11-fix-priority-plan.md(Wave 7)
Goal: Clear remaining L5–L7 and any lies left after A–F; no behavior changes unless a one-line comment/doc only.
Handoff one-liner templates
After finishing a packet, overwrite agents-docs/HANDOFF.md and ask the user to start a new chat with:
Continue from @agents-docs/HANDOFF.md and @emergency-fix/11-fix-priority-plan.md — next unchecked wave only.
Or jump packets:
Start @emergency-fix/12-agent-work-packets.md Packet C — interview before implement.