1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
use crateread_env_usize;
// Returns a fresh `ModeConfig` snapshot, reading every env override on
// each call. Symmetric with `selection()`/`rescue()` in `config/selection.rs`
// — needed because in-process reuse loops (e.g. `pool_eval_all_cells` for
// a depth or budget sweep) mutate the env per cell, and a `Lazy` static
// would freeze the values at first access.
//
// `DIFFCTX_OP_GRAPH_DEPTH` overrides the graph traversal radius used by
// any scoring mode that walks the typed dependency graph (currently EGO;
// other modes that consume a depth parameter will read the same knob).
// The framework abstracts scoring as a pluggable signal, so the depth
// control is named after the underlying graph operation, not the mode.
//
// Used by the L sweep to run depth in {0, 1, 2, 3, 4} from the same
// binary without rebuilding. At depth 0 the EGO instantiation reduces
// to seed-only relevance (rel_scores carries cores at score 1.0, every
// non-core fragment is filtered before selection); the post-passes
// (coherence + rescue + changed-files) still run, so depth=0 measures
// "framework without graph propagation in scoring", not "trivial diff
// baseline".