Skip to content

fix(sync): count a Property with a recorded failure in the reconciliation-age alert - #1082

Merged
kodes-agency merged 2 commits into
mainfrom
fix/reconciliation-age-failed-properties
Nov 4, 2026
Merged

kodes-agency merged 2 commits into
mainfrom
fix/reconciliation-age-failed-properties

Conversation

@kodes-agency

Copy link
Copy Markdown
Owner

What changed

sync.reconciliation-age now counts a Property that has a recorded sync failure. It used to leave out every Property with an error_class, so a Property whose every full read failed could not raise the alert that watches for a Property with no completed read.

A Property whose Google connection needs reauthorization (reauth_required, which is also how a provider revocation is stored) stays out. It is not syncable, so it is not polled, and the reconnect notice is its signal. No new filter was needed: the existing active-connection condition already leaves it out.

Expect the alert to raise for any syncable Property that has gone 8 hours without a completed full read, whatever the recorded failure (for example one Google rejects, or one over the review cap). sync.failed-nonzero still names the failure code; this alert says how long it has been.

The runbook (section 13 and the rejected-location section), the alerts table and ADR 0055 now say so.

Tests

  • Integration (sync-push-health.integration.test.ts, real PostgreSQL): an overdue Property with a recorded provider_failure, provider_rejected or review_cap_exceeded failure is counted. A reauth_required connection is not counted, with or without a provider_revoked reason. The three counting cases fail without the change.
  • Unit (sync-push-health.test.ts): the selection no longer filters on error_class and still requires an active connection. The first case fails without the change.
  • The alert-document and runbook unit tests pass. ESLint, Prettier, pnpm typecheck, the file-length check and the test-quality check are clean.

🤖 Generated with Claude Code

…tion-age alert

sync.reconciliation-age left out every Property with a recorded sync failure,
so a Property whose full reads all failed could not raise the alert that
watches for a Property with no completed read. The read now judges every
syncable Property alike. A connection that needs reauthorization, including
one revoked by the provider, is not syncable and stays out: its reconnect
notice is its signal. Runbook, alerts table and ADR 0055 are updated.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@ecc-tools

ecc-tools Bot commented Nov 4, 2026

Copy link
Copy Markdown

ECC Tools / Security Evidence

Commit: 5a1d7e56bea65ec74948bfcc688ffc3e598936e9

Security evidence gate passed (success)

No security-sensitive scanner-evidence gap detected.

Mode: enforce

Scanned 6 changed file(s). No missing scanner-evidence signal was detected.

Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission.

@ecc-tools

ecc-tools Bot commented Nov 4, 2026

Copy link
Copy Markdown

ECC Tools / PR Risk Taxonomy

Commit: 5a1d7e56bea65ec74948bfcc688ffc3e598936e9

PR taxonomy review recommended (neutral)

Detected 1 PR taxonomy bucket(s): CI/CD Recommendation.

Scanned 6 changed file(s).

Roadmap taxonomy buckets:

CI/CD Recommendation

CI, dependency, coverage, and contract signals should be routed into follow-up checks or verification work.

Signals:

  • Schema or model changes may ship without migration follow-up
  • 2 CI or workflow path(s) changed

Paths:

  • src/shared/db/sync-push-health.integration.test.ts
  • src/shared/db/sync-push-health.test.ts
  • src/shared/db/sync-push-health.ts

Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission.

@ecc-tools

ecc-tools Bot commented Nov 4, 2026

Copy link
Copy Markdown

ECC Tools / Reference Set Readiness

Commit: 5a1d7e56bea65ec74948bfcc688ffc3e598936e9

Reference set readiness gaps detected (neutral)

Reference evidence present for 0/7 areas (0%) across 6 changed file(s).

This check is based on files changed in this PR. Repository-level readiness is still reported by /ecc-tools analyze comments and generated manifests.

Area Status Evidence / Next Step
Deep analyzer corpus Missing Add analyzer fixture, golden, benchmark, or reference-set files that can catch analyzer regressions.
RAG/evaluator comparison Missing Add retrieval or evaluator reference-set comparison fixtures with expected ranking behavior.
PR salvage/review corpus Missing Add stale-PR, review-thread, reopen-flow, or salvage reference cases for queue cleanup automation.
Discussion triage corpus Missing Add public discussion triage fixtures, golden cases, or reference sets for informational, answered, and no-response classifications.
Harness compatibility Missing Add cross-harness, adapter-compliance, or harness-audit evidence for Claude, Codex, OpenCode, Zed, dmux, and agent surfaces.
Security evidence Missing Attach security evidence such as SBOMs, SARIF, audit reports, or AgentShield evidence packs.
CI failure-mode evidence Missing Add captured CI failure logs, dry-run fixtures, or troubleshooting docs for common workflow failure modes.

Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission.

