06612495fc
Release-preparation checkpoint for v0.8.51 (workspace + npm bumped to 0.8.51). Added: - Arcee AI direct provider: [providers.arcee], ARCEE_API_KEY/BASE_URL/MODEL, CLI auth, provider + model picker, registry. Default direct-API model is trinity-large-thinking (reasoning, 262K ctx/out); preview + mini selectable. Cloudflare-WAF-safe opening turn (benign read-only tool surface, system-prompt payload splitting) and reasoning_content replay on tool-call turns. - Expanded model catalog (qwen3.6 flash/plus/max-preview, Xiaomi MiMo v2.5 chat/ASR/TTS); provider-aware model picker with per-provider saved models. Changed: - Auto-compaction is percentage- and model-aware (compaction_threshold_for_model_at_percent; default 80%; auto-enable for <=256K windows, opt-in for 1M models). - Provider/gateway HTTP errors sanitized (HTML/WAF interstitials collapsed, 401/403 split into authentication vs authorization). Removed: - The session cycle / checkpoint-restart system: /cycles, /cycle, /recall, recall_archive tool, cycle_manager, cycle-handoff prompt, sidebar cycle lines, EngineConfig.cycle / Event::CycleAdvanced / seam cycle thresholds. Fixed: - Orphaned assistant 'blue dot' role glyph on whitespace-only turns. - Sidebar mouse-wheel scroll leaking into the transcript. - Sidebar hover tooltip overlap + warning-orange styling. - README Constitution description corrected to match prompts/base.md. - Repaired release-blocking unit/integration tests after the refactors. Preflight: cargo fmt clean, workspace builds, 3903 tui tests pass (1 known flaky MCP SSE test under parallel load, passes in isolation).
5.3 KiB
5.3 KiB
v0.7.6 Legacy Rust Audit
Status date: 2026-04-29
This audit is deliberately non-destructive. No compatibility code is removed in v0.7.6 unless tests prove public CLI, saved-session, tool-schema, and documented command paths no longer depend on it.
Summary
| Surface | Owner module | Current consumer | Reference check | Compatibility reason | Current warning | Recommended action |
|---|---|---|---|---|---|---|
Legacy MCP sync API (McpServerInput, list, add, remove, call_tool, load_legacy) |
crates/tui/src/mcp.rs |
Not wired into current /mcp command path; retained behind #[allow(dead_code)] |
Direct Rust references and current MCP command path inspected; saved/config JSON compatibility still needs a dedicated smoke | Preserves old JSON shape including mcpServers alias and sync call helpers while the async MCP manager is the active path |
Code TODO only | Gate behind an explicit legacy module or remove after CLI/runtime parity tests prove no caller uses it. Tracked by #218. |
Legacy prompt constants/functions (AGENT_PROMPT, YOLO_PROMPT, PLAN_PROMPT, base_system_prompt, normal_system_prompt, etc.) |
crates/tui/src/prompts.rs |
Tests and older callers that still import prompt constants directly | Direct Rust references remain; public-crate and older harness imports are not proven absent | Layered prompt API replaced monolithic prompts, but older call sites may still compile against constants | None | Keep for v0.7.6; add deprecation annotations only after internal callers are migrated. Tracked by #219. |
/compact slash command positioning |
crates/tui/src/commands/mod.rs |
Public slash-command registry and help overlay | Public command registry/docs path still references it | Users may still run /compact manually when they want an immediate replacement-style summary |
Description is intentionally explicit about manual compaction | Keep as a manual compatibility command; do not remove until context/token issues are resolved. |
todo_* compatibility tools |
crates/tui/src/tools/todo.rs |
Tool registry/model calls that still use todo_add, todo_update, todo_list, todo_write |
Tool registry compatibility and saved tool-call risk remain | checklist_* is canonical, but old tool names may appear in saved prompts, traces, or model priors |
Metadata marks compat_alias: true; descriptions say compatibility alias |
Add explicit deprecation metadata with target version, then remove only after tool-schema migration evidence. Tracked by #220. |
Deprecated sub-agent alias tools (spawn_agent, send_input, delegate aliases) |
crates/tui/src/tools/subagent/mod.rs |
Tool registry and model/tool-call compatibility | Tool registry compatibility and saved tool-call risk remain | Canonical names are agent_spawn, agent_send_input, etc.; alias names preserve older tool-call compatibility |
_deprecation metadata and tracing warn; removal target is v0.8.0 |
Keep through v0.7.x; removal already has metadata. Tracked by #221. |
Legacy root/provider TOML api_key compatibility |
crates/tui/src/config.rs, crates/config/src/lib.rs |
Config resolver; users with existing api_key in config files |
Public config loading and docs still mention migration behavior | Keyring migration is preferred, but breaking existing configs would block startup/auth | Tracing warnings point to deepseek auth set / deepseek auth migrate |
Keep; warnings are user-actionable. Removal should wait for a migration command and release-note window. |
Model alias canonicalization (deepseek-chat, deepseek-reasoner, older V3/R1 aliases) |
crates/tui/src/config.rs, crates/config/src/lib.rs |
Config/env/model picker normalization | Public docs and existing configs may still use aliases | Preserves old documented DeepSeek aliases and maps them to deepseek-v4-flash |
Silent alias by design | Keep; removing aliases would break configs without meaningful benefit. |
| Deprecated palette constants and aliases | crates/tui/src/palette.rs, crates/tui/tests/palette_audit.rs |
Existing call sites plus audit tests | Palette audit enforces the remaining allowlist | Semantic aliases are preferred, but old constants exist to prevent broad style churn | Palette audit blocks direct deprecated uses outside allowlist | Keep aliases; continue moving call sites to semantic roles opportunistically. |
Follow-Up Removal Candidates
These are not safe to remove in v0.7.6:
- #218 Legacy MCP sync API: requires a call-graph check and explicit CLI/runtime parity tests for
/mcp,deepseek mcp, and MCP server validation flows. - #219 Legacy prompt constants/functions: requires proving no public crate or older test harness imports them.
- #220
todo_*tool aliases: requires deprecation metadata and a saved-trace/tool-schema migration window. - #221 Deprecated sub-agent alias tools: removal target is already encoded as
v0.8.0, but the actual removal should be tracked and tested separately.
Verification Checklist
Before removing any compatibility surface:
- Search direct Rust references with
rg. - Search docs and README command examples.
- Run workspace tests with all features.
- Run a saved-session/tool-call compatibility smoke if the surface affects tool schemas or persisted history.
- Keep a release-note entry and, for user-visible config/tool changes, a migration hint for at least one minor release.