mirror of
https://github.com/DeusData/codebase-memory-mcp.git
synced 2026-10-22 06:09:35 +08:00
scripts/ci/select-lanes.sh maps a PR's changed-file list to a tier, a lane set, a full flag and the reasons: each path gets a category, the categories give a tier (T0a docs .. T5 core), the tier gives the R1 lanes, and a few categories add lanes of their own (pkg -> wrappers + 3-OS smoke, graph-ui -> Windows guards, memory core -> memwaste, ...). It fails safe: tier T5, an unmatched path, an empty list, the selector itself, any workflow, the test harness, Makefile.cbm and vendored code select every lane. The output is a pure function of the file set. tests/test_select_lanes.sh pins the decision table (43 cases), determinism (order, duplicates, CRLF), the input channels and the lane universe. scripts/test-impact/replay-selector.sh replays all 767 September 2026 PR pushes and the 22 real failures from a compact fixture: every push gets its expected tier (729 equal to the analysis, 38 documented deviations where the analysis split Makefile.cbm diffs by content and the selector, seeing names only, is conservatively full), and every real failure's lane is selected. Both run as Step 0z/0z2 of scripts/test.sh. Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>