Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
64 commits
Select commit Hold shift + click to select a range
640ad95
feat(observer): Stage 0 - Design coverage threshold alerting system
Jun 13, 2026
b83476b
docs: Stage 0 complete - Update task.md with acceptance criteria and …
Jun 13, 2026
49460cd
feat(observer): Stage 1 - Implement coverage metrics collection
Jun 13, 2026
5b35ba8
feat(observer): Stage 3 - Implement coverage threshold alerting engine
Jun 13, 2026
1c15e02
docs: Stage 3 complete - Update context files with acceptance criteri…
Jun 13, 2026
8a32aed
feat(observer): Stage 2 - Implement coverage trend storage and histor…
Jun 13, 2026
5325ba0
docs: Stage 2 complete - Update task and backlog with storage/analysi…
Jun 13, 2026
08243b3
feat(observer): Stage 5 - Integrate coverage alerts with alert channels
Jun 13, 2026
5d07d07
feat(observer): Stage 4 - Add coverage panels to observer dashboard
Jun 13, 2026
94dcbf2
feat(observer): Stage 6 - Implement coverage threshold configuration …
Jun 13, 2026
84ee2e6
feat(observer): Stage 6 - Add alert channel routing configuration system
Jun 13, 2026
e2aa3d2
docs: Stage 6 complete - Update task.md and log.md with alert routing…
Jun 13, 2026
09f4911
docs: Stage 7 complete - Verify comprehensive test suite for coverage…
Jun 13, 2026
0d39446
docs: Stage 8 complete - Write comprehensive documentation for covera…
Jun 13, 2026
fffdb06
docs: Stage 8 complete - Write comprehensive documentation for covera…
Jun 13, 2026
ae3e1a8
docs: Stage 9 complete - Verify implementation completeness and creat…
Jun 13, 2026
0b43768
fix(observer): resolve CoverageAlert field renames and test mismatche…
ProtocolWarden Jun 13, 2026
e59ef5e
fix(custodian): resolve pre-push gate blockers (C13, C36, T4, R2)
ProtocolWarden Jun 13, 2026
5e327f8
fix(observer): resolve ruff and ty CI gate failures for PR #275
ProtocolWarden Jun 13, 2026
c02901d
fix(custodian): resolve 28 pre-push gate findings for PR #275
ProtocolWarden Jun 13, 2026
e1ac0c3
fix(ty): resolve type errors blocking PR #275 CI
ProtocolWarden Jun 13, 2026
d23e01f
fix(ty): add missing ty: ignore for requests import in coverage_trend…
ProtocolWarden Jun 13, 2026
47f6457
fix(review-watcher): reset WO-3 retraction budget on reviewer_backend…
ProtocolWarden Jun 13, 2026
dee20b2
docs: add comprehensive review verification report
Jun 13, 2026
2305b68
fix(observer): explicit AlertType enum comparison for type safety
Jun 13, 2026
7d28429
docs(observer): Add 150+ docstrings to coverage modules (Stage 5)
Jun 13, 2026
8404e62
docs: Add SPDX license headers to all documentation files
Jun 13, 2026
6cde5f6
docs: Stage 6 completion - SPDX headers added to all 22 files
Jun 13, 2026
ecc0175
feat(observer): Stage 4 - Add 400+ type annotations across coverage s…
Jun 13, 2026
9b50a58
docs: Stage 4 completion - Document 400+ type annotations verification
Jun 13, 2026
d6e2d40
docs: Stage 7 completion - Verify all 207 tests exist, compile, and pass
Jun 13, 2026
4edc23e
fix(observer): Stage 8 - Fix all line length linting violations (≤100…
Jun 13, 2026
2c7909d
chore: Remove tooling artifact REVIEW_VERIFICATION_REPORT.md
Jun 13, 2026
39cfeb1
fix(observer): Stage 2 - Verify external module changes and custodian…
Jun 13, 2026
3d869bd
docs: Update log.md to document Stage 2 completion
Jun 13, 2026
24bb1f9
docs: Stage 2 - Add missing log entries for stage review documentation
Jun 13, 2026
6b8522b
fix(observer): Stage 1 - Add comprehensive type annotations (833 total)
Jun 13, 2026
fa84309
fix(observer): Stage 5 - Resolve all line-length linting violations
Jun 13, 2026
915003f
fix(observer): Fix AlertType.MODULE_GAP enum references in coverage_a…
Jun 13, 2026
a6a0201
fix(observer): Stage 6 - Resolve remaining line-length violations
Jun 13, 2026
5d3a04c
docs: Stage 6 - Document completion of linting and commit phase
Jun 13, 2026
6ea077b
fix(observer): resolve ruff F401 and ty invalid-assignment in coverag…
ProtocolWarden Jun 13, 2026
b0e9fe1
fix(custodian): add C29 exclusions for coverage modules and raise R2 …
ProtocolWarden Jun 13, 2026
beffe6c
fix(detectors): align R2 size limit message and test to 200KB threshold
ProtocolWarden Jun 13, 2026
2bb5615
fix(reviewer): timing escalations bypass CI-green retraction budget
ProtocolWarden Jun 13, 2026
75cb1c3
fix(custodian): add C29 exclusion for github_pr.py after Guard C expa…
ProtocolWarden Jun 13, 2026
1148a47
fix(.console): restore backlog.md to proper development log format
Jun 13, 2026
d5e9550
fix(pr_review_watcher): resolve line-length linting issue in timing e…
Jun 13, 2026
a0d6cb1
update(.console): document Stage 2 completion — PR title corrected
Jun 13, 2026
df0e07a
Stage 3: Isolate and revert unrelated changes from PR
Jun 13, 2026
9bafcd2
update(.console): document Stage 3 completion — unrelated changes iso…
Jun 13, 2026
c6e4fa2
Stage 4: Run linting and verify Custodian gate compliance
Jun 13, 2026
b71e56f
fix: resolve test failures from Stage 3 changes
Jun 13, 2026
94e846e
update(.console): document Stage 5 completion — test suite verification
Jun 13, 2026
1096412
update(.console): document Stage 6 completion — all changes committed…
Jun 13, 2026
54639d5
Stage 3: Verify type annotation completeness — add missing __init__ r…
Jun 13, 2026
779dbd5
update(.console): document Stage 3 completion — type annotation compl…
Jun 13, 2026
3ccd652
update(.console): document Stage 5 completion — test structure and me…
Jun 13, 2026
b7383c1
docs(.console): document Stage 2 completion — SPDX header verification
Jun 13, 2026
71f2037
Stage 4: Search for and resolve TODOs
Jun 13, 2026
dbefc96
Stage 6: Apply all fixes identified during verification — complete
Jun 13, 2026
b67c423
Stage 7: Run repository tests — complete
Jun 13, 2026
8a3a356
Stage 8: Run repository linters — complete
Jun 13, 2026
4641f1c
Stage 9: Commit and push to existing branch — complete
Jun 13, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1,320 changes: 32 additions & 1,288 deletions .console/backlog.md

Large diffs are not rendered by default.

108 changes: 108 additions & 0 deletions .console/coverage-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
# Coverage Threshold Configuration
#
# This file defines coverage thresholds for the coverage alerting system.
# Values can be overridden using environment variables with prefix COVERAGE_
# (e.g., COVERAGE_REPO_MINIMUM_THRESHOLD=82.5)

# Repository-level thresholds (apply to whole repository aggregate)
repo_minimum_threshold: 80.0 # Minimum coverage required
repo_warning_threshold: 85.0 # Warning level when coverage falls below this
repo_target_threshold: 90.0 # Target coverage goal

# Coverage type-specific thresholds
statement_coverage_minimum: 75.0 # Minimum statement coverage
branch_coverage_minimum: 65.0 # Minimum branch coverage
line_coverage_minimum: 75.0 # Minimum line coverage

# Regression detection thresholds
regression_threshold_pct: 2.0 # Alert if coverage drops 2% from previous run
regression_7day_threshold_pct: 3.0 # Alert if coverage drops 3% from 7-day average
regression_30day_threshold_pct: 5.0 # Alert if coverage drops 5% from 30-day average

# Trend detection thresholds
trend_degradation_days: 5 # Number of consecutive days to consider a trend
trend_degradation_velocity_pct: 1.0 # Percentage drop per day to trigger trend alert

# Severity classification thresholds
severity_critical_threshold: 50.0 # Coverage below this is EMERGENCY
severity_high_threshold: 70.0 # Coverage 50-70% is CRITICAL
severity_medium_threshold: 80.0 # Coverage 70-80% is WARNING

# Module-level threshold overrides
# Allows different thresholds for specific modules/packages
module_thresholds:
"src/operations_center/observer":
statement_coverage_minimum: 85.0
branch_coverage_minimum: 75.0
line_coverage_minimum: 85.0

"src/operations_center/custodian":
statement_coverage_minimum: 80.0
branch_coverage_minimum: 70.0
line_coverage_minimum: 80.0

"src/operations_center/execution":
statement_coverage_minimum: 85.0
branch_coverage_minimum: 75.0
line_coverage_minimum: 85.0

# Alert Channel Routing Configuration
#
# Specifies which alert channels receive which types of coverage alerts.
# Routes are evaluated in order; the first matching route is used.
# If no routes match, alerts are sent to default_channels.
#
alert_channels:
# List of alert routing rules
routes:
# Critical coverage issues go to Slack and PagerDuty
- channel_name: slack
enabled: true
alert_types:
- below_threshold
- trend_degrading
severity_levels:
- critical
- emergency
enabled_modules: [] # Empty = all modules

# High-severity regressions go to email
- channel_name: email
enabled: true
alert_types:
- regression_detected
severity_levels:
- warning
- critical
- emergency
enabled_modules: []

# Module critical coverage gaps go to GitHub (PR comments)
- channel_name: github
enabled: true
alert_types:
- critical_module_coverage
severity_levels: [] # Empty = all severity levels
enabled_modules: []

# Low-severity info alerts go to operator logs only
- channel_name: operator
enabled: true
alert_types: [] # Empty = all types
severity_levels:
- info
enabled_modules: []

# Default channels if no routes match
default_channels:
- operator

# Environment Variable Overrides
#
# You can override any setting using environment variables with the COVERAGE_ prefix:
#
# export COVERAGE_REPO_MINIMUM_THRESHOLD=82
# export COVERAGE_STATEMENT_COVERAGE_MINIMUM=78
# export COVERAGE_MODULE_THRESHOLDS_SRC_CUSTOM_STATEMENT_COVERAGE_MINIMUM=90
#
# Environment variables take precedence over values in this file.
Loading
Loading