Commit Graph

2 Commits

Author SHA1 Message Date
TheArchitectit 8beb1b8614 fix(team): read provider().model() not feature model for sub-agent default
load_main_model_from_config() read config.model() — the feature-config
model from settings.json (e.g. 'openai/glm-5.1-fast') — instead of
config.provider().model() — the /setup-saved active provider model
(e.g. 'custom/openclaw'). The latter is what the main session actually
connects with and what the status bar shows. Sub-agents inherited the
wrong model, which might not exist on the custom endpoint.

Fix: use config.provider().model() so sub-agents default to the same
provider that the user's main session is connected to.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-17 13:09:06 -05:00
TheArchitectit 55941ac6c8 feat(tui): component-based architecture, eliminates libc::dup hack
- Convert tui.rs → tui/ directory module with legacy.rs re-export
- Add Component + Overlay traits for clean separation of concerns
- Build component-based TuiApp (app.rs) with pre-borrow draw pattern
- Extract: ConversationPane, InputBar, Dashboard, CommandPaletteOverlay,
  AgentViewOverlay as independent components
- Add EventBus with crossbeam-channel for component communication
- Add SlashCommandDispatcher (testable, decoupled from main.rs)
- Add shared MarkdownAst + parser + shared markdown utilities
- Add StreamingMarkdownState stub for incremental rendering
- Wire new TuiApp into main.rs::run_tui_repl()
- ELIMINATE unsafe libc::dup/dup2 stdout suppression — replaced with
  suspend/resume pattern (same as provider swap flow)
- All 320 tests pass, 57 TUI-specific tests pass
2026-06-12 13:26:53 -05:00