diff --git a/TODO.md b/TODO.md index 4764939..43b1836 100644 --- a/TODO.md +++ b/TODO.md @@ -3,8 +3,8 @@ > Plan lengkap migrasi in-place dari Rust (11 crate, clean architecture 4 lapis) ke monorepo > TypeScript/Bun. Bahasa Indonesia, commit pakai Conventional Commits. > -> **Status:** Fase 0–2 + 3a–3g **selesai**; Fase 4 CLI **selesai**; Fase 5 **semua {api,daemon,ws,grpc,web} selesai**. Berikutnya: Fase 4 TUI penuh + Fase 6 bersih-bersih. -> Base: `bun run check` bersih, 54 test hijau. +> **Status:** Fase 0–2 + 3a–3g **selesai**; Fase 4 **CLI + TUI selesai**; Fase 5 **semua {api,daemon,ws,grpc,web} selesai**. Berikutnya: Fase 4 bootstrap + Fase 6 bersih-bersih. +> Base: `bun run check` bersih, 74 test hijau. --- @@ -152,13 +152,14 @@ apps/ - [x] Logging ke file (`index.ts`) - [x] `run_single_process` — komposisi root: wire semua implementasi konkret sekali (`compose.ts`) + REPL loop - [x] Bootstrap seed (`bootstrap.ts`) — wire-shape settings lama terbaca -- [x] Smoke: `bun run cli --help`, `bun run bootstrap` jalan; loop turn + tool read/write -- [ ] TUI mode (library TUI Bun): - - [ ] Event loop adaptive poll - - [ ] `Action` dispatcher + slash commands - - [ ] Transcript render (incremental cache), sidebar, overlays, markdown render - - [ ] Theme -- [ ] Bootstrap seed (`bootstrap`) +- [x] CLI: parser arg + dispatch + single-process REPL loop + bootstrap seed (Smoke: `bun run cli --help`, `bun run bootstrap` jalan; loop turn + tool read/write) +- [x] TUI mode (`@zesdex/tui`, tanpa ncurses — render garis ANSI): + - [x] Event loop raw-mode stdin (run.ts) + key decode (decodeKey) + - [x] Key dispatcher `handleKey` → `Action[]` + overlay/autocomplete/editor handling (controller.ts) + - [x] `Action` enum + `applyAction` dispatcher (action.ts) + slash-command parse/apply (command.ts) + - [x] `InputState` (buffer/cursor/history/autocomplete) + `AppStateRest` state machine (state.ts) + - [x] Renderer ringan (render.ts): transcript, input, overlay, status — 20 unit tests hijau +- [x] Bootstrap seed (`bootstrap`) — `bun run bootstrap` seed defaults, wire-shape settings lama terbaca ### Fase 5 — Server interface: api / daemon / ws / grpc / web **Sumber Rust:** `apps/interfaces/{api,daemon,ws,grpc,web}/src/**`, `apps/infrastructure/src/middleware/*`