fix(custodian): add service.py to C29 exclusion list - #297
Merged
ProtocolWarden merged 1 commit intoJun 14, 2026
Conversation
service.py implements the full observer collector lifecycle (required + optional collectors, signal aggregation, error handling, debug logging) as a single cohesive module. When debug logging is added in PR #295 (goal/c1c1b881), the file grows past the 500-line C29 threshold. Splitting by collector type or signal category would fragment the tightly coupled initialization and error propagation logic without architectural benefit. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
ProtocolWarden
deleted the
oc-watchdog/20260614-1818-c29-service-py-exclusion
branch
June 14, 2026 18:43
3 tasks
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.
Summary
service.pyimplements the full observer collector lifecycle (required + optional collectors, signal aggregation, error handling) in a single cohesive moduleservice.pypast the C29 500-line thresholdservice.pyto the C29 exclusion list so PR Add debug logging to entry points when collector is initialized or skipp #295'sauditCI check will pass once rebased onto mainRationale
Splitting
service.pyby collector type or signal category would fragment the tightly coupled initialization and error propagation logic without architectural benefit. The collector lifecycle management (required vs. optional, signal aggregation, error handling) is a single responsibility.Test plan
custodian-multi --repos . --no-colorshows 0 findings on this branchpytest tests/unit/er000_phase0_golden/ -q→ 15 passed🤖 Generated with Claude Code