Session summary

default

scored

afi / afi · cli reviewed proxy at 9b51f95e with Default profile / OpenAI · gpt 5.6 luna high on afi 0.30.0

Measurements

Unavailable values retain their exported state and reason

Quality

Recall 40%
Model-judged precision N/A
F1 N/A
Tier 1 recall 66.7%
Tier 2 recall 28.6%
Tier 3 recall 33.3%
Tier 4 recall 50%
Security recall 0%
Defect recall 53.8%
Maintainability recall 0%
Performance recall 33.3%
Median anchor distance 0
Worst anchor distance 0
Refusals a judge overturned Not recorded

Review outcomes

Distinct matched defects 8
Defects missed 12
Findings 8
Unkeyed findings 0
Intended findings 0
Carried findings Not recorded

Cost, usage, and speed

Total bill $0.0387
Review bill $0.0387
Judge bill N/A
Tokens 1427
Duration 3m 12s

Execution and identity

Lifecycle, reviewer, build, settings, and normalized execution limits

Lifecycle
completed
Lifecycle reason
Not recorded
Started
Finished
Reviewer
afi
Reviewer tool
afi · cli
Configuration
default / 8c8c79c46163
Configuration ID
config-657388b88e14616d
Build
afi 0.30.0 / b0f313c0b59a66ecc7612396dc8db0ea5da13a7a
Comparison
comparison-2f7717ed5785716d
Build ID
build-33906dcd701a0660
Cohort ID
cohort-fdab2adfb8a4bd39
Harness
bench 1 / 631c4107752a97104719622800c9815e030613cf dirty
Adapter
afi 1 / sha256:a1a935298956020ee6d767a756847abb4c00694c88c2eb80d454886ebc4acf8c
Exit code
0
Wall time
192
Deadline exceeded
No
Budget
$2.00
Billing limit
$2.00

Usage

Normalized reviewer-tool usage projection

Input tokens
21
Output tokens
1406
Cached input
237890
Reasoning tokens
15080
Requests
7
Models counted
Not recorded

Judge

Normalized assessment summary

Judge data is N/A for this run

Findings

Review text is escaped; normalized decisions follow each finding

Finding f1

bug

,140: Dry runs still pass the populated `gone` list to `forget`, deleting index entries even though the blobs were not removed; `?dry_run=true` therefore changes cache behavior and causes subsequent… ,140: Dry runs still pass the populated `gone` list to `forget`, deleting index entries even though the blobs were not removed; `?dry_run=true` therefore changes cache behavior and causes subsequent requests to refetch.

bug
Category: bug Confidence: Not recorded

services/proxy/src/sweep.rs:137

Evidence quote

Not recorded

Suggested fix

Not recorded

matchedDefect 2 (locality)
Finding f2

bug

The sweep deletes every file in `incoming` without distinguishing active writers from abandoned partials, so an in-flight fetch can have its temporary file unlinked and then fail at… The sweep deletes every file in `incoming` without distinguishing active writers from abandoned partials, so an in-flight fetch can have its temporary file unlinked and then fail at `BlobWriter::commit`.

bug
Category: bug Confidence: Not recorded

services/proxy/src/sweep.rs:232

Evidence quote

Not recorded

Suggested fix

Not recorded

matchedDefect 17 (locality)
Finding f3

bug

A newly committed blob has no index entry until the later link operation, so the sweep can delete it in that window and make the current fetch fail when it reopens the committed blob.

bug
Category: bug Confidence: Not recorded

services/proxy/src/sweep.rs:119

Evidence quote

Not recorded

Suggested fix

Not recorded

matchedDefect 18 (locality)
Finding f4

bug

The synchronous sweep bypasses `Sweeper::running`, allowing concurrent admin sweeps and overlap with the background sweep, which can produce conflicting scans and over-eviction.

bug
Category: bug Confidence: Not recorded

services/proxy/src/routes/admin.rs:76

Evidence quote

Not recorded

Suggested fix

Not recorded

matchedDefect 11 (locality)
Finding f5

bug

The full synchronous filesystem walk and index read run directly on a Tokio request worker, so a large cache or concurrent sweep requests can block unrelated proxy traffic.

bug
Category: bug Confidence: Not recorded

services/proxy/src/routes/admin.rs:76

Evidence quote

Not recorded

Suggested fix

Not recorded

matchedDefect 6 (locality)
Finding f6

bug

The values place reclaimed bytes before removed blobs, while `COUNTERS` declares blobs before bytes, causing both sweep Prometheus metrics to report the other counter's value.

bug
Category: bug Confidence: Not recorded

services/proxy/src/metrics.rs:94

Evidence quote

Not recorded

Suggested fix

Not recorded

matchedDefect 13 (locality)
Finding f7

bug

Using `remaining >= max_bytes` evicts an eligible old blob even when the store is exactly at its configured ceiling, unnecessarily shrinking the cache on every sweep at that boundary.

bug
Category: bug Confidence: Not recorded

services/proxy/src/sweep.rs:120

Evidence quote

Not recorded

Suggested fix

Not recorded

matchedDefect 3 (locality)
Finding f8

bug

tokio::time::interval` fires its first tick immediately, contrary to the comment and intended behavior, so a proxy sweeps the cache during startup instead of waiting for the configured interval.

bug
Category: bug Confidence: Not recorded

services/proxy/src/main.rs:108

Evidence quote

Not recorded

Suggested fix

Not recorded

matchedDefect 7 (locality)

Source artifacts

Open a row to inspect or download evidence from this atomically published local run

findings present

Open verified source artifact

Open this path at the exported commit

The artifact is present; its content is available through the verified source link

meta present

Open verified source artifact

Open this path at the exported commit

The artifact is present; its content is available through the verified source link

record present

Open verified source artifact

Open this path at the exported commit

The artifact is present; its content is available through the verified source link

result present

Open verified source artifact

Open this path at the exported commit

The artifact is present; its content is available through the verified source link

spend present

Open verified source artifact

Open this path at the exported commit

The artifact is present; its content is available through the verified source link

stderr present

Open verified source artifact

Open this path at the exported commit

The artifact is present; its content is available through the verified source link

summary present

Open verified source artifact

Open this path at the exported commit

The artifact is present; its content is available through the verified source link

traffic present

Open verified source artifact

Open this path at the exported commit

The artifact is present; its content is available through the verified source link

benchee benchee-dashboard-1 built from 10f4ec58 Static benchmark evidence ·