KHAELOR — Dogfood Notes
Per CLAUDE.md §22: KHAELOR must be developed using KHAELOR as soon as it is sufficiently functional. This journal records friction, unexpected behavior, latency, UI annoyances, agent failures, context failures, and permission annoyances. Small UX friction is a real bug.
Entry format:
## YYYY-MM-DD — <short title>
Context: what was being done
Friction: what felt wrong (with numbers where possible)
Severity: annoyance | slowdown | blocker
Action: issue filed / fixed in <commit> / open2026-08-09 — Journal opened
First functional end-to-end assembly of V1 (CLI wiring in progress). No dogfood sessions run yet — entries begin with the first real KHAELOR-on-KHAELOR session.
2026-08-09 — Typed text invisible while composing
Context: First real interactive run (npx tsx src/cli/main.ts / installed khaelor).
Friction: Keystrokes produced no visible echo — typed text only appeared after Enter,
when the submitted message settled into scrollback. Root cause: key handling
mutated composer state but never set the renderer's dirty flag, so the
post-keystroke flushNow() hit the "nothing dirty, nothing settled" early
return and painted nothing. Echo only worked while a stream happened to be
repainting anyway. Reproduced under a real PTY (expect): 0 repaint bytes
after typing while idle.
Severity: blocker
Action: fixed — stdin key dispatch now marks the live region dirty before the
immediate flush; regression covered by tests/tui/pty-echo.test.ts (PTY
integration, asserts echo before Enter). Same session: composer promoted
to the bordered box per TUI_DESIGN §3.1.