### Fixed - The issue sweep no longer derives label writes from a read that failed. An HTTP 504 whose body is GitHub's JSON error object passed every guard and emptied the label set, so a healthy epic was written `needs-triage` and the pass reported success (#247). - A failed comments read no longer reclaims a live claim. Swallowed, it dated the issue by `created_at` and unassigned the builder under a comment asserting 48 hours of silence about an issue commented on seconds earlier (#247). - A failed comments read no longer reads as "no marker", which re-posted the comment the marker exists to suppress (#247). - Every read inside the per-issue subshell is checked explicitly, on its status and on its payload shape; the issue is left exactly as it is and the sweep continues. A partial pass names its skipped issues after `reconciled.` (#247). - A per-issue pass is now atomic: its writes and its log lines commit only once the pass completes. A skip could previously land after an earlier mutation, reporting an issue as untouched when a label had already been written or removed (#247).