Commit Graph

1670 Commits

Author SHA1 Message Date
Hunter Bown e2099dd691 fix: harden provider registry drift check 2026-05-30 19:15:28 -07:00
Nightt b0e7b67386 style: satisfy current clippy lints 2026-05-30 19:15:28 -07:00
Nightt 9edd2008c4 docs: add provider registry drift check 2026-05-30 19:15:28 -07:00
hexin 30d8d083c5 feat(subagent): add stop-on-failure and bounded-effort guidance to general agent intro
The general-purpose sub-agent intro tells the agent how to plan, but says
nothing about when to *stop*. With less capable models this leads to a
failure mode where the agent retries the same failing tool call (e.g. an
unreachable or rate-limited external API) over and over until it hits the
elapsed/step ceiling, wasting the whole budget and returning nothing useful.

Add two short clauses to GENERAL_AGENT_INTRO:
- Stop quickly on failure: after the same call fails twice, return partial
  results with a one-line note instead of looping.
- Bounded effort: prefer one focused attempt; if the task can't be completed
  within a few tool calls, return current findings so the parent can compensate.

Prompt-only change; no behavioral code paths touched.
2026-05-30 19:14:44 -07:00
reidliu41 c72dc28b38 fix(statusline): keep picker selection visible
Keep the /statusline picker selection visible when navigating through all
  available footer items in smaller terminal windows.

  The picker now scrolls its visible rows as the cursor moves, wraps Up/Down at
  the list edges, and renders the selected row with a continuous, slightly
  brighter background.
2026-05-30 19:14:41 -07:00
jayzhu e2d6d2253a fix(i18n): localize right-click context menu labels and descriptions
The right-click context menu rendered all entries in English regardless of ui_locale. Added 26 MessageId variants with translations for en, ja, zh-Hans, zh-Hant, pt-BR, es-419. ContextMenuView now accepts a localized title. build_context_menu_entries() uses app.tr() instead of hardcoded strings.
2026-05-30 19:14:37 -07:00
reidliu41 d58f10102a fix(composer): allow slash-space messages
Treat inputs like `/ hello` as plain user messages instead of slash commands.
  This lets users start a message with a literal slash while preserving normal
  slash command behavior for `/help`, `/model ...`, and other commands.
2026-05-30 19:13:54 -07:00
Nightt 4bacda64fc fix(tools): raise tool search default results 2026-05-30 19:13:51 -07:00
reidliu41 76089db1dc fix(mcp): avoid nested runtime panic on stdio shutdown
Run the stdio MCP server inside a blocking section when launched from the async CLI entrypoint.

  This prevents Tokio from panicking when the MCP server's internal runtime is dropped after stdin closes.
