Skip to content

fix(automation): stop watcher alerts on availability and doc churn - #108

Merged
trefeon merged 1 commit into
mainfrom
fix/watcher-false-positives
Oct 22, 2026
Merged

trefeon merged 1 commit into
mainfrom
fix/watcher-false-positives

Conversation

@trefeon

@trefeon trefeon commented Oct 22, 2026

Copy link
Copy Markdown
Owner

What was wrong

The two scheduled watchers filed issues that needed manual triage but described nothing actionable:

  • Free-model health check (every 12h): any non-2xx answer was treated as a model failure. Issue 🚨 OpenCode Free Tier Model Disruption (2026-10-22 10:57 UTC) #107 was filed for longcat-2.5-preview-free (HTTP 402, Upstream request failed: Endpoint is unavailable.) and flint-40b-free (a 503 that cleared on the next sample). Ten such issues in eight days, each closed once upstream recovered.
  • Upstream watcher (daily): filed on release tags, docs edits and free-model listing churn — 13 issues in 30 days. The listing is not authoritative for presence: it currently omits cat-jam-free and nemotron-3-ultra-free, while both answer 200.

What changed

Health check classifies every sample and only alerts on a model-level answer (400/401/403/404 without the shared availability body, 410). Rate limits, server faults, network errors and the endpoint-unavailable answer are retried (three samples), reported in the run summary with a ::warning:: annotation, and never open an issue. A probe-cap timeout is reported as inconclusive, not as a verdict. An existing alert issue is edited in place instead of collecting a comment every 12 hours.

Upstream watcher alerts only on a session-schema change (identifier.ts / session-id.ts), which is the one signal that can break compatibility. Release tags, docs edits and listing churn land in the run summary as informational, and the baseline advances on every successful read so nothing repeats daily. A rebaseline dispatch input re-establishes the baseline and closes an open alert.

Verification

  • npm run typecheck clean; full suite 1160 pass / 0 fail (1161 tests).
  • Live probe against upstream: exit 0 with longcat 402 retried three times and classified unavailable — this exact state filed 🚨 OpenCode Free Tier Model Disruption (2026-10-22 10:57 UTC) #107 under the old code.
  • Live watcher run against upstream: release moved v1.19.3 → v2.1.3, listing changed (four models dropped, two added) → informational report, exit 0, no issue.

Closes #107 (evidence comment follows).

The 12-hourly free-model check treated any non-2xx answer as a model
failure, so an upstream 402 "Endpoint is unavailable" or a 503 blip filed
an issue that needed manual triage and closed itself hours later. The
daily upstream watcher filed on release tags, docs edits and free-model
listing churn, none of which is actionable.

The health check now classifies every sample: only a model-level answer
(400/401/403/404 without the shared availability body, 410) alerts.
Rate limits, server faults, network errors and the endpoint-unavailable
answer are retried, reported in the run summary and never open an issue;
a probe-cap timeout is reported as inconclusive. An existing alert issue
is edited in place instead of collecting a comment every run.

The upstream watcher now alerts only on session-schema changes, keeps
informational changes in the run summary, advances that baseline every
run so nothing repeats, and offers a manual re-baseline dispatch input.
Copilot AI balanced review requested due to automatic review settings October 22, 2026 12:58

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@trefeon
trefeon merged commit ca2d840 into main Oct 22, 2026
7 checks passed
@trefeon
trefeon deleted the fix/watcher-false-positives branch October 22, 2026 13:01
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.

🚨 OpenCode Free Tier Model Disruption (2026-10-22 10:57 UTC)

2 participants