Commit 8634ea3
committed
fix(diffctx): MODE config now reads env on each call (was Lazy)
Convert `MODE: Lazy<ModeConfig>` static to `mode() -> ModeConfig` function,
symmetric with the existing `selection()` and `rescue()` patterns in
`config/selection.rs`. This is required for in-process reuse loops
(`pool_eval_all_cells` for L sweep / multi-budget / hyperparameter
sensitivity) where env vars change between cells — a Lazy static would
freeze the value at first read and silently make per-cell env mutation
a no-op.
`from_mode()` in `mode.rs` now calls `mode_config()` once at the top of
the match and uses the snapshot for all three branches; behavior is
identical to the previous static for any single-process invocation.
Smoke-verified: `DIFFCTX_OP_GRAPH_DEPTH=0` and `=2` produce different
`fragment_count` outputs on the same repo+diff.
Also updates paper limitations section with an honest spot-check of
Aider PolyBench-500 fair-input recall (0.284 intent-to-treat). Root
cause analysis from the existing checkpoints shows:
- 17% (85/500) helper-process timeouts at the 600s wall
- 7.4% (37/500) tree-sitter QueryError "Invalid node type at row 2,
column 2: module" — grammar version mismatch in aider-chat==0.86.2
against the installed tree-sitter parsers
- of the 378 ok-status runs, 45% still return recall=0 because
Aider's RepoMap heuristic does not surface the deep paths typical
of multi-language repos (Java packages, Python nested modules)
Aider ok% by dataset: 94.0% swebench / 84.8% contextbench / 75.6%
polybench. The 0.284 number is not an integration bug — ok-only
sensitivity on PolyBench-500 still gives only 0.375, well below
external BM25 (0.673 on the same cells).1 parent 2506d93 commit 8634ea3
4 files changed
Lines changed: 35 additions & 10 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| |||
18 | 18 | | |
19 | 19 | | |
20 | 20 | | |
21 | | - | |
| 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 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | | - | |
| 2 | + | |
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
| |||
62 | 62 | | |
63 | 63 | | |
64 | 64 | | |
| 65 | + | |
65 | 66 | | |
66 | 67 | | |
67 | 68 | | |
68 | 69 | | |
69 | 70 | | |
70 | | - | |
71 | | - | |
| 71 | + | |
| 72 | + | |
72 | 73 | | |
73 | 74 | | |
74 | 75 | | |
75 | 76 | | |
76 | 77 | | |
77 | 78 | | |
78 | 79 | | |
79 | | - | |
80 | | - | |
| 80 | + | |
| 81 | + | |
81 | 82 | | |
82 | 83 | | |
83 | 84 | | |
84 | 85 | | |
85 | 86 | | |
86 | 87 | | |
87 | 88 | | |
88 | | - | |
89 | | - | |
| 89 | + | |
| 90 | + | |
90 | 91 | | |
91 | 92 | | |
92 | 93 | | |
| |||
Binary file not shown.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
677 | 677 | | |
678 | 678 | | |
679 | 679 | | |
680 | | - | |
| 680 | + | |
681 | 681 | | |
682 | 682 | | |
683 | 683 | | |
| |||
0 commit comments