v0.6.5 — TUI Touchup
What's New
TUI got some love. This is the "TUI Touchup" release — a bunch of things that were slightly annoying are now slightly less annoying.
/help is actually helpful now
The old /h was a wall of text. Every command, dumped in a flat list, hoping you'd find what you needed by vibes.
New version: grouped two-column layout. Keybindings + Core on the left, Persona + Rooms + Extended on the right. Compact enough to actually fit on screen. And if you need the full reference, press m — it opens a proper man page in $PAGER (yes, your $PAGER, whatever you've set it to).
/me can create things now
This was embarrassing. You could edit and delete facts, topics, and people from the TUI. You could not create them. The web app had buttons. The TUI had ¯\_(ツ)_/¯.
Fixed. Each section now includes a commented stub. Uncomment it, fill it in, save — done. No UUID required, one gets generated for you.
Also added filtering while I was in there:
/me fact coffee— shows only facts whose name contains "coffee"/me fact new— opens with just the stub, no existing data in the way- Singular aliases work:
fact,topic,personall accepted
Duration strings in YAML editors
heartbeat_delay_ms: 1800000 is not a number a human should have to read or write. It's now heartbeat_delay_ms: 30m. Same for all _ms fields in /settings and /d. Accepts s, m, h, d, w. Round-trips correctly.
context_window_hours in /d now always shows up (was silently absent when unset). null means "inherit from global settings" — not a snapshot of whatever the default was when you created the persona.
--version flag
ei --version # 0.6.5
ei version # also works
ei -v # also works
Ghost frame / cursor artifact on editor close
After using the app for a while, closing $EDITOR would sometimes leave a painted buffer frame and the cursor stuck at the bottom of the window. Tracked it down to a double-render race — resume() already schedules a render internally, and we were queuing a second one via queueMicrotask that fought with it. Removed the extra call. Seems solid.
Error overlays after $EDITOR weren't showing
YAML parse errors after editing would log correctly but the "Re-edit?" modal would be invisible until something else triggered a repaint (like pressing Ctrl+C). SolidJS needed a microtask to flush the signal before OpenTUI painted. Fixed in showOverlay — applies to all editor-based commands, not just /me.
/editor command clears input on exit
/e or /editor opens $EDITOR with your current input. When you close it — whether you saved something, saved nothing, or hit abort — the input field now clears. Previously it left /editor sitting in the box, which was useless.
Fixed
- Core: fixed a bug where quote links weren't cleaned up when the target was already merged via dedup
- Core: pass resolved record from match handler to update queue, skipping a redundant GUID re-lookup that could fail
- Topic validate phase: post-create near-duplicate detection now runs after new topics are added