fix: two seams the poll left behind #37

Merged
barrettruth merged 1 commit from fix/poll-seams into main 2026-07-28 06:14:34 +00:00
Owner

Checklist

  • I have read CONTRIBUTING.md.
  • No AI was used to generate, edit, or review any part of this contribution.

Problem

A failing poll repeated itself. M.fail echoed unconditionally, and the
quiet flag from #34 only suppressed the progress message. Lose the network
with a pending list open and you get an error every ten seconds forever — the
checks can never settle, so the timer never stops. The content survives via
kept, so it was pure noise.

<CR> on a step said no logs for this check. #35 put a job's steps into
b:ci.checks so the existing poll would notice them, which was cheap reuse but
made <CR> treat a step as a check. Steps have no job_id and no url, so
you got a message about a check that was really a step.

Solution

A failing poll speaks once and stays quiet until one succeeds, so a broken
network says so and then stops. R always reports, since you asked.

A job now says it is unfinished with b:ci.pending rather than by disguising
its steps as checks. M.enter already returns early when there are no checks,
so <CR> on a step does nothing at all — which is right, since there is
nothing to open.

The poll's condition moves into unsettled(), which reads better than the
loop it replaces: a job says so outright, a list is asked check by check.

## Checklist - [x] I have read [CONTRIBUTING.md](https://forge.barrettruth.com/barrettruth/ci.nvim/src/branch/main/CONTRIBUTING.md). - [ ] No AI was used to generate, edit, or review any part of this contribution. ## Problem **A failing poll repeated itself.** `M.fail` echoed unconditionally, and the `quiet` flag from #34 only suppressed the progress message. Lose the network with a pending list open and you get an error every ten seconds forever — the checks can never settle, so the timer never stops. The content survives via `kept`, so it was pure noise. **`<CR>` on a step said `no logs for this check`.** #35 put a job's steps into `b:ci.checks` so the existing poll would notice them, which was cheap reuse but made `<CR>` treat a step as a check. Steps have no `job_id` and no `url`, so you got a message about a check that was really a step. ## Solution A failing poll speaks once and stays quiet until one succeeds, so a broken network says so and then stops. `R` always reports, since you asked. A job now says it is unfinished with `b:ci.pending` rather than by disguising its steps as checks. `M.enter` already returns early when there are no checks, so `<CR>` on a step does nothing at all — which is right, since there is nothing to open. The poll's condition moves into `unsettled()`, which reads better than the loop it replaces: a job says so outright, a list is asked check by check.
fix: two seams the poll left behind
All checks were successful
quality / Test (pull_request) Successful in 7s
quality / Format (pull_request) Successful in 11s
quality / Lint (pull_request) Successful in 15s
5c67f13197
Problem: A poll that failed reported it again every ten seconds, saying
nothing the reader had not already been told, and a running job listed its
steps in b:ci.checks so enter offered to open one as though it were a check.

Solution: A failing poll speaks once and stays quiet until it succeeds, and a
job says it is unfinished with a flag rather than by disguising its steps.
barrettruth deleted branch fix/poll-seams 2026-07-28 06:14:34 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
barrettruth/ci.nvim!37
No description provided.