@kodes-agency
kodes-agency enabled auto-merge (squash) November 4, 2026 20:52
@ecc-tools

ecc-tools Bot commented Nov 4, 2026

Copy link
Copy Markdown

ECC Tools / Hosted Promotion Readiness

Commit: 5a1d7e56bea65ec74948bfcc688ffc3e598936e9

Hosted promotion readiness passed (success)

No hosted promotion evidence gaps detected across 6 changed file(s); 0 corpus scenarios had matching evidence.

This check compares PR file changes against the evaluator/RAG promotion corpus in src/analyzers/fixtures/evaluator-rag-corpus.ts.
Hosted output scoring inspected 0 completed cached hosted job results.

No evaluator corpus scenarios matched this PR.

Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission.

@ecc-tools

ecc-tools Bot commented Nov 4, 2026

Copy link
Copy Markdown

ECC Tools / Security Evidence

Commit: 51098b6dfbe893833a5deb191ac46b407a89e1aa

Security evidence gate passed (success)

No security-sensitive scanner-evidence gap detected.

Mode: enforce

Scanned 6 changed file(s). No missing scanner-evidence signal was detected.

Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission.

@ecc-tools

ecc-tools Bot commented Nov 4, 2026

Copy link
Copy Markdown

ECC Tools / PR Risk Taxonomy

Commit: 51098b6dfbe893833a5deb191ac46b407a89e1aa

PR taxonomy review recommended (neutral)

Detected 1 PR taxonomy bucket(s): CI/CD Recommendation.

Scanned 6 changed file(s).

Roadmap taxonomy buckets:

CI/CD Recommendation

CI, dependency, coverage, and contract signals should be routed into follow-up checks or verification work.

Signals:

  • Schema or model changes may ship without migration follow-up
  • 2 CI or workflow path(s) changed

Paths:

  • src/shared/db/sync-push-health.integration.test.ts
  • src/shared/db/sync-push-health.test.ts
  • src/shared/db/sync-push-health.ts

Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission.

@ecc-tools

ecc-tools Bot commented Nov 4, 2026

Copy link
Copy Markdown

ECC Tools / Reference Set Readiness

Commit: 51098b6dfbe893833a5deb191ac46b407a89e1aa

Reference set readiness gaps detected (neutral)

Reference evidence present for 0/7 areas (0%) across 6 changed file(s).

This check is based on files changed in this PR. Repository-level readiness is still reported by /ecc-tools analyze comments and generated manifests.

Area Status Evidence / Next Step
Deep analyzer corpus Missing Add analyzer fixture, golden, benchmark, or reference-set files that can catch analyzer regressions.
RAG/evaluator comparison Missing Add retrieval or evaluator reference-set comparison fixtures with expected ranking behavior.
PR salvage/review corpus Missing Add stale-PR, review-thread, reopen-flow, or salvage reference cases for queue cleanup automation.
Discussion triage corpus Missing Add public discussion triage fixtures, golden cases, or reference sets for informational, answered, and no-response classifications.
Harness compatibility Missing Add cross-harness, adapter-compliance, or harness-audit evidence for Claude, Codex, OpenCode, Zed, dmux, and agent surfaces.
Security evidence Missing Attach security evidence such as SBOMs, SARIF, audit reports, or AgentShield evidence packs.
CI failure-mode evidence Missing Add captured CI failure logs, dry-run fixtures, or troubleshooting docs for common workflow failure modes.

Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission.

@ecc-tools

ecc-tools Bot commented Nov 4, 2026

Copy link
Copy Markdown

ECC Tools / Hosted Promotion Readiness

Commit: 51098b6dfbe893833a5deb191ac46b407a89e1aa

Hosted promotion readiness passed (success)

No hosted promotion evidence gaps detected across 6 changed file(s); 0 corpus scenarios had matching evidence.

This check compares PR file changes against the evaluator/RAG promotion corpus in src/analyzers/fixtures/evaluator-rag-corpus.ts.
Hosted output scoring inspected 0 completed cached hosted job results.

No evaluator corpus scenarios matched this PR.

Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission.

@kodes-agency
kodes-agency merged commit 3e081f6 into main Nov 4, 2026
23 of 25 checks passed
@kodes-agency
kodes-agency deleted the fix/reconciliation-age-failed-properties branch November 4, 2026 22:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant