Audit and resolve Sarah memory, voice, session, and control gaps #89

Closed AtlantisPleb opened this 23h ago 1 comment

Outcome

Reproduce and resolve the concrete Sarah defects identified during the production launch, using one issue to track evidence and separate child changes where needed.

Current behavior

Episode 270 identified automatic-memory, voice-tool visibility, tool-loop, session, delete-memory authorization, and leaderboard preference gaps. The current board does not record whether each gap remains reproducible or has shipped since the episode.

Source: docs/episode-triage.md, episode 270 and batch 6 integration notes.

Work

  • Verify whether automatic memory saves occur with visible consent and version history.
  • Show voice tool calls and results in the same ordered activity stream as text.
  • Replace the hard-coded four-tool-call cap with a budgeted, visible loop limit and typed terminal reason.
  • Define voice session timeout, reconnect, resume, and failure behavior.
  • Reproduce and fix delete-memory authorization across owners and versions.
  • Add a leaderboard opt-out and remove opted-out accounts from public projections.
  • File child issues for independently deployable fixes and link exact evidence.

Acceptance criteria

  • Each reported gap has a current reproduction or a linked production receipt proving it no longer exists.
  • Text and voice expose the same tool authority, ordered events, cancellation, and terminal reasons.
  • One owner cannot read, delete, restore, or infer another owner's memory.
  • Tool limits fail visibly and never describe a truncated run as complete.
  • Leaderboard opt-out takes effect across web, API, cache, and analytics projections.

Verification

Use focused LiveView, voice, memory authorization, recovery, budget, preference, and privacy tests. Run exact-candidate browser qualification and mix precommit.

Dependencies

Coordinate chat work with #55 and the shared tool runtime.

  1. AtlantisPleb opened this issue 23h ago
  2. A AtlantisPleb Author 19h ago

    Fixed in c896ce8.

    Voice tool steps now join to their assistant message through the voice response receipt, so text and voice share one ordered activity list that survives a reload. The voice tool-call budget records a terminal refused step carrying tool_call_limit_reached, so a truncated call no longer reads back as complete. The leaderboard preference is now writable from /memory and invalidates the cached projection on every change. The /memory return control navigated nowhere and now goes to /sarah.

    Memory consent, version history, voice timeout/reconnect/failure, and cross-owner memory authorization already held; they now have tests naming the reported behavior. Evidence per gap: docs/2026-08-23-sarah-memory-voice-session-control-audit.md.

  3. closed this as completed 19h ago
Sign in with GitHub to comment on this issue.