Coverage report:
100%
hide covered
Files
Functions
Classes
coverage.py v7.16.2
, created at 2026-10-02 20:26 +0000
Statements
Branches
Total
File
class
coverage
statements
missing
excluded
coverage
branches
partial
coverage
src
/
keel
/
__init__.py
(no class)
100%
1
0
0
100%
0
0
100%
src
/
keel
/
activity.py
ActivityError
100%
0
0
0
100%
0
0
100%
src
/
keel
/
activity.py
(no class)
100%
178
0
0
100%
72
0
100%
src
/
keel
/
agents.py
(no class)
100%
92
0
0
100%
26
0
100%
src
/
keel
/
api_delegate.py
ApiResult
100%
3
0
0
100%
2
0
100%
src
/
keel
/
api_delegate.py
GuardedAddressError
100%
0
0
0
100%
0
0
100%
src
/
keel
/
api_delegate.py
_guarded_handlers.GuardedHTTPHandler
100%
1
0
0
100%
0
0
100%
src
/
keel
/
api_delegate.py
_guarded_handlers.GuardedHTTPSHandler
100%
1
0
0
100%
0
0
100%
src
/
keel
/
api_delegate.py
(no class)
100%
215
0
4
100%
68
0
100%
src
/
keel
/
artifacts.py
(no class)
100%
327
0
0
100%
106
0
100%
src
/
keel
/
branchscope.py
(no class)
100%
47
0
0
100%
20
0
100%
src
/
keel
/
canary.py
CanaryResult
100%
1
0
0
100%
0
0
100%
src
/
keel
/
canary.py
RollbackResult
100%
1
0
0
100%
0
0
100%
src
/
keel
/
canary.py
(no class)
100%
73
0
0
100%
20
0
100%
src
/
keel
/
capabilities.py
(no class)
100%
9
0
0
100%
4
0
100%
src
/
keel
/
capture.py
_HasPolicyPack
100%
0
0
0
100%
0
0
100%
src
/
keel
/
capture.py
CaptureError
100%
0
0
0
100%
0
0
100%
src
/
keel
/
capture.py
CaptureMarker
100%
2
0
0
100%
0
0
100%
src
/
keel
/
capture.py
TreeEntry
100%
1
0
0
100%
0
0
100%
src
/
keel
/
capture.py
(no class)
100%
811
0
0
100%
350
0
100%
src
/
keel
/
captureverify.py
(no class)
100%
73
0
0
100%
28
0
100%
src
/
keel
/
checkpoint.py
CheckpointError
100%
0
0
0
100%
0
0
100%
src
/
keel
/
checkpoint.py
(no class)
100%
241
0
0
100%
96
0
100%
src
/
keel
/
classify.py
(no class)
100%
68
0
0
100%
46
0
100%
src
/
keel
/
cli.py
_SnapshotFailed
100%
2
0
0
100%
0
0
100%
src
/
keel
/
cli.py
(no class)
100%
4785
0
15
100%
1312
0
100%
src
/
keel
/
closeorder.py
ObservedIssue
100%
1
0
0
100%
0
0
100%
src
/
keel
/
closeorder.py
(no class)
100%
57
0
0
100%
22
0
100%
src
/
keel
/
closure.py
(no class)
100%
212
0
0
100%
60
0
100%
src
/
keel
/
config.py
ConfigError
100%
4
0
0
100%
0
0
100%
src
/
keel
/
config.py
DelegateProfile
100%
4
0
0
100%
2
0
100%
src
/
keel
/
config.py
Knobs
100%
0
0
0
100%
0
0
100%
src
/
keel
/
config.py
Automation
100%
0
0
0
100%
0
0
100%
src
/
keel
/
config.py
ProjectConfig
100%
3
0
0
100%
2
0
100%
src
/
keel
/
config.py
(no class)
100%
337
0
0
100%
120
0
100%
src
/
keel
/
consent.py
(no class)
100%
148
0
0
100%
66
0
100%
src
/
keel
/
consentverify.py
ObservedEffects
100%
10
0
0
100%
8
0
100%
src
/
keel
/
consentverify.py
(no class)
100%
81
0
0
100%
20
0
100%
src
/
keel
/
contracts.py
(no class)
100%
307
0
0
100%
142
0
100%
src
/
keel
/
cost.py
CostReport
100%
8
0
0
100%
6
0
100%
src
/
keel
/
cost.py
(no class)
100%
151
0
0
100%
50
0
100%
src
/
keel
/
delegate.py
DelegateError
100%
3
0
0
100%
0
0
100%
src
/
keel
/
delegate.py
Resolution
100%
0
0
0
100%
0
0
100%
src
/
keel
/
delegate.py
Effort
100%
0
0
0
100%
0
0
100%
src
/
keel
/
delegate.py
RunPlan
100%
1
0
0
100%
0
0
100%
src
/
keel
/
delegate.py
(no class)
100%
279
0
1
100%
120
0
100%
src
/
keel
/
delegaterun.py
RunIdError
100%
0
0
0
100%
0
0
100%
src
/
keel
/
delegaterun.py
(no class)
100%
308
0
4
100%
80
0
100%
src
/
keel
/
doctor.py
CheckResult
100%
1
0
0
100%
0
0
100%
src
/
keel
/
doctor.py
(no class)
100%
256
0
2
100%
120
0
100%
src
/
keel
/
dryrunverify.py
ArtifactSnapshot
100%
0
0
0
100%
0
0
100%
src
/
keel
/
dryrunverify.py
(no class)
100%
38
0
0
100%
6
0
100%
src
/
keel
/
evidence.py
EvidenceItem
100%
1
0
0
100%
0
0
100%
src
/
keel
/
evidence.py
_ReviewTally
100%
0
0
0
100%
0
0
100%
src
/
keel
/
evidence.py
(no class)
100%
688
0
0
100%
288
0
100%
src
/
keel
/
extensions.py
ExtensionError
100%
0
0
0
100%
0
0
100%
src
/
keel
/
extensions.py
Extension
100%
0
0
0
100%
0
0
100%
src
/
keel
/
extensions.py
(no class)
100%
105
0
2
100%
44
0
100%
src
/
keel
/
findings.py
FindingError
100%
0
0
0
100%
0
0
100%
src
/
keel
/
findings.py
Finding
100%
2
0
0
100%
2
0
100%
src
/
keel
/
findings.py
Verdict
100%
0
0
0
100%
0
0
100%
src
/
keel
/
findings.py
(no class)
100%
41
0
0
100%
4
0
100%
src
/
keel
/
fixloop.py
FixloopError
100%
0
0
0
100%
0
0
100%
src
/
keel
/
fixloop.py
Rung
100%
1
0
0
100%
0
0
100%
src
/
keel
/
fixloop.py
(no class)
100%
252
0
0
100%
100
0
100%
src
/
keel
/
flows.py
Phase
100%
0
0
0
100%
0
0
100%
src
/
keel
/
flows.py
(no class)
100%
23
0
0
100%
0
0
100%
src
/
keel
/
gates.py
GateError
100%
0
0
0
100%
0
0
100%
src
/
keel
/
gates.py
GateSpec
100%
0
0
0
100%
0
0
100%
src
/
keel
/
gates.py
PanelReuse
100%
1
0
0
100%
0
0
100%
src
/
keel
/
gates.py
GateOutcome
100%
0
0
0
100%
0
0
100%
src
/
keel
/
gates.py
(no class)
100%
175
0
3
100%
62
0
100%
src
/
keel
/
git.py
(no class)
100%
109
0
0
100%
16
0
100%
src
/
keel
/
github.py
(no class)
100%
246
0
1
100%
82
0
100%
src
/
keel
/
github_transport.py
GitHubTransport
100%
8
0
0
100%
4
0
100%
src
/
keel
/
github_transport.py
(no class)
100%
27
0
0
100%
6
0
100%
src
/
keel
/
guard.py
GuardError
100%
0
0
0
100%
0
0
100%
src
/
keel
/
guard.py
Rule
100%
6
0
0
100%
4
0
100%
src
/
keel
/
guard.py
GuardResult
100%
2
0
0
100%
0
0
100%
src
/
keel
/
guard.py
(no class)
100%
71
0
0
100%
20
0
100%
src
/
keel
/
install.py
OrphanFileStatus
100%
1
0
0
100%
0
0
100%
src
/
keel
/
install.py
AdapterFileStatus
100%
0
0
0
100%
0
0
100%
src
/
keel
/
install.py
(no class)
100%
378
0
0
100%
130
0
100%
src
/
keel
/
intake.py
IssueContext
100%
1
0
0
100%
0
0
100%
src
/
keel
/
intake.py
(no class)
100%
205
0
0
100%
86
0
100%
src
/
keel
/
jsonschema_min.py
(no class)
100%
98
0
0
100%
76
0
100%
src
/
keel
/
jury.py
JuryReportError
100%
0
0
0
100%
0
0
100%
src
/
keel
/
jury.py
Ballot
100%
1
0
0
100%
0
0
100%
src
/
keel
/
jury.py
Panel
100%
8
0
0
100%
4
0
100%
src
/
keel
/
jury.py
(no class)
100%
277
0
0
100%
100
0
100%
src
/
keel
/
juryavail.py
Seat
100%
1
0
0
100%
0
0
100%
src
/
keel
/
juryavail.py
Runner
100%
2
0
0
100%
0
0
100%
src
/
keel
/
juryavail.py
Availability
100%
9
0
0
100%
2
0
100%
src
/
keel
/
juryavail.py
(no class)
100%
114
0
0
100%
28
0
100%
src
/
keel
/
ledger.py
LedgerError
100%
0
0
0
100%
0
0
100%
src
/
keel
/
ledger.py
(no class)
100%
345
0
0
100%
164
0
100%
src
/
keel
/
lock.py
LockError
100%
0
0
0
100%
0
0
100%
src
/
keel
/
lock.py
ClaimResult
100%
1
0
0
100%
0
0
100%
src
/
keel
/
lock.py
(no class)
100%
139
0
12
100%
24
0
100%
src
/
keel
/
loop.py
LoopError
100%
0
0
0
100%
0
0
100%
src
/
keel
/
loop.py
LoopPolicy
100%
1
0
0
100%
0
0
100%
src
/
keel
/
loop.py
GateResult
100%
10
0
0
100%
6
0
100%
src
/
keel
/
loop.py
LoopDecision
100%
3
0
0
100%
0
0
100%
src
/
keel
/
loop.py
(no class)
100%
248
0
0
100%
94
0
100%
src
/
keel
/
mergeverify.py
(no class)
100%
29
0
0
100%
12
0
100%
src
/
keel
/
model.py
Step
100%
0
0
0
100%
0
0
100%
src
/
keel
/
model.py
Slot
100%
0
0
0
100%
0
0
100%
src
/
keel
/
model.py
(no class)
100%
34
0
0
100%
0
0
100%
src
/
keel
/
orchestrator.py
PlanHook
100%
0
0
0
100%
0
0
100%
src
/
keel
/
orchestrator.py
PlanSlot
100%
0
0
0
100%
0
0
100%
src
/
keel
/
orchestrator.py
PlanItem
100%
0
0
0
100%
0
0
100%
src
/
keel
/
orchestrator.py
(no class)
100%
78
0
0
100%
22
0
100%
src
/
keel
/
project_commands.py
ProjectCommand
100%
1
0
0
100%
0
0
100%
src
/
keel
/
project_commands.py
(no class)
100%
40
0
0
100%
14
0
100%
src
/
keel
/
provenance.py
(no class)
100%
27
0
0
100%
2
0
100%
src
/
keel
/
providerprobe.py
ProbeResult
100%
3
0
0
100%
0
0
100%
src
/
keel
/
providerprobe.py
(no class)
100%
164
0
0
100%
60
0
100%
src
/
keel
/
providers.py
Provider
100%
6
0
0
100%
2
0
100%
src
/
keel
/
providers.py
Registry
100%
1
0
0
100%
0
0
100%
src
/
keel
/
providers.py
(no class)
100%
217
0
0
100%
76
0
100%
src
/
keel
/
redaction.py
RedactionError
100%
0
0
0
100%
0
0
100%
src
/
keel
/
redaction.py
RedactionRule
100%
0
0
0
100%
0
0
100%
src
/
keel
/
redaction.py
RedactionPolicy
100%
0
0
0
100%
0
0
100%
src
/
keel
/
redaction.py
RedactionResult
100%
0
0
0
100%
0
0
100%
src
/
keel
/
redaction.py
(no class)
100%
100
0
0
100%
36
0
100%
src
/
keel
/
revertcheck.py
Settings
100%
0
0
0
100%
0
0
100%
src
/
keel
/
revertcheck.py
Hunk
100%
1
0
0
100%
0
0
100%
src
/
keel
/
revertcheck.py
FileDiff
100%
5
0
0
100%
0
0
100%
src
/
keel
/
revertcheck.py
Change
100%
0
0
0
100%
0
0
100%
src
/
keel
/
revertcheck.py
Plan
100%
0
0
0
100%
0
0
100%
src
/
keel
/
revertcheck.py
Tally
100%
1
0
0
100%
0
0
100%
src
/
keel
/
revertcheck.py
RunResult
100%
0
0
0
100%
0
0
100%
src
/
keel
/
revertcheck.py
Reverted
100%
0
0
0
100%
0
0
100%
src
/
keel
/
revertcheck.py
ChangeResult
100%
0
0
0
100%
0
0
100%
src
/
keel
/
revertcheck.py
Report
100%
0
0
0
100%
0
0
100%
src
/
keel
/
revertcheck.py
Verdict
100%
0
0
0
100%
0
0
100%
src
/
keel
/
revertcheck.py
(no class)
100%
524
0
0
100%
202
0
100%
src
/
keel
/
review.py
ReviewError
100%
0
0
0
100%
0
0
100%
src
/
keel
/
review.py
ReviewItem
100%
0
0
0
100%
0
0
100%
src
/
keel
/
review.py
PostTarget
100%
1
0
0
100%
0
0
100%
src
/
keel
/
review.py
ReviewPlan
100%
1
0
0
100%
0
0
100%
src
/
keel
/
review.py
(no class)
100%
124
0
0
100%
46
0
100%
src
/
keel
/
runcontrols.py
HaltReason
100%
1
0
0
100%
0
0
100%
src
/
keel
/
runcontrols.py
(no class)
100%
134
0
0
100%
42
0
100%
src
/
keel
/
runner.py
CommandResult
100%
0
0
0
100%
0
0
100%
src
/
keel
/
runner.py
(no class)
100%
70
0
2
100%
12
0
100%
src
/
keel
/
runtime.py
Capability
100%
1
0
0
100%
0
0
100%
src
/
keel
/
runtime.py
CapabilityReport
100%
12
0
0
100%
6
0
100%
src
/
keel
/
runtime.py
CapabilityRequirement
100%
2
0
0
100%
0
0
100%
src
/
keel
/
runtime.py
CapabilityEvaluation
100%
8
0
0
100%
4
0
100%
src
/
keel
/
runtime.py
(no class)
100%
136
0
0
100%
28
0
100%
src
/
keel
/
scaffold.py
(no class)
100%
218
0
0
100%
88
0
100%
src
/
keel
/
scope.py
(no class)
100%
25
0
0
100%
12
0
100%
src
/
keel
/
ship.py
MergeDecision
100%
0
0
0
100%
0
0
100%
src
/
keel
/
ship.py
ShipAssessment
100%
0
0
0
100%
0
0
100%
src
/
keel
/
ship.py
(no class)
100%
178
0
0
100%
60
0
100%
src
/
keel
/
standalone.py
(no class)
100%
183
0
0
100%
74
0
100%
src
/
keel
/
status.py
(no class)
100%
98
0
0
100%
32
0
100%
src
/
keel
/
stepverifier.py
HandoffField
100%
11
0
0
100%
8
0
100%
src
/
keel
/
stepverifier.py
StepRequirement
100%
1
0
0
100%
0
0
100%
src
/
keel
/
stepverifier.py
(no class)
100%
151
0
0
100%
66
0
100%
src
/
keel
/
swarm.py
SwarmPlanError
100%
0
0
0
100%
0
0
100%
src
/
keel
/
swarm.py
IssueScope
100%
6
0
0
100%
2
0
100%
src
/
keel
/
swarm.py
Difficulty
100%
7
0
0
100%
2
0
100%
src
/
keel
/
swarm.py
SwarmCluster
100%
7
0
0
100%
2
0
100%
src
/
keel
/
swarm.py
SwarmWave
100%
6
0
0
100%
2
0
100%
src
/
keel
/
swarm.py
SwarmPlan
100%
13
0
0
100%
4
0
100%
src
/
keel
/
swarm.py
SwarmWorkerStatus
100%
6
0
0
100%
2
0
100%
src
/
keel
/
swarm.py
SwarmRunState
100%
1
0
0
100%
0
0
100%
src
/
keel
/
swarm.py
SwarmRunResult
100%
1
0
0
100%
0
0
100%
src
/
keel
/
swarm.py
LandingDecision
100%
1
0
0
100%
0
0
100%
src
/
keel
/
swarm.py
ClusterClosure
100%
1
0
0
100%
0
0
100%
src
/
keel
/
swarm.py
SwarmLandingResult
100%
1
0
0
100%
0
0
100%
src
/
keel
/
swarm.py
AssignmentOverrides
100%
1
0
0
100%
0
0
100%
src
/
keel
/
swarm.py
(no class)
100%
856
0
0
100%
320
0
100%
src
/
keel
/
swarm_landing.py
PullRequestLookup
100%
0
0
0
100%
0
0
100%
src
/
keel
/
swarm_landing.py
ClusterMerge
100%
0
0
0
100%
0
0
100%
src
/
keel
/
swarm_landing.py
(no class)
100%
178
0
0
100%
60
0
100%
src
/
keel
/
swarm_review.py
PullRequestFacts
100%
0
0
0
100%
0
0
100%
src
/
keel
/
swarm_review.py
ReviewSeat
100%
4
0
0
100%
0
0
100%
src
/
keel
/
swarm_review.py
SeatVerdict
100%
1
0
0
100%
0
0
100%
src
/
keel
/
swarm_review.py
ClusterReview
100%
2
0
0
100%
0
0
100%
src
/
keel
/
swarm_review.py
SwarmReviewResult
100%
4
0
0
100%
2
0
100%
src
/
keel
/
swarm_review.py
(no class)
100%
366
0
0
100%
120
0
100%
src
/
keel
/
swarm_review_runtime.py
ReviewIO
100%
0
0
0
100%
0
0
100%
src
/
keel
/
swarm_review_runtime.py
(no class)
100%
157
0
0
100%
40
0
100%
src
/
keel
/
swarm_runtime.py
LiveRun
100%
0
0
0
100%
0
0
100%
src
/
keel
/
swarm_runtime.py
(no class)
100%
499
0
0
100%
160
0
100%
src
/
keel
/
swarm_worker.py
ConsentDelegation
100%
2
0
0
100%
0
0
100%
src
/
keel
/
swarm_worker.py
GitSnapshot
100%
0
0
0
100%
0
0
100%
src
/
keel
/
swarm_worker.py
WorktreeDisposal
100%
0
0
0
100%
0
0
100%
src
/
keel
/
swarm_worker.py
WorktreeEntry
100%
0
0
0
100%
0
0
100%
src
/
keel
/
swarm_worker.py
SwarmRunRecord
100%
0
0
0
100%
0
0
100%
src
/
keel
/
swarm_worker.py
SwarmLeftover
100%
1
0
0
100%
0
0
100%
src
/
keel
/
swarm_worker.py
(no class)
100%
349
0
0
100%
102
0
100%
src
/
keel
/
tdd.py
Mode
100%
2
0
0
100%
0
0
100%
src
/
keel
/
tdd.py
Change
100%
2
0
0
100%
0
0
100%
src
/
keel
/
tdd.py
Commit
100%
3
0
0
100%
0
0
100%
src
/
keel
/
tdd.py
OrderResult
100%
1
0
0
100%
0
0
100%
src
/
keel
/
tdd.py
(no class)
100%
167
0
0
100%
54
0
100%
src
/
keel
/
team.py
JuryUnavailableError
100%
0
0
0
100%
0
0
100%
src
/
keel
/
team.py
Seat
100%
16
0
0
100%
12
0
100%
src
/
keel
/
team.py
Bench
100%
0
0
0
100%
0
0
100%
src
/
keel
/
team.py
TeamPolicy
100%
12
0
0
100%
8
0
100%
src
/
keel
/
team.py
(no class)
100%
470
0
0
100%
248
0
100%
src
/
keel
/
vocab.py
(no class)
100%
10
0
0
100%
0
0
100%
src
/
keel
/
window.py
(no class)
100%
20
0
0
100%
6
0
100%
src
/
keel
/
wizard.py
Candidate
100%
6
0
0
100%
2
0
100%
src
/
keel
/
wizard.py
Catalog
100%
20
0
0
100%
12
0
100%
src
/
keel
/
wizard.py
Choice
100%
0
0
0
100%
0
0
100%
src
/
keel
/
wizard.py
Question
100%
27
0
0
100%
14
0
100%
src
/
keel
/
wizard.py
State
100%
11
0
0
100%
4
0
100%
src
/
keel
/
wizard.py
Resolution
100%
23
0
0
100%
16
0
100%
src
/
keel
/
wizard.py
WizardError
100%
0
0
0
100%
0
0
100%
src
/
keel
/
wizard.py
(no class)
100%
341
0
0
100%
116
0
100%
src
/
keel
/
wizardrun.py
(no class)
100%
69
0
12
100%
36
0
100%
src
/
keel
/
workblock.py
(no class)
100%
31
0
0
100%
14
0
100%
src
/
keel
/
workcreation.py
WorkDecision
100%
4
0
0
100%
2
0
100%
src
/
keel
/
workcreation.py
(no class)
100%
84
0
0
100%
18
0
100%
src
/
keel
/
workspace.py
(no class)
100%
113
0
0
100%
32
0
100%
src
/
keel
/
yaml_helper.py
(no class)
100%
14
0
0
100%
0
0
100%
Total
100%
19243
0
58
100%
6636
0
100%
No items found using the specified filter.