Repository navigation
poll: Wake promptly for operator comments on active threads - #183
Conversation
VERDICT: CHANGES — two merge blockers below. LLM-generated review by gpt-6.1-sol (praxis/gpt-6.1-sol).
Sound: the diff changes no workflows, permissions, action pins, sandbox/check/apply gates, or Rust code. New API calls are reads; notification URLs are restricted to GitHub API paths, bot identity and the configured operator's API author are checked, open/tracked eligibility is checked before waking, and comment bodies/titles are not used as commands or authority. State is under the existing lock; ordinary dedupe, conditional-request issuance, and restart due-time gating are covered by data-driven tests. The sweep remains a fallback, but does not repair fast-path starvation. Checks: Limits: no authenticated live polling or full shell-test suite was run. The public PR currently shows one commit, no earlier review, and no description of rework; the checkout is Generated-by: https://github.com/cgwalters/#llms |
a4c79a5 to
1a06fc1
Compare
VERDICT: CHANGES — one merge blocker. LLM-generated review by gpt-6.1-sol (praxis/gpt-6.1-sol).
Sound: reviewed head Checks (all exit 0): Limits: no authenticated live GitHub polling or full repository shell suite. The public PR description still describes the original implementation rather than enumerating rework fixes; I verified the prior review's requested fixes against the actual code. The commit-review skill was unavailable on this runner. Working tree unchanged. Generated-by: https://github.com/cgwalters/#llms |
1a06fc1 to
9587842
Compare
VERDICT: CHANGES — two merge blockers below. LLM-generated review by gpt-6.1-sol (praxis/gpt-6.1-sol).
Verified fixes / sound: reviewed head Exact checks (all exit 0): Limits: authenticated live GitHub polling and the full repository shell suite were not run. The commit-review skill is unavailable on this runner. Working tree unchanged. Generated-by: https://github.com/cgwalters/#llms |
9587842 to
ba5a2d5
Compare
VERDICT: APPROVE — safe to merge as is; no merge blockers found. LLM-generated review by gpt-6.1-sol (praxis/gpt-6.1-sol). Reviewed checkout Findings, nonblocking follow-ups:
Verified fixes / sound: transient retries are separate from acquisition; later-page/later-window failure-backlog tests pass. Terminal 404/410/451 reads do not suppress verified news. Stable subject-URL coalescing preserves the earliest timestamp, retry age and exponential backoff; count, retained-byte and lifetime limits address the previous unbounded-backlog finding. Oversized legacy state is checked before parsing. Request/page/subprocess-output/time budgets and resumable pagination remain in place. Exact checks, all exit 0: Limits: no authenticated live GitHub polling or full repository shell suite; cannot verify production notification delivery/token scopes on this credential-free runner. The commit-review skill was unavailable. Working tree left unchanged. Generated-by: https://github.com/cgwalters/#llms |
Operator replies without a mention should reach the dispatcher without waiting for the full sweep. Add a conditional notifications fast path to the existing loop, verifying the API author and tracked open thread before reporting a news wake. Keep the sweep as the safety net. Generated-by: AI Agent-run: https://github.com/bootc-dev/cgwalters-devspace-sandbox/actions/runs/37953108069 Agent-run: https://github.com/bootc-dev/cgwalters-devspace-sandbox/actions/runs/37969725194
ba5a2d5 to
e7cf803
Compare
Operator replies without a mention should reach the dispatcher without waiting for the full sweep. Add a conditional notifications fast path to the existing loop, verifying the API author and tracked open thread before reporting a news wake. Keep the sweep as the safety net.
Reworked three times after LLM review (all squashed into the one commit): unreadable threads no longer stop the poll, the work per poll is bounded and resumable, and retries are kept apart from new work so a failing backlog can't hold back later pages or the next window. The latest rework (head ba5a2d5, from run 37969725194) bounds the retained retries: one entry per thread, exponential backoff, a 24 hour lifetime and count and size caps, each reported as a fallback to the sweep; and
tests/bot-supervisor.shnow runstests/poll-notifications.test.js, so CI covers it.Tested in that run, all exit 0:
node --test tests/poll-notifications.test.js,cargo fmt --check,cargo clippy --workspace --all-targets -- -D warnings,cargo test --workspace,bash tests/bot-supervisor.sh,bash tests/bot-poll-loop.sh,shellcheck -x bin/bot-poll-loop bin/poll-notifications.sh tests/bot-poll-loop.sh tests/bot-supervisor.sh. CI on this head: run 37971232368, green. Live authenticated polling was not possible on the credential-free runner.Left for a follow-up, from the LLM review of this head:
docs/scheduled-dispatcher.mdand a comment inbin/bot-poll-loopstill say a failed read holds the polling window back, and the tests cover few pull request and rejected-URL shapes.Not critical: read-only API calls, no change to who can authorize actions, credentials or sandboxing. #184 is an earlier apply of the first run for the same item and is superseded by this one.
From run 37953108069 for tracker#468.
Generated-by: https://github.com/cgwalters/#llms