feat(observer): observer_recall skill — "what was I doing?" everywhere#243
Merged
Conversation
…rywhere
CODEC's observer watches active window / screen OCR / clipboard / recent files,
but the buffer was RAM-only inside the codec-observer daemon, so chat, voice and
terminal (separate processes) couldn't read it — asking "what was I doing 20
minutes ago?" got "I don't have an observer skill".
- codec_observer.py: the daemon now mirrors its ring buffer to
~/.codec/observer_buffer.json every poll (atomic, best-effort, never breaks the
loop). Local + user-private, same trust boundary as the rest of ~/.codec.
- skills/observer_recall.py: reads that file, parses the asked-for window
("20 minutes ago", "the last hour", "just now", plurals), filters, and gives a
human timeline (apps in order, files touched, on-screen excerpt). Honest when
the window is older than the ~10-min buffer. SKILL_MCP_EXPOSE=False (recalls the
user's screen activity — not for remote callers). Triggers: "what was I doing",
"my recent activity", "observer", etc.
Verified END TO END: restarted codec-observer, it wrote a real buffer file within
seconds; a FRESH process then recalled "Files touched: codec_observer.py, skills,
tests" — exactly the current work, proving cross-process recall. Registered in
dispatch (88 skills). 6 tests. D-1 manifest regenerated. ruff clean.
Live-test: in CODEC chat / voice / terminal, ask "what was I doing 10 minutes
ago?" — it now answers from the observer buffer everywhere, not just one surface.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
AVADSA25
force-pushed
the
claude/observer-recall
branch
from
July 13, 2026 14:43
580e01e to
ba67a34
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The observer buffer was RAM-only in the codec-observer daemon, so chat/voice/terminal couldn't read it ('I don't have an observer skill'). The daemon now mirrors it to ~/.codec/observer_buffer.json and a new observer_recall skill reads it, filters by time window, and summarizes. Verified end to end: a fresh process recalled the live activity. 6 tests, manifest regenerated.