-
v0.4.1: plan mode + cooperative Ctrl+C + robust retries
发布于
2026-04-15 12:22:18 +00:00 v0.4.0 (bundled):
- Plan mode: /plan enters read-only; /plan execute or /plan exit
to resume. Transactional state transition — previous state preserved
if runtime rebuild fails. - Cooperative Ctrl+C: single Ctrl+C aborts the current in-flight op and
returns to REPL instead of killing the process. Covers Anthropic
streaming, OpenAI-compatible streaming, conversation loop, and
reviewer calls. - API errors no longer exit the REPL: 4xx/5xx/network failures caught
at REPL boundary; user can retry or /model to switch. - Tool output folding: WebSearch / WebFetch / LlmReview / Skill get
dedicated compact formats; default truncation 200 -> 120. - 62 skills synced from main ARIS branch + 16 shared-references
bundled as embedded resources (auto-extracted to cwd on first
skill call). ../shared-references/ paths rewritten to cwd-relative. - Windows: fs::rename now removes target before rename (oauth + Codex
MCP config). - force_apply_to_env clears stale ARIS_REVIEWER_PROVIDER /
ARIS_REVIEWER_AUTH_TOKEN on reviewer switch.
v0.4.1 (on top):
- Robust retry policy for reviewer + executor:
- HTTP 429 (rate limit) and 5xx retried with exponential backoff,
honoring Retry-After (1s / 2s / 4s; up to 4 attempts). - Transient reqwest errors (connect/timeout/body/request) retried.
- Ctrl+C interrupts the backoff immediately.
- HTTP 429 (rate limit) and 5xx retried with exponential backoff,
- Stale interrupt flag fixed: every is_interrupted() check site
clear_interrupt()s after consuming, so a Ctrl+C mid-tool no longer
poisons subsequent tool calls with "interrupted by user". - Fresh HTTP client per reviewer attempt (pool_max_idle_per_host=0) +
15s connect / 180s total timeout, avoiding reuse of dead TCP/TLS
connections. - Verbose error chain on network failures (DNS / TLS / connect reset
now visible) instead of opaque "error sending request".
Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com
下载附件
- Plan mode: /plan enters read-only; /plan execute or /plan exit