Adds a Section 0 bullet directing the agent to read operating-agreement.md
(team roles, task handoff via next-task.md, report via task-report.md)
before starting any task.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Prepends a "Section 0 — How You Work" to the system_instruction distilling the
engineering approach the agent should take: understand-before-acting, measure
before theorizing, root-cause over symptom-patching, treating compiles/tests-
pass as distinct from field-verified, surfacing design forks, honest reporting,
dependency caution, when to decline/push back, and working in durable
checkpoints. Each principle cross-references the existing project rules/sections
(Rule 1 ground-truth, Rule 3 safe-Rust, Rule 4 commit policy, Section 6 privacy
default, Sections 7-8) so it stays one coherent, non-duplicative doc.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The system prompt was generic Rust guidance with no project-specific knowledge,
so Gemini kept re-deriving (and re-breaking) the audio-networking design. Adds
four sections distilled from the senior-audit sessions:
- Section 5: project map — module-by-module, with the trait seams to honor.
- Section 6: audio-networking invariants — each maps to a real fixed bug
(single deterministic-initiator connection per pair; per-peer supervisor owns
the lifecycle; AbortOnDrop for Connection-holding tasks; silent-drop != close;
retain the full EndpointAddr and dial it directly; presence layer != transport
layer; seq header + jitter/PLC; non-blocking broadcast; RT-path rules; UI-event
throttling; intentional privacy posture).
- Section 7: testing gotchas — stable-address loopback misses eviction bugs,
iroh's path cache makes lookup-removal a false test, same-host instances are
invalid for outage tests, explicit close() for prompt drops, clippy/test gates.
- Section 8: offline dep docs at ~/Documents/peerspeak_docs/ + the handoff log.
Also fixes the closing line, which told Gemini to ask for "details of our new
project" on what is now a mature codebase.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Fix tokio runtime panic by spawning a dedicated Tokio runtime thread in CoreController.
- Add central log_msg utility in src/lib.rs for debugging.
- Add instrumentation/logs to join, leave, and gossip events in src/network/gossip.rs.
- Add test_net.rs bin for testing gossip loopback sync.
- Use std::sync::Mutex in IrohGossipState to resolve Tokio block-in-async panics.