You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Three fixes from this session's audit of the product-uplift roadmap, each
root-caused, fixed, and verified with a full workspace test run + real B7
benchmark re-run:
1. Express (`rename_express_set_charset`): `build_resolution_context`'s
`path_lang` map was populated only from the `symbols` table, so a file
with zero top-level named declarations (any Mocha/Jest-style
`describe`/`it` test file) never got a `path_lang` entry, silently
zeroing every outgoing call edge from that file regardless of
confidence. Fixed by seeding `path_lang` from `file_index` instead,
which records every indexed file regardless of symbol count.
2. Zod (`rename_zod_prettify_error`): `import_node_types` never walked
`export_statement` for JS/TS, so `export { x } from 'y'` re-exports
never produced an `import_edges` row. Zod's real re-export is a 2-hop
wildcard barrel chain, so `reference_impact`'s import-edge lookup is
now a bounded BFS (`REFERENCE_IMPACT_MAX_REEXPORT_HOPS`) instead of a
single-hop query. New `parse_js_export_from` reuses the existing
`symbols_used = '[]'` wildcard convention from `parse_rust_import`.
3. Canonical PolicyDecision (roadmap item 3): `compute_touch_risk` — the
function feeding both real write gates (`edit_lines_impl_gated`'s
block decision and `edit_context`'s `gate_prediction`) — never
considered `touches_manifest`/`touches_uncovered_code`, two axes
`policy::evaluate()` already escalates to `Policy::default()`'s
maximally-conservative `high` floor. Those axes were only ever
computed on the CCK-10 authority-digest branch, never on the plain
confirm/reason path every edit_lines/edit_symbol call takes by
default. Fixed by folding both floors into compute_touch_risk's own
escalation chain (reads the project's real policy.toml config, not
hardcoded), so a manifest edit or an edit to uncovered code is finally
gated the same way on both paths. Also corrected a stale policy/mod.rs
doc comment claiming nothing reads the policy module yet.
B7 benchmark now passes 6/6 via the calm_v2 arm with zero regressions.
Full details, root-cause narratives, and verification chains in
docs/plans/2026-08-20-product-uplift-and-b7v2-roadmap.md (§8-§14).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
0 commit comments