en un clic
audit-feature-interaction
// Analyze feature interaction pairs and triples for concurrent defects
// Analyze feature interaction pairs and triples for concurrent defects
Differential audit comparing matched code paths that should behave identically. Spawns one auditor per sibling pair (sync/async, bounded/unbounded, view consistency, bulk vs single, generated node variants, read fast vs slow) and requires a concrete witness scenario where the two paths diverge observably.
Heavyweight history-mining bug audit. Walks the caffeine module's git history chronologically (oldest to HEAD), maintains a forward-tracked issue database, and surfaces concerns introduced by past commits that were never resolved. Catches bugs that snapshot mining cannot — half-fixes invisible from current state, latent+trigger pairs across multi-commit interactions, and partial refactors. Slow (~8-14 hours) and rare-run (every several months or before a major release).
Find places where documented API contracts and the implementation diverge
Audit exception safety and failure atomicity across all throw sites
Analyze concurrent iteration and view consistency guarantees
Java Memory Model audit of all VarHandle/volatile field access modes
| name | audit-feature-interaction |
| description | Analyze feature interaction pairs and triples for concurrent defects |
| context | fork |
| agent | auditor |
| disable-model-invocation | true |
Analyze the cache for defects arising from multiple features operating simultaneously on the same entry.
Assume at least one feature interaction bug exists. If your analysis yields zero findings, re-examine the top-priority pairs below — explain specifically why no interleaving produces a bug.
Priority ranking (from confirmed historical bugs):
Features: A. Eviction (size/weight limit exceeded) B. Expiration (afterAccess, afterWrite, variable) C. Reference collection (weak key, weak value, soft value GC) D. Refresh (automatic reload) E. Loading (CacheLoader / computeIfAbsent) F. Async completion (CompletableFuture values) G. Listener notification (removal listener, eviction listener) H. Weight change (Weigher returning different weight for new value)
For each pair (A,B), (A,C), ..., (G,H) — 28 pairs total:
After all pairs, identify highest-risk TRIPLE interactions:
High-risk pairwise combinations:
For each defect: state the features involved, provide the interleaving, state the incorrect behavior.