CMDC TUI 主应用模块 — ExRatatui.App behaviour 实现。
使用 ExRatatui.Server(GenServer)管理终端事件循环,
poll_event 在 DirtyIO scheduler 上阻塞,不影响 handle_info 接收 CMDC 事件,
按键到达后立刻 dispatch → render,零额外延迟。
布局
┌────────────────────────────┬───────────────┐
│ │ ToolPanel │
│ ChatPanel │ /TodoPanel │
│ (messages + textarea) │ (Tab 切换) │
│ │ │
├────────────────────────────┴───────────────┤
│ StatusBar │
└─────────────────────────────────────────────┘State 管理
集中式 state,Panel 模块为纯渲染函数,不持有独立状态。
EventBus 事件通过 handle_info 统一更新 state 并触发 re-render。