No task waits on a Codex review; the redesign tasks are confirmed on the
product owner's Z Fold7; TASK-016's leftovers are on hold; no biometric
reauthentication.
Agent: main (opus)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Implemented directly at human product owner's direction, independent
of Codex's separate uncommitted attempt at the same task (not read or
referenced here).
- CommitDetail (reusing CommitSummary) with per-file added/modified/
deleted/renamed/other status; deleted-author and missing-rename-path
cases handled without crashing or inventing data.
- BoundedPatch for commit and comparison diffs, sourced from Gitea's
.diff raw-text endpoints (JSON commit/compare objects only carry
file status, not diff content); byte limit then line limit, both
constructor-injected and validated positive.
- Comparison uses one combined base...head path segment, built by
concatenating both refs before a single addPathSegment call so each
is escaped exactly once; pagination computed locally since Gitea's
compare endpoint has no server-side paging.
- Reuses Page<T> and ApiFailure; no put/delete/postForm call anywhere
in the file (read-only, as required).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>