diff --git a/docs/rewrite/AGENT_GUIDE.md b/docs/rewrite/AGENT_GUIDE.md index 60d0bac..c9454ea 100644 --- a/docs/rewrite/AGENT_GUIDE.md +++ b/docs/rewrite/AGENT_GUIDE.md @@ -15,10 +15,14 @@ You are porting part of Ghostty 1.3.1 (Zig) to Rust. Read own crate's `Cargo.toml` (prefer well-known crates; use `cargo add -p `). 2. **Faithful port — except genuine bugs.** If the Zig code has a real memory-safety bug or undefined behaviour (use-after-free, out-of-bounds, - leaks, stale pointers, infinite loops, integer overflow UB), do NOT - replicate it: implement the evidently intended, safe behaviour, add a test, - and record it under "Upstream bugs fixed" in your notes (Zig file:line, - what was wrong, what the Rust does). Everything else stays faithful. + leaks, stale pointers, infinite loops, integer overflow UB) or a clear + data-loss/corruption bug (lost or overwritten output), do NOT replicate + it: implement the evidently intended, safe behaviour, add a test, record + it under "Upstream bugs fixed" in your notes (Zig file:line, what was + wrong, what the Rust does) and add an entry to docs/rewrite/DEVIANT_FIXES.md. + Keep each such fix in separate hunks/files where possible: the + orchestrator commits every deviant fix on its own, titled + `fix-deviant(): ...`. Everything else stays faithful. Original rule 2: **Faithful port.** Preserve behaviour, edge cases, defaults and naming (snake_case of the Zig names). Port doc comments (they are user-visible for