Session summary

default

scored

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

Measurements

Unavailable values retain their exported state and reason

Quality

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

Review outcomes

Distinct matched defects 11
Defects missed 9
Findings 11
Unkeyed findings 0
Intended findings 0
Carried findings Not recorded

Cost, usage, and speed

Total bill $0.3303
Review bill $0.3303
Judge bill N/A
Tokens 1702
Duration 4m 47s

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 / 89cd13e3b4e0
Configuration ID
config-323a87a9eb99b1e3
Build
afi 0.30.0 / b0f313c0b59a66ecc7612396dc8db0ea5da13a7a
Comparison
comparison-004ca4a8ec71f5cd
Build ID
build-13a6e5be87bc4a53
Cohort ID
cohort-fdab2adfb8a4bd39
Harness
bench 1 / 348a7e367b8c52f1ce72828ed09c15b0e9fac38b dirty
Adapter
afi 1 / sha256:a1a935298956020ee6d767a756847abb4c00694c88c2eb80d454886ebc4acf8c
Exit code
0
Wall time
287
Deadline exceeded
No
Budget
$8.00
Billing limit
$8.00

Usage

Normalized reviewer-tool usage projection

Input tokens
15
Output tokens
1687
Cached input
101760
Reasoning tokens
18860
Requests
5
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

A newly committed blob has no index until after registry registration, so a concurrent sweep treats it as orphaned, deletes it, and makes the fetch fail with 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 f2

bug

fs::metadata` follows directory symlinks, allowing the recursive sweep to traverse and delete files outside `CAIRN_BLOB_DIR`

bug
Category: bug Confidence: Not recorded

services/proxy/src/sweep.rs:164

Evidence quote

Not recorded

Suggested fix

Not recorded

matchedDefect 4 (locality)
Finding f3

bug

Every `incoming` file is unlinked without distinguishing active blob or index writes, so a sweep concurrent with a fetch can make its commit fail

bug
Category: bug Confidence: Not recorded

services/proxy/src/sweep.rs:232

Evidence quote

Not recorded

Suggested fix

Not recorded

matchedDefect 17 (locality)
Finding f4

bug

The admin route calls unlocked `sweep` directly, allowing manual requests to overlap each other and the locked background sweep, contrary to the one-at-a-time guarantee

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 f5

bug

The synchronous recursive filesystem sweep runs directly on a Tokio worker, so a large store can block runtime capacity and stall unrelated requests

bug
Category: bug Confidence: Not recorded

services/proxy/src/sweep.rs:84

Evidence quote

Not recorded

Suggested fix

Not recorded

matchedDefect 11 (locality)
Finding f6

performance

Sorting elapsed ages ascending evicts the youngest eligible blobs first, opposite the documented oldest-first policy and reducing cache hit rate

performance
Category: performance Confidence: Not recorded

services/proxy/src/sweep.rs:102

Evidence quote

Not recorded

Suggested fix

Not recorded

matchedDefect 1 (locality)
Finding f7

bug

An unlink failure is only logged before the candidate is counted as removed, causing false reclaimed metrics and deletion of index entries for a blob still present

bug
Category: bug Confidence: Not recorded

services/proxy/src/sweep.rs:126

Evidence quote

Not recorded

Suggested fix

Not recorded

matchedDefect 2 (locality)
Finding f8

bug

forget` runs during dry runs, so `?dry_run=true` destructively removes index entries for projected eviction candidates

bug
Category: bug Confidence: Not recorded

services/proxy/src/sweep.rs:140

Evidence quote

Not recorded

Suggested fix

Not recorded

matchedDefect 12 (locality)
Finding f9

performance

Tokio interval’s first and overdue ticks resolve immediately, so the sweeper runs at startup and can run continuously back-to-back after an overrun instead of waiting a full interval

performance
Category: performance Confidence: Not recorded

services/proxy/src/main.rs:115

Evidence quote

Not recorded

Suggested fix

Not recorded

matchedDefect 8 (locality)
Finding f10

bug

Sweep byte and blob values are reversed relative to `COUNTERS`, so each Prometheus metric reports the other metric’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 f11

bug

Using `remaining >= max_bytes` evicts an eligible blob when the cache is already exactly at its allowed ceiling

bug
Category: bug Confidence: Not recorded

services/proxy/src/sweep.rs:120

Evidence quote

Not recorded

Suggested fix

Not recorded

matchedDefect 3 (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 ·