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 45%
Model-judged precision N/A
F1 N/A
Tier 1 recall 100%
Tier 2 recall 28.6%
Tier 3 recall 33.3%
Tier 4 recall 50%
Security recall 0%
Defect recall 61.5%
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 9
Defects missed 11
Findings 9
Unkeyed findings 0
Intended findings 0
Carried findings Not recorded

Cost, usage, and speed

Total bill $0.0218
Review bill $0.0218
Judge bill N/A
Tokens 1099
Duration 1m 43s

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
103
Deadline exceeded
No
Budget
$2.00
Billing limit
$2.00

Usage

Normalized reviewer-tool usage projection

Input tokens
12
Output tokens
1087
Cached input
57887
Reasoning tokens
7602
Requests
4
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

The sweep removes every file in `incoming`, including active `BlobWriter` temporary files; the fetch later cannot rename its unlinked temporary file into the blob store and fails.

bug
Category: bug Confidence: Not recorded

services/proxy/src/sweep.rs:232

Evidence quote

Not recorded

Suggested fix

Not recorded

matchedDefect 17 (locality)
Finding f2

bug

An unindexed blob can be deleted between `BlobWriter::commit` and `store.link`, causing the in-flight fetch to finish with an index entry pointing to a missing 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 f3

bug

The on-demand route calls `sweep` directly instead of using the `running` mutex held by `run`, so it can race with the background sweep and over-evict the cache.

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 f4

bug

After `remove_file` fails at line 126, the sweep still subtracts the size and records the blob as removed, so it can report false reclamation, stop before reaching the ceiling, and remove its index… After `remove_file` fails at line 126, the sweep still subtracts the size and records the blob as removed, so it can report false reclamation, stop before reaching the ceiling, and remove its index entry.

bug
Category: bug Confidence: Not recorded

services/proxy/src/sweep.rs:134

Evidence quote

Not recorded

Suggested fix

Not recorded

matchedDefect 2 (locality)
Finding f5

bug

age` is time since modification, so ascending sort processes newer blobs before older ones; over-limit sweeps therefore evict the newest eligible blobs instead of the oldest.

bug
Category: bug Confidence: Not recorded

services/proxy/src/sweep.rs:102

Evidence quote

Not recorded

Suggested fix

Not recorded

matchedDefect 1 (locality)
Finding f6

bug

The values array emits reclaimed bytes before removed blobs, while `COUNTERS` declares blobs before bytes, causing both Prometheus metrics to report each other’s values.

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

performance

The synchronous full filesystem walk and unlink sequence runs directly on a Tokio executor worker, so a large cache sweep can block unrelated request handling.

performance
Category: performance Confidence: Not recorded

services/proxy/src/sweep.rs:84

Evidence quote

Not recorded

Suggested fix

Not recorded

matchedDefect 11 (locality)
Finding f8

bug

Using `remaining >= max_bytes` evicts an age-eligible blob even when the store is exactly at its configured ceiling, and can remove one extra blob after reaching the ceiling.

bug
Category: bug Confidence: Not recorded

services/proxy/src/sweep.rs:120

Evidence quote

Not recorded

Suggested fix

Not recorded

matchedDefect 3 (locality)
Finding f9

bug

tokio::time::interval` completes its first tick immediately, contrary to the comment and intended behavior, so the proxy performs a sweep at startup rather than after one 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 ·