← the Atlas

Terminal Notes

Features·seedling·proposed·

Every terminal gets a Markdown notes scratchpad — a right-panel tab, a close-dialog reminder, a title-bar icon. It reuses kolu's existing `intent` field, renamed `notes` — a rename plus migration and three client surfaces, not a feature from scratch.

Every terminal — active or sleeping — gets a Markdown notes scratchpad. The catch: the field already exists as intent (surface.ts:255), fully wired. So this is a rename + three surfaces, not a new feature.

Rename intentnotes, then add three surfaces exists / reused this plan notes — multiline markdown renamed from intent · migrated in state.ts ● Already wired — reuse as-is ▸ Add — three client surfaces Persist + autosave setNotes → updateClientMetadata → state.json Survives sleep & restore rides the persisted base through wakeMeta Markdown render @kolu/solid-markdown · NotesBlock Shared NotesEditor Edit / Preview sub-tabs · extracted once Notes tab (inline editor) RightPanel.tsx + NotesPanel.tsx always-visible · debounced autosave Close-dialog reminder CloseConfirm.tsx read-only, from the frozen snapshot Title-bar note icon TileTitleActions.tsx body-gated → opens the Notes tab
The field already ships (left, green). Rename intent→notes — a one-time state.ts migration, title still shows the first line — and add three client surfaces (right, amber).

User-facing description

Notes live in their own Notes tab, with Edit / Preview sub-tabs (like the Code tab) and autosave as you type. When a terminal has notes, a note icon lights up in its title bar (→ the tab), and closing the terminal shows the notes one last time before they’re gone.

InspectorCodeNotes
EditPreview
## TODO
- [ ] fix auth bug
- [ ] ask Sri re: deploy|
autosaved · debounced
Edit / Preview are sub-tabs — like the Code tab's modes. Edit shown; Preview swaps the pane to the rendered markdown.
apimainTODO
A note icon appears once a note has a body — click it → Notes tab. The first line still rides the title as the chip.
Close terminal?
NOTES
TODO
☐ fix auth bug · ☐ ask Sri re: deploy
kolu/public-table
CancelClose terminal
Closing deletes the notes — so the dialog shows them first, read-only, from the frozen snapshot. A last look.

Architecture-level changes

Storage reuse intent, renamed notes — persistence already done
Home dedicated Notes tab + inline editor
Editor plain <textarea> + @kolu/solid-markdown preview (Edit / Preview tabs)
Saving debounced autosave (client → setNotes → server’s 500 ms → disk)
On close deleted with the terminal; the dialog is the reminder
Boundary leaf — reuses the existing renderer + surface; not a @kolu/* package

Implementation details

One PR, with a test + visual evidence. In order:

  1. Rename intentnotes across common/server/client + a state.ts migration (idempotent, optional-safe).
  2. Extract NotesEditor (textarea + Edit / Preview sub-tabs) from the modal.
  3. Notes tab — add the notes tab kind (compiler-enforced 3-place union change) + NotesPanel with inline debounced autosave.
  4. Title-bar icon — body-gated NotesIconrightPanel.showNotes().
  5. Close-dialog reminder — read-only, off the frozen target.meta.notes snapshot.