Commit 7c6c0dd
jgstern-agent
fix(verify-claims): taint-flow surfaces unsupported-language claim passes (INV-javam)
The io-boundaries side of INV-javam landed in the previous PR; this
PR completes the invariant on the taint-flow side.
When `hypergumbo verify-claims` evaluates a `taint_flow` constraint on
a repo whose languages have no sources / sinks in the taint catalog,
the claim trivially "confirms" — there are no propagation findings
because there was nothing to propagate. The verdict is a lie by
omission: the language wasn't analyzed at all.
cmd_verify_claims now tracks `unsupported_taint_languages` — the set
of repo languages where the taint catalog has zero sources AND zero
sinks. When taint claims are present and any unsupported languages
are detected, stderr carries an explicit notice:
Note: no taint-flow catalog for language(s): brainfuck, nim.
Claims touching these languages are NOT actually verified — taint-
flow has no sources/sinks to trace. Treat 'confirmed' verdicts on
these languages as inconclusive. (INV-javam)
Why stderr, not a verdict change: changing `confirmed` to a new
status (e.g. `indeterminate`) would require plumbing language-scope
into individual ClaimVerdict records and could break downstream
consumers. The stderr signal is the lower-risk move — human reviewers
see it, programmatic consumers can capture stderr when they care,
and the JSON output schema stays stable. If we later decide a
per-verdict `language_supported` field is worth the break, that's a
natural follow-up.
3 tests:
- test_verify_claims_notice_for_unsupported_taint_language: notice
fires for brainfuck-language repo with a taint_flow claim.
- test_verify_claims_no_notice_when_no_taint_claims: notice does NOT
fire for boundary-only claims (only taint-flow ones trigger it).
- test_verify_claims_no_notice_when_taint_language_supported:
notice does NOT fire when every language has catalog coverage
(anti-regression).
INV-javam stays at pending_validation; bakeoff will confirm the
two-part fix (io-boundaries + verify-claims) behaves correctly
end-to-end on unsupported-language repos.
Signed-off-by: jgstern-agent <josh-agent@iterabloom.com>1 parent 688fe97 commit 7c6c0dd
4 files changed
Lines changed: 177 additions & 3 deletions
File tree
- .ci
- packages/hypergumbo-core
- src/hypergumbo_core
- tests
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | | - | |
| 2 | + | |
3 | 3 | | |
4 | 4 | | |
5 | | - | |
| 5 | + | |
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
| 26 | + | |
26 | 27 | | |
27 | 28 | | |
28 | 29 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3270 | 3270 | | |
3271 | 3271 | | |
3272 | 3272 | | |
| 3273 | + | |
| 3274 | + | |
| 3275 | + | |
| 3276 | + | |
| 3277 | + | |
3273 | 3278 | | |
3274 | 3279 | | |
3275 | 3280 | | |
| |||
3282 | 3287 | | |
3283 | 3288 | | |
3284 | 3289 | | |
3285 | | - | |
| 3290 | + | |
| 3291 | + | |
| 3292 | + | |
| 3293 | + | |
| 3294 | + | |
| 3295 | + | |
| 3296 | + | |
3286 | 3297 | | |
3287 | 3298 | | |
3288 | 3299 | | |
| |||
3297 | 3308 | | |
3298 | 3309 | | |
3299 | 3310 | | |
| 3311 | + | |
| 3312 | + | |
| 3313 | + | |
3300 | 3314 | | |
3301 | 3315 | | |
3302 | 3316 | | |
| |||
3314 | 3328 | | |
3315 | 3329 | | |
3316 | 3330 | | |
| 3331 | + | |
| 3332 | + | |
| 3333 | + | |
| 3334 | + | |
| 3335 | + | |
| 3336 | + | |
| 3337 | + | |
| 3338 | + | |
| 3339 | + | |
| 3340 | + | |
| 3341 | + | |
| 3342 | + | |
| 3343 | + | |
3317 | 3344 | | |
3318 | 3345 | | |
3319 | 3346 | | |
| |||
Lines changed: 146 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
363 | 363 | | |
364 | 364 | | |
365 | 365 | | |
| 366 | + | |
| 367 | + | |
| 368 | + | |
| 369 | + | |
| 370 | + | |
| 371 | + | |
| 372 | + | |
| 373 | + | |
| 374 | + | |
| 375 | + | |
| 376 | + | |
| 377 | + | |
| 378 | + | |
| 379 | + | |
| 380 | + | |
| 381 | + | |
| 382 | + | |
| 383 | + | |
| 384 | + | |
| 385 | + | |
| 386 | + | |
| 387 | + | |
| 388 | + | |
| 389 | + | |
| 390 | + | |
| 391 | + | |
| 392 | + | |
| 393 | + | |
| 394 | + | |
| 395 | + | |
| 396 | + | |
| 397 | + | |
| 398 | + | |
| 399 | + | |
| 400 | + | |
| 401 | + | |
| 402 | + | |
| 403 | + | |
| 404 | + | |
| 405 | + | |
| 406 | + | |
| 407 | + | |
| 408 | + | |
| 409 | + | |
| 410 | + | |
| 411 | + | |
| 412 | + | |
| 413 | + | |
| 414 | + | |
| 415 | + | |
| 416 | + | |
| 417 | + | |
| 418 | + | |
| 419 | + | |
| 420 | + | |
| 421 | + | |
| 422 | + | |
| 423 | + | |
| 424 | + | |
| 425 | + | |
| 426 | + | |
| 427 | + | |
| 428 | + | |
| 429 | + | |
| 430 | + | |
| 431 | + | |
| 432 | + | |
| 433 | + | |
| 434 | + | |
| 435 | + | |
| 436 | + | |
| 437 | + | |
| 438 | + | |
| 439 | + | |
| 440 | + | |
| 441 | + | |
| 442 | + | |
| 443 | + | |
| 444 | + | |
| 445 | + | |
| 446 | + | |
| 447 | + | |
| 448 | + | |
| 449 | + | |
| 450 | + | |
| 451 | + | |
| 452 | + | |
| 453 | + | |
| 454 | + | |
| 455 | + | |
| 456 | + | |
| 457 | + | |
| 458 | + | |
| 459 | + | |
| 460 | + | |
| 461 | + | |
| 462 | + | |
| 463 | + | |
| 464 | + | |
| 465 | + | |
| 466 | + | |
| 467 | + | |
| 468 | + | |
| 469 | + | |
| 470 | + | |
| 471 | + | |
| 472 | + | |
| 473 | + | |
| 474 | + | |
| 475 | + | |
| 476 | + | |
| 477 | + | |
| 478 | + | |
| 479 | + | |
| 480 | + | |
| 481 | + | |
| 482 | + | |
| 483 | + | |
| 484 | + | |
| 485 | + | |
| 486 | + | |
| 487 | + | |
| 488 | + | |
| 489 | + | |
| 490 | + | |
| 491 | + | |
| 492 | + | |
| 493 | + | |
| 494 | + | |
| 495 | + | |
| 496 | + | |
| 497 | + | |
| 498 | + | |
| 499 | + | |
| 500 | + | |
| 501 | + | |
| 502 | + | |
| 503 | + | |
| 504 | + | |
| 505 | + | |
| 506 | + | |
| 507 | + | |
| 508 | + | |
| 509 | + | |
| 510 | + | |
| 511 | + | |
0 commit comments