# 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 — Context: what was being done Friction: what felt wrong (with numbers where possible) Severity: annoyance | slowdown | blocker Action: issue filed / fixed in / open ``` --- ## 2026-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.