spb/khaelor Public
KHAELOR — a terminal-native autonomous engineering agent powered by Anthropic.
TypeScript 82.9%
HTML 14.9%
CSS 1.1%
JavaScript 0.7%
1<!--2KHAELOR3File: docs/DOGFOOD_NOTES.md4Author: Simon-Pierre Boucher5Contact: contact@spboucher.ai6-->78# KHAELOR — Dogfood Notes910Per CLAUDE.md §22: KHAELOR must be developed using KHAELOR as soon as it is sufficiently11functional. This journal records friction, unexpected behavior, latency, UI annoyances,12agent failures, context failures, and permission annoyances. Small UX friction is a real bug.1314Entry format:1516```17## YYYY-MM-DD — <short title>18Context: what was being done19Friction: what felt wrong (with numbers where possible)20Severity: annoyance | slowdown | blocker21Action: issue filed / fixed in <commit> / open22```2324---2526## 2026-08-09 — Journal opened2728First functional end-to-end assembly of V1 (CLI wiring in progress). No dogfood sessions29run yet — entries begin with the first real KHAELOR-on-KHAELOR session.3031## 2026-08-09 — Typed text invisible while composing3233Context: First real interactive run (`npx tsx src/cli/main.ts` / installed `khaelor`).34Friction: Keystrokes produced no visible echo — typed text only appeared after Enter,35 when the submitted message settled into scrollback. Root cause: key handling36 mutated composer state but never set the renderer's dirty flag, so the37 post-keystroke `flushNow()` hit the "nothing dirty, nothing settled" early38 return and painted nothing. Echo only worked while a stream happened to be39 repainting anyway. Reproduced under a real PTY (expect): 0 repaint bytes40 after typing while idle.41Severity: blocker42Action: fixed — stdin key dispatch now marks the live region dirty before the43 immediate flush; regression covered by tests/tui/pty-echo.test.ts (PTY44 integration, asserts echo before Enter). Same session: composer promoted45 to the bordered box per TUI_DESIGN §3.1.46