Commit Graph

1968 Commits

Author SHA1 Message Date
Joel Hooks 7372539b0c wayfinder: voice recall unblocked, brief written
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 09:25:53 -07:00
Joel Hooks a71668063c wayfinder: observation recall shipped and closed
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 09:25:53 -07:00
Joel Hooks a5e84e6f82 feat(cli): observation-layer recall — observations index + sessions search defaults to distilled layer
Built by pi worker (Knackered Stratford) per build-observations-recall-typesense;
reviewed by steering: 75 observations indexed (rebuildable projection, files are
truth); sessions search returns gists + canonical brain.joelclaw.com URLs with
sensitive labeling, --raw preserves chunk search; stale dark-wizard ssh default
fixed. tsc clean; biome clean on touched package (repo-wide blocked by
pre-existing unrelated import-order errors).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 09:25:53 -07:00
Joel Hooks 4318b988c2 wayfinder: voice observation recall ticket — speech-formatted, fail-soft, sensitive-by-caller, heavily tested
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 09:25:53 -07:00
Joel Hooks e0f8d776fb wayfinder: recall fog graduated — observations Typesense projection + sessions-search replacement ticket
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 09:25:53 -07:00
Joel Hooks 1a5bfc0391 brain: transcript-fidelity gap noted on observation-pipeline ticket
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 09:25:53 -07:00
Joel Hooks 945d7e4655 voice-agent: transcript fidelity — synthetic prompts filtered, loop counts aligned
From the full transcript sweep: (1) greeting/wrap instructions were saved as
Joel's words and fed the memory pipeline — now filtered in _history_lines;
(2) greeting context sliced [:6] while the tool showed [:8] ('Eight actually
— I undercounted') — aligned at 8 with an honest 'plus N more' tail.
Known gap, not blind-fixed tonight: interrupted/list assistant turns lose
content in saved history (LiveKit spoken-sync truncation) — logged for the
observation-pipeline ticket.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 09:25:53 -07:00
Joel Hooks 04e05cb515 wayfinder: prototype interim findings — chunking, staleness ranking, completeness gate, ledger gap, mdsvex escaping
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 09:25:53 -07:00
Joel Hooks 2e4a273dc0 voice-agent: loop_detail fuzzy match + self-healing menu + tool routing
Real-call bafflement: 'What are they?' about a loop the agent itself raised
went to vault search and whiffed. loop_detail now token-overlap matches any
paraphrase (scores title+project+whyItMatters), returns the actual loop menu
on miss (retry silently), and both its docstring and the open_loops header
route detail questions to it explicitly — not recall, not vault.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 09:25:53 -07:00
Joel Hooks 13fe9b5bf9 voice-agent: thinking cover over tool chains — no more silent 22s lookups
Real private-call receipts: 3-4 silent LLM+tool rounds before any audio
(worst 22s mute), while EOU (0.35-0.47s) and TTS (0.2s) held spec. Fixes:
- _run() shell-outs fire a short spoken filler through the live session
  (one per 8s window, thread-safe via call_soon_threadsafe) — the research's
  thinking-signal doctrine enforced mechanically at the choke point
- voice rule: ONE tool call then talk; narrate between genuine multi-lookups
Remaining lever: TTFT creep (1.2s -> 5.4s spikes late-call) is the
fast-loop-model experiment, Joel's call via llm.model in local config.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 09:25:53 -07:00
Joel Hooks 5f625721a4 wayfinder: observer final architecture — sol orchestrator commanding terra worker panes, ds4 for classify
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 09:25:53 -07:00
Joel Hooks 918132282e wayfinder: topology amended — terra is the distiller, ds4 demoted to cheap classify jobs (measured 9min/batch)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 09:25:53 -07:00
Joel Hooks 54f82e371c voice-agent: open loops speak human — no tracker notation ever
Real-call complaint: loop lists came out as abbreviated jargon needing a
'repeat that in human' follow-up. _loop_brief now emits plain spoken prose
(slugs become words, flags become sentences), the tool header shows an
example transformation instead of just asking for plainness, and the voice
rules ban tracker notation aloud globally.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 09:25:53 -07:00
Joel Hooks 43876f0146 map: reflector = edge-preserving graph compaction (Joel's node-cluster frame), temporal gradient named
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 09:25:53 -07:00
Joel Hooks b199b92cd9 decision: files are truth, databases are projections — recorded with exit triggers, linked from observational-memory map
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 09:25:53 -07:00
Joel Hooks b4dbc8f515 wayfinder: redaction boundary resolved — all work observed, sensitive never rendered, secrets never persist
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 09:25:53 -07:00
Joel Hooks 49994fb236 wayfinder: observation schema v1 approved and closed
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 09:25:53 -07:00
Joel Hooks 53b5e174c6 wayfinder: observer topology resolved — headless herdr session on flagg, ds4-central local inference
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 09:25:53 -07:00
Joel Hooks 56120ed1a6 wayfinder: gpt-5.6-terra named as observer frontier comparator
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 09:25:53 -07:00
Joel Hooks b637ebdf91 wayfinder: observer topology grilling notes — flagg ds4-central direction + receipts
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 09:25:53 -07:00
Joel Hooks dc81798ac3 wayfinder: capture-coverage research resolved — matrix w/ receipts; codex delivery ticket graduated
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 09:25:53 -07:00
Joel Hooks c0e5355200 wayfinder: brain page renderer shipped — ticket closed, graph map updated
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 09:25:53 -07:00
Joel Hooks bcb8f487f7 chore: brain-svx baseline to repo root
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 09:25:53 -07:00
Joel Hooks 31f2b6dd09 brain: cross-root walk LIVE on brain.joelclaw.com — 235/235 pages, content-verified; stuck-loading root cause recorded
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 09:25:53 -07:00
Joel Hooks d37254590e wayfinder: link observational-memory map from graph map
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 09:25:53 -07:00
Joel Hooks 684520efc9 wayfinder: chart the observational-memory write-loop map — 5 frontier tickets
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 09:25:52 -07:00
Joel Hooks 4d7fea5884 voice-agent: ShitRat remembers its callers — public caller cards
Returning callers get greeted like mates: per-caller memory (count, dates,
last-exchange tail) keyed by caller hash, stored INSIDE the quarantine zone
and loaded only into public sessions — the private-memory invariant holds by
construction. Card content injected as conversation history, explicitly
never-instructions. First-time callers keep the instant canned openers.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 09:25:52 -07:00
Joel Hooks cba4e12e0d brain: workroom-binding design input — session resume/forking by voice, Mastra-bar context
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 09:25:52 -07:00
Joel Hooks b8e8d67604 voice-agent: conversation craft tuned from real caller transcripts
Findings from the first public-post calls, applied to BOTH personas:
- wiki_page misses now return the real slug list — model self-corrects
  silently instead of narrating tool trouble
- 'hello?' no longer triggers a verbatim opener+disclosure repeat
- interrupted lines resume, never restart
- story requests get actual stories (deep-cuts/lore/recall)
- TEACH MODE on both lines (adapted from mattpocock/skills teach):
  mission question first, one scoped idea per exchange, ELI5-but-technical,
  source-grounded, comprehension check before stacking; private line offers
  quick_note/add_task capture so lessons survive the call

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 09:25:52 -07:00
Joel Hooks b6cff256c0 brain: live-ship receipt — 43/235 brain pages prerendered silently, joelclaw root absent; flagged to renderer effort
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 09:25:52 -07:00
Joel Hooks 1001ac885c voice-agent: 50 canned ShitRat openers, spoken via say() — zero LLM wait
Random cheeky self-intro per call from a Joel-editable file, disclosure
enforced in code, generate_reply fallback if the file vanishes. First audio
now lands at TTS speed instead of TTS+LLM.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 09:25:52 -07:00
Joel Hooks bf6751069d brain: first cross-root wikilinks written into the map; prototype walk receipts — all six acceptance items demonstrated on dev
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 09:25:52 -07:00
Joel Hooks c0aa515ea8 voice-agent: public greeting introduces itself — ShitRat, Joel Hooks' AI
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 09:25:52 -07:00
Joel Hooks 49844549cc voice-agent: public brain served from committed HEAD only — review is the gate
Workers draft in the working tree; git show HEAD: means nothing reaches a
caller until reviewed and committed. Empty repo falls back to the v1 seed.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 09:25:52 -07:00
Joel Hooks eae34876e7 chore: brain-svx ratchet baseline (5 grandfathered data receipts)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 09:25:52 -07:00
Joel Hooks e74d4f3e7a voice-agent: ShitRat loses the training wheels — edgy, harsh, no 'gently'
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 09:25:52 -07:00
Joel Hooks 96b695583c voice-agent: public persona — pages are fuel for banter, never a script
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 09:25:52 -07:00
Joel Hooks 963ecca0a5 wayfinder: privacy + rendering-model tickets resolved; renderer/toolbar/retire-studio execution tickets charted
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 09:25:52 -07:00
Joel Hooks e5d6c15183 voice-agent: public line reads the shitrat-brain wiki; greeting-first short disclosure
- _load_public_context prefers shitrat-brain/index.svx (public repo), falls
  back to public-context.md; PublicDocentAgent gets exactly one tool —
  wiki_page(slug), path-confined read-only zoom into pages/
- disclosure moves after the greeting and shrinks to one breath

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 09:25:52 -07:00
Joel Hooks d14cdb8549 voice-agent: public line carries a curated wiki of Joel's projects + research
public-context.md is the publication boundary made concrete: a git-tracked,
human-reviewed file — the only channel project knowledge crosses to strangers.
Read fresh per call; headline-then-zoom speaking contract; persona rebalanced
away from call-infrastructure navel-gazing.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 09:25:52 -07:00
Joel Hooks e8357547b4 voice: convex call tracking, quality analyzer, live dashboard
Built by a pi worker in a herdr pane (brief in .brain/data/tasks/), wired and
verified by the steering session end-to-end: public call → session + turn rows
in local Convex (tier-tagged, heartbeat liveness, 7-day purge) → hangup →
voice/public-call.completed → analyzer writes objective stats (judge: pending,
TODO pi-path rubric).

- infra/voice-agent/call_tracker.py: fire-and-forget Convex writes (1s timeout,
  circuit breaker, caller hashing); wired into all four session tiers
- apps/live-dashboard: Vite+React reactive dashboard (active calls, latency,
  analyses, transcript tails); schema deployed to local Convex :3210
- voice-public-call-analyze registered host-role; CONVEX_URL defaults localhost

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 09:25:52 -07:00
Joel Hooks bbca91e9bb brain: close change-ledger ticket — Pi mutations ledger live on flagg, deterministic session→commit attribution proven
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 09:25:52 -07:00
Joel Hooks 4c58ddfb03 voice-agent: ephemeral health port — orphaned worker on :8081 caused EOU stalls
An orphaned worker generation squatted the fixed health port, crash-looping
launchd respawns for 20 min while itself serving calls with a dead inference
executor — every end-of-turn prediction errored and stalled the reply.
port=0 makes the failure class unreachable; orphan killed, single generation
verified, public synthetic call clean (eou 0.35s, no prediction errors).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 09:25:52 -07:00
Joel Hooks d085910920 brain: rubric v1 approved by Joel; change-ledger ticket go — claimed by wJ:p5 worker
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 09:25:52 -07:00
Joel Hooks 46fd1093e8 voice-agent: public docent line on +1 360 925 8342
pubcall- rooms (new LiveKit trunk ST_Br8aw4xjvZxp, dispatch SDR_LvmgmL2a4mdD,
Telnyx connection 3002616705122829572 with channel_limit=2) route to a public
persona: AI+recording disclosure first words, curated docent context, hard
privacy walls, zero tools, 10-min cap, same turn-detector/preemptive UX as
the private line (this line IS the benchmark). Transcripts quarantine to
voice/public/ and fire voice/public-call.completed for quality analysis —
never the memory pipeline.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 09:25:52 -07:00
Joel Hooks 5cbf8ded9a brain: close brainbench graph leg — schema-v2 baseline recorded, honest failure list is the value
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 09:25:52 -07:00
Joel Hooks a238d10bb4 brain: convex live-dashboard design input on voice observation ticket
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 09:25:52 -07:00
Joel Hooks b272d06be8 brain: map decisions line for session change-edges closure
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 09:25:52 -07:00
Joel Hooks a255c52f7f brain: close session change-edges (Phase 1 fails honestly — capture contract defined); charter change-ledger ticket; claim brainbench graph leg
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 09:25:52 -07:00
Joel Hooks fd67937d8c brain: close graph/Typesense boundary (proposes/disposes contract); graduate session change-edges + brainbench graph-quality tickets
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 09:25:52 -07:00