magi-code 0.77.1

Repository-aware CLI coding agent for terminal work
Documentation
# Transcript cards agent guide

## Where to look

| Task | Location |
| --- | --- |
| Shared facade and display limits | `mod.rs` |
| Card types and transcript/activity conversion | `projection.rs` |
| Span cache, subagent grouping, tool adapters | `projection/` |
| Wrapped visual lines and visible windows | `visual_lines.rs` |
| Display cells to source-text copy positions | `copy_mapping.rs` |
| Selection-aware orchestration | `../transcript_projection.rs` |

## Local conventions

- Card types live in `projection.rs`; `mod.rs` reexports the shared surface. Keep projection implementation children private to that module.
- Preserve source/activity ids for navigation and cache identity without turning cards into durable session records.
- Keep wrapping width-aware and deterministic, respecting grapheme boundaries and terminal display columns. Copy mapping must agree with visual wrapping, including narrow panes.
- Window visible history and preserve cache reuse rather than rebuilding every card per frame.
- Use shared rendering roles and tool adapters. Redact and sanitize both visible lines and copied text; copy must not reveal hidden metadata or control sequences.
- Do not mutate source transcript rows while projecting. Display caches may accelerate projection, but final events must still rebuild meaningful content after preview drops.
- Keep selection orchestration outside card primitives and runtime/provider/session decisions outside this directory.