Repository navigation
Key the alert window on the kind of fault, and act on the review of the review - #59
Merged
Merged
Conversation
…he review The commit that acted on #58's review shipped without a review of its own. One found ten more, three of them rooted in the dedup marker: it held one digest of the whole banner, raw error included. - Each kind of fault has its own window, so a broken database and a flapping API no longer take turns to alert. - The kind is the exit code plus a detail where a difference is news, a rejected key's masked key, not the banner text: the same fault with a different raw error, or `lift check`'s str() wording, is one alert, and a second rejected key is still pushed. Keying on the banner title was tried first and rejected in review because it sat on a newly captured key that was also refused. - fail() restarts the clean-run count on every failure, including one whose alert was not delivered. - The database banner finds a lock's holder with fuser rather than blaming lift rebuild, which holds the poll lock and so never locks a poll out. - backup-to-git.sh: 143 always alerts and names the timeout or a stop; on_exit ignores TERM so its curl survives the cgroup-wide TERM; INT is 130. - One marker reader, and the fetch is classified once in _run. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AnrcmsrTHYCgnVGyqBqji4
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The last commit of #58, the one that acted on its review, was merged without a review of its own. Reviewing it found ten more issues, three of them caused by the alert dedup marker. The marker held one digest of the whole banner, including the raw error text. This PR fixes those. Its own changes were then reviewed twice before pushing: the first pass changed the approach (below), and the second found nothing.
Changes
lift check, which words the error withstr()where the poll usesrepr(). A rejected key's kind includes its masked key, so a second key that is also rejected still alerts. Keying on the banner's title was tried first and rejected in review for exactly that reason: it would have suppressed the alert for a newly captured key that was also refused.fail()restarts the clean-run count on every failure. Before, a fault whose alert failed to deliver counted as a clean run.fuser. It used to blamelift rebuild, but a rebuild holds the poll lock, so a poll never sees its database lock.backup-to-git.sh:on_exitignores TERM, and the alert'scurlinherits that, so the TERM systemd sends to every process in the unit cannot kill it._runclassifies the fetch before opening the database instead of again inside the error handler.notes/collector-review.mdhas a new section with all ten findings and the accepted trade-offs:lift checksuppresses the poll's alert of the same kind.The one finding not acted on restates the replay-order trade-off already settled in #58.
Verification
ruff checkandscripts/no-em-dash.share clean.Full suite OK with
LIFT_STATUS_DATA_DIRset (the 12 skips were already there). Collector suites pass on Python 3.11.New tests cover:
Those that exercise changed behaviour fail on
main.backup-to-git.sh, with its process group sent TERM, delivers the TERM alert in both cases:git fetchhangs;curlis still running.Deploying
This changes the Pi collector, so re-run
scripts/install-native.shon the Pi after merging.🤖 Generated with Claude Code
https://claude.ai/code/session_01AnrcmsrTHYCgnVGyqBqji4
Generated by Claude Code