Commit 8f90919
committed
fix(v4-dispatch): classify PathEUnavailable as selection signal, not runtime crash (RULE #1 FIRE)
_path_e_call wrapped op.gated_delta_update in a bare `except Exception` that routed ANY exception
-- including the INTENTIONAL PathEUnavailable (raised when the GDN gate is amplifying g>0, an
availability/selection signal) -- through _dispatch_failure_or_fallback (the always-RAISE crash
path). So forcing path_e with an amplifying gate misclassified "not eligible for this input" as a
kernel crash and tripped the RULE #1 guard.
Fix: catch PathEUnavailable BEFORE the bare except and route it through _fallback_or_raise (mirrors
the static-unavailability routing); keep the bare except for genuine kernel crashes. Same pre-catch
applied to kda_paths.py _path_e_call (KDA adapter raises PathEUnavailable for ineligible shapes).
NOT a RULE #1 weakening: PathEUnavailable is an explicit selection signal (like static
unavailability); _fallback_or_raise still RAISES when allow_fallback=False, and genuine crashes
still route through the always-raise handler. Metal: forced path_e+amplifying+allow_fallback=True
-> falls back to A (no raise); +allow_fallback=False -> raises; genuine crash -> still raises.
test_path_dispatch.py 25 passed.1 parent 0fd2072 commit 8f90919
2 files changed
Lines changed: 22 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
255 | 255 | | |
256 | 256 | | |
257 | 257 | | |
| 258 | + | |
258 | 259 | | |
259 | 260 | | |
| 261 | + | |
| 262 | + | |
| 263 | + | |
| 264 | + | |
| 265 | + | |
| 266 | + | |
| 267 | + | |
| 268 | + | |
260 | 269 | | |
261 | 270 | | |
262 | 271 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
280 | 280 | | |
281 | 281 | | |
282 | 282 | | |
| 283 | + | |
| 284 | + | |
283 | 285 | | |
284 | 286 | | |
285 | 287 | | |
| |||
290 | 292 | | |
291 | 293 | | |
292 | 294 | | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
| 298 | + | |
| 299 | + | |
| 300 | + | |
| 301 | + | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
| 305 | + | |
293 | 306 | | |
294 | 307 | | |
295 | 308 | | |
| |||
0 commit comments