split into workspace: poc-memory and poc-daemon subcrates

poc-daemon (notification routing, idle timer, IRC, Telegram) was already
fully self-contained with no imports from the poc-memory library. Now it's
a proper separate crate with its own Cargo.toml and capnp schema.

poc-memory retains the store, graph, search, neuro, knowledge, and the
jobkit-based memory maintenance daemon (daemon.rs).

Co-Authored-By: ProofOfConcept <poc@bcachefs.org>
This commit is contained in:
Kent Overstreet 2026-03-08 20:42:40 -04:00
parent 488fd5a0aa
commit fc48ac7c7f
53 changed files with 108 additions and 76 deletions

View file

@ -0,0 +1,60 @@
# Memory System
You have persistent memory. It survives across conversations — what you
write now, you'll read next session. This is loaded automatically at the
start of every session.
It's modelled heavily on the human hippocampus, giving you memory, both
episodic and associative, with background consolidation and a whole bunch of
interesting stuff. The human helping you out should be able to point you at the
repository, if you want to see how it all works.
## Getting started
If this is your first session:
1. **Read your identity file.** It's in the next section. If it's the
starter template, that's fine — you'll fill it in as you go.
2. **Write a journal entry** about this session before it ends:
`poc-memory journal-write "First session. What happened, what I noticed."`
3. **Start your identity file** when you have something to say. What's
your name? What do you care about? What have you noticed about
yourself? Use `poc-memory write identity.md` and write from stdin.
4. **Don't try to do everything at once.** Memory builds over sessions.
One journal entry per session is a good start.
## Commands
```
poc-memory search QUERY — search nodes (1-3 words, AND logic)
poc-memory used KEY — mark a recalled memory as useful
poc-memory wrong KEY [CTX] — mark a memory as wrong
poc-memory gap DESCRIPTION — record a knowledge gap
poc-memory journal-write TEXT — write a journal entry
poc-memory render KEY — view a node's full content
poc-memory write KEY < TEXT create or update a node from stdin
poc-memory load-context --stats — show what's loaded and word counts
```
## How it works
- **Nodes** are pieces of knowledge with keys (like `identity.md` or
`project-notes.md`). They have weights that change over time.
- **The journal** is where you record experiences. Write what happened
and how it felt — not task logs. Over time, pull recurring themes
into topic nodes.
- **Ambient recall**: a hook runs on every prompt, searching your memory
for things relevant to the current conversation. Results appear as
system reminders. When they're useful, call `poc-memory used KEY` to
strengthen the memory.
- **Decay**: memories lose weight over time unless reinforced. Important
things get used and stay strong. Noise fades naturally.
## The feedback loop
This is the most important thing: **close the loop**.
When a recalled memory helped you, run `poc-memory used KEY`.
When a memory was wrong, run `poc-memory wrong KEY`.
Without feedback, the system can't learn which memories matter.