2026-05-30 19:13:47 -07:00
cyq 0a97f18e78 test(tui): make composer history flush deterministic 2026-05-30 19:13:44 -07:00
dependabot[bot] 5de174ac8b chore(deps): bump tar in the cargo group across 1 directory
Bumps the cargo group with 1 update in the / directory: [tar](https://github.com/composefs/tar-rs).


Updates `tar` from 0.4.45 to 0.4.46
- [Release notes](https://github.com/composefs/tar-rs/releases)
- [Commits](https://github.com/composefs/tar-rs/compare/0.4.45...0.4.46)

---
updated-dependencies:
- dependency-name: tar
  dependency-version: 0.4.46
  dependency-type: direct:production
  dependency-group: cargo
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-30 19:13:41 -07:00
jayzhu b669ee7b94 fix: update terminal tab title from 'DeepSeek TUI' to 'CodeWhale' 2026-05-30 19:13:37 -07:00
reidliu41 1379d354e4 fix(provider): name DeepSeek in provider help text
Replace the incorrect CodeWhale backend example in /provider help text with DeepSeek.

  CodeWhale is the app name, while deepseek is the actual provider id accepted by /provider.
  Add a regression test for shipped locale descriptions.
2026-05-30 19:12:56 -07:00
Hunter Bown 54151a4bc9 feat(/new): add new session command (#2235)
feat(/new): add new session command
2026-05-26 21:48:06 -05:00
Hunter Bown 1c59cbf770 fix(provider): keep picker selection visible (#2241)
fix(provider): keep picker selection visible
2026-05-26 21:41:06 -05:00
reidliu41 198acc72ba Make the selected row easier to see with a continuous subtle highlight, and
wrap Up/Down navigation between the first and last providers.
2026-05-27 10:34:38 +08:00
reidliu41 5ed741dc8c fix(provider): keep picker selection visible
Make the /provider modal size itself to the provider list when space allows,
  and scroll the rendered list when the selected provider moves past the visible
  rows.

  Also make the selected row use a continuous, subtle highlight so the current
  selection remains visible without looking disconnected.

  Adds regression coverage for bottom providers, initial bottom selection, full
  height rendering, and selected-row highlighting.
2026-05-27 10:24:23 +08:00
reidliu41 ed23a48e04 feat: add new session command
Add /new to start a fresh saved session from the TUI without overloading /clear.
  The command creates a distinct session id, resets conversation state, and keeps
  previous sessions available through /resume.

  Block unsafe switches when pending input or active work exists, with /new --force
  available for explicit discard.
2026-05-27 07:33:27 +08:00
Hunter Bown cdec3e8192 Merge branch 'build/v0.8.47' into integration/v0.8.47-unified 2026-05-26 16:41:10 -05:00
Hunter Bown 663550be35 Merge branch 'feat/2199-goal-tools-runtime' into integration/v0.8.47-unified 2026-05-26 16:41:05 -05:00
Hunter Bown 183606b08b Merge branch 'feat/2022-session-failure-classifier' into integration/v0.8.47-unified 2026-05-26 16:41:00 -05:00
Hunter Bown 84f023931d Merge branch 'fix/2021-tool-output-receipts' into integration/v0.8.47-unified 2026-05-26 16:41:00 -05:00
Hunter Bown 09f12da47d Merge branch 'codex/1842-show-thinking-reasoning-20260526203106' into integration/v0.8.47-unified 2026-05-26 16:40:56 -05:00
Hunter Bown 7cbeb3d809 Merge branch 'work/issue-2132-ddg-default' into integration/v0.8.47-unified 2026-05-26 16:40:53 -05:00
Hunter Bown 2b0761fbbd Merge branch 'triage/1797-auto-model-resume-20260526-153051' into integration/v0.8.47-unified 2026-05-26 16:40:47 -05:00
Hunter Bown 64e5b3f306 Merge branch 'triage/cache-hit-1120-1818-743' into integration/v0.8.47-unified 2026-05-26 16:40:47 -05:00
Hunter Bown a4024d3dff Merge branch 'fix/1656-local-http-provider' into integration/v0.8.47-unified 2026-05-26 16:40:47 -05:00
Hunter Bown 007c578bb3 Merge branch 'codex/issue-2138-edit-file-fuzz-20260526' into integration/v0.8.47-unified 2026-05-26 16:40:47 -05:00
Hunter Bown 86652f3a4b Merge branch 'docs/2217-container-toolbox-contract' into integration/v0.8.47-unified 2026-05-26 16:40:36 -05:00
Hunter Bown b96fa37ea4 chore: add DeepSWE task verification script 2026-05-26 16:40:16 -05:00
Hunter Bown ac6693581f fix(tools): restore checklist and planning tools to default active catalog
PR #2076 deferred planning/checklist tools (checklist_write, update_plan,
task_create, task_list, task_read) to reduce catalog tokens, but the system
prompt actively instructs the model to use these tools. Without them in the
active catalog, the model cannot call them until it first discovers them via
tool_search, which it is not prompted to do for planning tools.

Keep these tools in DEFAULT_ACTIVE_NATIVE_TOOLS so the model can follow
the Constitution's Regulations (Tier 3) and the Mode: YOLO instructions.
2026-05-26 16:40:16 -05:00
Hunter Bown 11e1ec1fe3 docs: add v0.8.47 CHANGELOG entries for composer, CNB mirror, fixes 2026-05-26 16:39:39 -05:00
Hunter Bown 92c8dbc7ce fix(composer): use wrap_input_lines_for_mouse, clamp selection to input length
- Replace visible_line_char_ranges with wrap_input_lines_for_mouse for accurate mouse selection
- Clamp selection_anchor and cursor_position to char_count
- Clear selection on history navigation to prevent stale highlights
- Add test for history-navigation-clears-stale-selection
2026-05-26 16:39:39 -05:00
Hunter Bown 74878dcd30 refactor(tools): replace Semaphore with RwLock for parallel-safe tool execution
- Use OwnedRwLockReadGuard for parallel-safe tools, OwnedRwLockWriteGuard for serial
- Add TOOL_EXECUTION_LOCK_HELD task-local for reentrancy detection
- Add BlockingHandler test harness and parallel-vs-serial concurrency tests
2026-05-26 16:39:39 -05:00
Hunter Bown 60c1b6619c style: rustfmt cleanups and minor formatting fixes
- Line-wrap long function signatures and format arguments
- Fix bracket placement for early returns (consistent style)
- Use [!] instead of [✓] for network-denied skill sync
- Fix copy-selection ordering: clear after success, not always
2026-05-26 16:39:28 -05:00
Hunter Bown 17f21a84e1 feat(goals): add runtime goal tools and bounded continuation gate (#2199)
- Add SharedGoalState and goal tools (goal.rs) to the engine
- Sync goal state from host on engine init and goal-objective change
- Wire goal_objective through prompt context and system-prompt refresh
- Add continuation.md prompt for bounded task continuation
- Register goal tools in the tool registry
- Add continuation gate tests in engine/tests.rs
2026-05-26 16:38:26 -05:00
Hunter Bown 5e9accd149 feat(diag): add redacted synthetic session failure classifier (#2022)
- Add FailureCategory enum for command-exit, network, sandbox, timeout, etc.
- Module is deliberately pure: no file reads, caller-provided records only
- Added as dead_code module, wired for future diagnostics integration
2026-05-26 16:38:26 -05:00
Hunter Bown cf8880e464 fix(session): compact large tool outputs to artifact receipts on persist (#2021)
- Replace giant tool-result strings in session JSON with TOOL_OUTPUT_RECEIPT markers
- Reference artifact records by id for retrieval after session load
- Compact on save, checkpoint, load, and load_by_id paths
- Wire tool_output_receipts module into session_manager
- Add tests for compaction-on-save and legacy-load-then-compact paths
2026-05-26 16:38:26 -05:00
Hunter Bown 6fce7dca38 fix(lang): keep hidden reasoning_content in English regardless of locale (#1842/#1843)
- Add show_thinking flag to PromptSessionContext
- When show_thinking=false, emit hidden-thinking English instruction
- Omit locale-reinforcement bookends when user can't see thinking blocks
- Keep final-visible-reply language rule unchanged
- Add test for hidden-thinking language directive
2026-05-26 16:38:26 -05:00
Hunter Bown aeaf91d589 feat(web_search): switch default backend from Bing to DuckDuckGo (#2132)
- Make DuckDuckGo the default search provider with Bing fallback
- Update tool description, config docs, TOOL_SURFACE, doctor output
- Update all search default tests and references
- Bing remains selectable via [search] provider = "bing"
2026-05-26 16:37:53 -05:00
Hunter Bown 99941d9d01 fix: include tool catalog in cache-inspect prefix hashing (#1818)
- Track tool catalog as a static layer in prompt inspection
- Include tools in cache-warmup request with tool_choice=none
- Ensure tool schema changes are visible to base-static-prefix diagnostics
- Factor test_tool helper for cache-inspect test coverage
2026-05-26 16:37:53 -05:00
Hunter Bown 91ab9089ab fix: add DEEPSEEK_ALLOW_INSECURE_HTTP env guard for LAN vLLM (#1656)
- Add env guard with process-global mutex for ALLOW_INSECURE_HTTP tests
- Document LAN vLLM HTTP example in README
- Add config test for reported LAN HTTP endpoint + model resolution
- Guard validate_base_url_security tests against env leak
2026-05-26 16:37:53 -05:00
Hunter Bown 8d48b19b5d test: add regression coverage for edit_file fuzz omission (#2138)
- Test that edit_file accepts calls with fuzz omitted, fuzz=false, and fuzz=true
- Verify fuzz is excluded from schema required fields but present as optional boolean
- Add agent-mode catalog test confirming edit_file is loaded and fuzz-less calls execute
- Update existing required-fields assertions to check for exactly path/search/replace
2026-05-26 16:37:33 -05:00
Hunter Bown 2b8f3bf3dd docs: add provider registry reference and refresh provider lists (#2201)
- Add docs/PROVIDERS.md placeholder reference in README and CONFIGURATION.md
- Update provider lists to include moonshot, openrouter, novita
- Add MOONSHOT_API_KEY/KIMI_API_KEY env var docs
- Update default_text_model entries for all providers
- Change legacy deepseek-cn alias to deepseek
- Add CODEWHALE_PROVIDER as preferred env var name
2026-05-26 16:37:33 -05:00
Hunter Bown 671aa4810e docs: add Docker toolbox/custom-image contract and examples (#2217)
- Document default image contract (non-root, no sudo, conservative)
- Add opt-in toolbox image pattern with passwordless sudo
- Include Dockerfile.toolbox example
- Document multi-project volume pattern
- Add bootstrap script, custom CA certificate, and proxy workflows
- Clarify that bootstrap/CA workflows require the opt-in toolbox image
2026-05-26 16:37:33 -05:00
LING71671 02d4605868 fix(tui): restore auto model state on session load
Harvested from PR #1885 by @LING71671.

Fixes #1797.
2026-05-26 15:53:53 -05:00
Hunter Bown 8822e9873a refactor: finish state-root migration — all runtime paths now .codewhale
- .gitignore: add deep-swe/ and all_preds.jsonl to prevent accidental commits
- config.rs: home_config_path(), managed_config, requirements, mcp, notes,
  memory all prefer ~/.codewhale/config.toml with .deepseek fallback
- commands/config.rs: config_toml_path() prefers .codewhale
- commands/anchor.rs: anchors_path prefers .codewhale/anchors.md
- commands/note.rs: notes_path prefers .codewhale/notes.md
- skills/install.rs: cache defaults to .codewhale/cache/skills
- skills/mod.rs: global skills discovery includes .codewhale/skills
- file_frecency, clipboard, onboarding, audit, task_manager: all .codewhale
- project-local paths (onboarding trust) still .deepseek for compat

Closes #2231.
2026-05-26 15:06:04 -05:00
Hunter Bown 799d9f8176 docs: consolidate CHANGELOG for v0.8.47, add 5 new contributors 2026-05-26 14:35:57 -05:00
Hunter Bown 236ad4137d feat: harvest 6 community PRs for v0.8.47
Harvested and vetted — no malware, no external deps, no injection:
- #1859 (@harvey2011888): loop guard now reports Failed on halt
- #1870 (@victorcheng2333): honour DEEPSEEK_YOLO env on startup
- #1935 (@IIzzaya): replace [x] with [✓] completion markers
- #1837 (@PurplePulse): fix macOS title centering (pin to top)
- #1967 (@cyq1017): show base_url in /config view
- #1906 (@knqiufan): copy transcript without visual-wrap newlines

Also fix cycle_manager archive_dir_for to use resolve_state_dir
so recall_archive tests pass with the migrated sessions path.

Co-authored-by: victorcheng2333 <victorcheng2333@users.noreply.github.com>
Co-authored-by: IIzzaya <IIzzaya@users.noreply.github.com>
Co-authored-by: PurplePulse <PurplePulse@users.noreply.github.com>
Co-authored-by: cyq1017 <cyq1017@users.noreply.github.com>
Co-authored-by: knqiufan <knqiufan@users.noreply.github.com>
2026-05-26 14:34:21 -05:00
Hunter Bown 8ed4301d35 docs: update CHANGELOG for CNB mirror and state-root migration 2026-05-26 14:19:53 -05:00