Skip to content

feat: one tree of pages, and an agent that remembers what you keep asking for - #16

Merged
meocong merged 1 commit into
masterfrom
feat/pages-and-memory
Aug 14, 2026
Merged

feat: one tree of pages, and an agent that remembers what you keep asking for#16
meocong merged 1 commit into
masterfrom
feat/pages-and-memory

Conversation

@meocong

@meocong meocong commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

Three corrections, which turn out to be one.

Writing the email was never a feature

It had a panel of its own — four shapes, three tones — and that shape was wrong for the job. Drafting the follow-up is one of the things a person asks for, and what comes back is a note. A fixed menu of four could only ever be wrong for the fifth thing somebody wanted.

compose.rs, its two routes, its prompt shapes, its client and its panel are deleted: ~470 lines. What it did still works, through the agent, which was the right path for it from the start. In its place, on the note itself: a sentence box.

Everything is a note

A recording is a note that happens to have audio and a transcript attached. That is what the vault has always stored; the interface kept saying otherwise by filing recordings in one place and typed notes in another.

The sidebar now lists pages of both kinds inside the folders the user made:

  • expand a folder, see what is in it, click to open;
  • + on a folder, or Trang mới at the bottom, makes a page there;
  • pages nobody has filed sit at the top level rather than being invisible until they are;
  • a small icon is the only thing distinguishing a recording from a typed note, which is the right amount of distinction.

Notes became linkable (/notes?open=) along the way — without that the tree could list every page and open none of them.

The agent remembers what you keep asking for

summo_agent::habits writes down every instruction given to an agent: the date, the words as typed, the note it was about. Asked twice, it becomes a habit, and then two things happen:

  1. the words come back as a button, so the fourth report costs a click instead of a paragraph;
  2. the model is told what this person keeps asking for, so the fourth report looks like the first three — which is the actual complaint people have about assistants.

vault/agents/HABITS.md, ordinary Markdown, one bullet per ask. Delete a line and the habit is forgotten — asserted in the browser suite, because a memory the user cannot delete is the kind nobody wants.

Two is the threshold: one is a Tuesday; five arrives long after the person has given up and started doing it by hand. Only what they typed is stored, never a conclusion about them — a file of guesses nobody can check would quietly steer every answer afterwards.

Verified

Full Rust suite, 297 web tests, 18 browser suites including a new pages.mjs that expands the tree, opens a page, makes one, sees a habit offered after two asks and not after one, and confirms a deleted line is forgotten.

🤖 Generated with Claude Code

…king for

Three corrections, and they are the same correction.

**Writing the follow-up email was not a feature.** It had a panel of its own with four
shapes and three tones, which could only ever be wrong for the fifth thing somebody
wanted. It is one of the things people ask for, and what comes back is a note. So
`compose.rs`, its two routes, its prompt shapes and its panel are gone, replaced by a
sentence box on the note itself. 470 lines deleted, and the thing it did still works —
through the agent, which was always the right path for it.

**Everything is a note.** A recording is a note that has audio and a transcript attached;
that is the model the vault has always had, and the interface kept contradicting it by
filing recordings in one place and typed notes in another. The sidebar now lists pages of
both kinds in the folders the user made, the way pages sit in Notion: expand a folder, see
what is in it, click to open, `+` to make one there or at the root. Unfiled pages sit at
the top level rather than being invisible until somebody files them.

**The agent remembers what you keep asking for.** `summo_agent::habits` writes down every
instruction given to an agent — the date, the words, the note it was about. Anything asked
twice becomes a habit: offered back as a button so the fourth report costs a click instead
of a paragraph, and given to the model so the fourth report *looks* like the first three,
which is the actual complaint people have about assistants.

It is `vault/agents/HABITS.md`, ordinary Markdown, one bullet per ask. Delete a line and
the habit is forgotten — asserted in a browser test, because a memory the user cannot
delete is the kind nobody wants. Two is the threshold: one is a Tuesday, five arrives long
after the person has given up and started doing it by hand. What is stored is what they
typed, never a conclusion about them — a file of guesses nobody can check would quietly
steer every answer afterwards.

Notes also became linkable (`/notes?open=`), which is what lets the tree open one at all.

Verified: full Rust suite, 297 web tests, 18 browser suites including a new `pages.mjs`
that drives the tree, makes a page from it, and checks that a deleted line is a forgotten
habit.
@meocong
meocong merged commit c25eb7d into master Aug 14, 2026
10 checks passed
@meocong
meocong deleted the feat/pages-and-memory branch August 14, 2026 08:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant