Tasks: one repository's failure is that repository's
Phase 3 of 3. Small, verifiable tasks; each
_Test:_names a row oftesting-plan.md.
Task list
[x] 1. The contract:
Listing,ScopeFailure,listing(),scope_of()cli/the_loop/poller/base.py; re-exported frompoller/__init__.py.- Depends on: none
- Requirements: R1.4
- Test:
T2
[x] 2. The GitHub provider lists per repository and quarantines disabled Issues
cli/the_loop/poller/github.py:listing,_list_scope, the_issues_offledger and re-probe,scope_of,list_work_itemsas the strict form.- Security-relevant (A2, A3): issues only are withheld; one exact message classifies.
- Depends on: 1
- Requirements: R1.1, R2.1–R2.4
- Test:
T1
[x] 3. The core consumes the listing, records per scope, reconciles per scope
cli/the_loop/poller/poller.py:_poll_provider,_reconcile_closures(…, degraded),PollSummaryfields, the cycle log line;eventlog.pycatalogue entries forpoll.scope_error,poll.scope_degraded,poll.scope_recovered.- Security-relevant (A4): a degraded scope's sessions are never asked about closure.
- Depends on: 1
- Requirements: R1.1–R1.3, R2.1, R2.3
- Test:
T2, T5
[x] 4. The heartbeat carries the scopes and
statusrenders themcli/the_loop/poller/heartbeat.py(_counters),cli/the_loop/poller/daemon.py(heartbeat_lines).- Depends on: 3
- Requirements: R3.1–R3.4
- Test:
T3
[x] 5. The integration scenario
cli/tests/test_poller_integration.py: a two-repositoryghdouble through the ticket's sequence.- Depends on: 2, 3
- Requirements: R4.1
- Test:
T4
[x] 6. Docs, capability docs, decision, execution log, evidence
docs/config/cli/polling-options.md,docs/cli/commands/status.md,docs/cli/state.md,docs/capabilities/cli.md,docs/decisions/decision-106.md(+ index),docs/specs/issue-315/execution-log.md,evidence/.- Depends on: 1–5
- Requirements: all
- Test:
T6, T7 — make check