magi-code 0.105.1

Repository-aware CLI coding agent for terminal work
Documentation
# magi-code 0.100.0

## New features

### Concurrent inspection calls

Consecutive direct file inspections, searches, web requests, and image inspections can now run with up to four workers. Results stay in call order.

**How to use:** No setup needed. This happens automatically when the agent requests eligible calls together. Configured hooks keep calls sequential; Code Mode calls remain synchronous.

### Less repeated context

Eligible repeated file and skill reads now reference identical content already present in the provider request. Saved output and editing permissions remain unchanged.

**How to use:** No setup needed. Full content returns automatically when earlier copies leave context. Partial and raw file reads remain unchanged.

## Fixes

- Stop runaway whitespace outside JSON strings in streamed tool arguments and attempt recovery once with a compact-JSON instruction.
- Clamp excessive grep context, accept trailing colons on bodyless `DEL` operations, and return available text from oversized web pages with truncation notices. Missing filesystem paths may suggest nearby permitted paths without opening them.
- Reject symlinked and FIFO model catalog caches instead of following them or blocking.
- Update certificate dependencies to reject distrusted emSign certificate chains.
- Update Tokio to fix `AsyncFd` I/O safety; replace yanked Windows clipboard dependency.

## Other changes

- **MCP approvals require renewal.** Approvals now bind to the reviewed server definition. Open `/mcp`, select each trusted server with Up/Down, review its redacted definition, and press Enter to approve. Restart magi-code to apply changes. Previous revocations remain disabled. Definition changes require approval again; changes behind unchanged environment references do not. Keep `$MC_HOME/mcp-approval.key` private and out of shared backups.
- **Breaking Rust API change:** Only `magi_code::run_from_env()` and `magi_code::run_from_env_with_exit_code()` remain public. `config`, `context`, `sessions`, `ChatMessage`, `MessageRole`, `Usage`, and `ThinkingLevel` are now internal. Rust integrations must stop importing them. CLI behavior and settings/session file formats remain unchanged.
- Saved Code Mode inner results now contain redacted previews of at most 16 KiB. Reopened history marks truncated previews; omitted text cannot be recovered from saved previews. Live results, execution records, and rewind behavior remain unchanged.
- Update `magi-tokenizer` to 0.1.0.