- Default new Codex sessions to gpt-5.4
- Group tool calls at 3 (was 5)
- Keep Codex tool call details collapsed by default
- Add a thinking-effort submenu and map gpt-5.x(high) to model_reasoning_effort
- Add fetch models from upstream API via /v1/models endpoint with datalist suggestions
- Refactor password change from inline form to button + modal
- Fix sub-modal close button styling to match main settings panel
- Fix session delete to scan all claude project dirs (not just first match)
- Batch async rendering for message history with stale render guard
- Add custom draggable scrollbar for chat area
- Fix AskUserQuestion card rendered at bottom instead of top
- Fix bubble split (msg-text + msg-tools) to prevent tool UI overwrite
- Add delete confirmation dialog with warm theme styling
- Support multiline display in user messages
- Apply model config to settings.json immediately on save
- Add local/custom mode switching for API configuration
- Custom mode patches ~/.claude/settings.json env section before spawn
- Strip ANTHROPIC_* from child process env for clean config isolation
- Add spawn-time model name validation against MODEL_MAP
- Move template config fields to modal dialog for cleaner UI
- Show warning when custom templates may overwrite local API config
When switching to custom mode with no templates, show a '+ 新建模板'
button instead of an empty dropdown, allowing users to create the
first template without any UI dead-end.
- Add model config UI in settings panel (local/custom mode)
- local mode: read model names from ~/.claude.json env fields
- custom mode: named templates with API key, base URL, model names
- Fix /compact duplicate message via reason field in pendingCompactRetries
- Add CLAUDE.md with architecture notes