Commit Graph
640 Commits
Author SHA1 Message Date
Marius Ciepluch a8a28f81f3 feat(detection-core): JS handler extraction for bind(this)/arrow/class-method routes (8.2 part 3); fold in load_pack_file repairing 51971cd import 2026-10-30 20:10:22 +01:00
Marius Ciepluch 51971cda7e feat(detection-core): package-rooted entry packs wired into JS recognition; fact digest covers packs (8.2 part 2) 2026-10-30 19:25:30 +01:00
Marius Ciepluch 1d5a509424 feat(detection-core): recognition target table and first express fact pack (8.2 part 1) 2026-10-30 18:46:19 +01:00
Marius Ciepluch 4a1167dfdd feat(detection-core): 8.1 prover native conformance to core trace/coverage contracts 2026-10-30 18:37:04 +01:00
Marius Ciepluch af400c6be4 feat(detection-core): runner migration onto core contracts, schema validation, E2E 2026-10-30 17:12:33 +01:00
Marius Ciepluch c924a69514 feat(detection-core): fact-pack admission and push-consumer contracts 2026-10-30 17:05:24 +01:00
Marius Ciepluch 43fd59f960 feat(detection-core): anti-shortcut probes and fitted-component admission gate 2026-10-30 16:27:27 +01:00
Marius Ciepluch 46b4579d01 feat(detection-core): generalized admission contract with family-scope reports 2026-10-30 16:22:40 +01:00
Marius Ciepluch eb9fe856f9 feat(detection-core): prover trace/coverage conformance adapters to the core contract 2026-10-30 16:18:22 +01:00
Marius Ciepluch 92fb372498 feat(detection-core): measured per-class budget replacing the static 120s gate 2026-10-30 16:11:37 +01:00
Marius Ciepluch 0b56ad5514 feat(detection-core): foundation contract package (trace, verdict, coverage, provenance) 2026-10-30 16:04:10 +01:00
Marius Ciepluch 1edc4790af feat(access-control-prover): 13.4 admission measurement 2026-10-30 13:25:34 +01:00
Marius Ciepluch d063167b28 feat(access-control-prover): 13.3 four-arm development regression 2026-10-30 12:37:19 +01:00
Marius Ciepluch 9c95f842f7 feat(access-control-prover): 12.6 paired scoring and admission report 2026-10-30 10:25:37 +01:00
Marius Ciepluch 494c29182d feat(access-control-prover): 12.5 admission manifest consumption 2026-10-30 10:13:09 +01:00
Marius Ciepluch ea33222bf6 feat(access-control-prover): 12.4 four-arm development comparison 2026-10-30 09:44:27 +01:00
Marius Ciepluch 282a085f77 feat(access-control-prover): 12.3 instrument and hard runtime gates 2026-10-30 08:53:05 +01:00
Marius Ciepluch eb30d0386c feat(access-control-prover): 12.2 record provenance, stage funnel and judgment transitions 2026-10-30 08:38:58 +01:00
Marius Ciepluch 733e17ed3e feat(access-control-prover): 12.1 analyzer bundles 2026-10-30 08:38:09 +01:00
Marius Ciepluch 9e0a901ccc feat(access-control-prover): 13.2 cross-component validation scenarios 2026-10-30 08:19:25 +01:00
Marius Ciepluch f8e134a159 feat(access-control-prover): 13.1 abstract-domain and metamorphic law validation 2026-10-30 08:09:02 +01:00
Marius Ciepluch 85aa3b1484 feat(access-control-prover): 11.7 first label-blind development acquisition 2026-10-29 21:04:51 +01:00
Marius Ciepluch acadf04109 feat(access-control-prover): 11.6 migrate the stapler recogniser through the registry 2026-10-29 20:59:37 +01:00
Marius Ciepluch 3f241bc595 feat(access-control-prover): 11.5 acquisition provenance and label-isolated mode 2026-10-29 20:49:39 +01:00
Marius Ciepluch 09c3ffd621 feat(access-control-prover): 11.4 verify and promote proposed target knowledge 2026-10-29 20:34:52 +01:00
Marius Ciepluch c0e1360149 feat(access-control-prover): 11.3 extract existing target knowledge into candidate records 2026-10-29 20:29:15 +01:00
Marius Ciepluch c279513def feat(access-control-prover): 11.2 generic call-site registration strategy 2026-10-29 20:23:50 +01:00
Marius Ciepluch 86709daf2e feat(access-control-prover): 11.1 entry-recognition strategy registry 2026-10-29 20:19:31 +01:00
Marius Ciepluch 82e4a1ad97 feat(access-control-prover): 10.6 three-way judgments in the prover 2026-10-29 19:34:44 +01:00
Marius Ciepluch 95dfddb018 feat(access-control-prover): 10.5 multi-path aggregation in the opt-in abstract mode 2026-10-29 19:20:24 +01:00
Marius Ciepluch f700b99637 feat(access-control-prover): 10.4 one judgment per path 2026-10-29 19:17:37 +01:00
Marius Ciepluch 7eb491dc82 feat(access-control-prover): 10.3 authority matching through promoted implications 2026-10-29 19:11:30 +01:00
Marius Ciepluch cf60e02804 feat(access-control-prover): 10.2 witness kind, scope and resource matching 2026-10-29 19:05:51 +01:00
Marius Ciepluch 8ad304ffeb feat(access-control-prover): 10.1 abstract dominance relations without prover fallback 2026-10-29 19:01:25 +01:00
Marius Ciepluch f23d3f986d feat(access-control-prover): 9.4 exact evidence paths from summaries 2026-10-29 18:46:41 +01:00
Marius Ciepluch 06d5363ce2 feat(access-control-prover): 9.3 summary caches and explicit exploration cutoffs 2026-10-29 18:37:06 +01:00
Marius Ciepluch c237626f7a feat(access-control-prover): 9.2 monotone summaries over recursive call components 2026-10-29 18:30:18 +01:00
Marius Ciepluch fffa3e0002 feat(access-control-prover): 9.1 local function summaries 2026-10-29 18:25:23 +01:00
Marius Ciepluch 2466670ba3 feat(access-control-prover): 8.4 inheritance and base-declaration attachment through repo-defined descendants 2026-10-29 16:10:44 +01:00
Marius Ciepluch 8ef2629e0b feat(access-control-prover): 8.3 exact, finite-candidate and unresolved call targets 2026-10-29 16:04:51 +01:00
Marius Ciepluch 6f2154fae0 feat(access-control-prover): 8.2 stable declaration identities and per-change symbol index 2026-10-29 15:45:29 +01:00
Marius Ciepluch 9eee4d7f35 feat(access-control-prover): 8.1 capture call receiver and arity evidence in the semantic IR 2026-10-29 15:33:18 +01:00
Marius Ciepluch 03807f4ddd feat(access-control-prover): task 7.4 - judgment, trace and coverage contracts with abstract state 2026-10-29 15:23:43 +01:00
Marius Ciepluch 2f97fb2693 feat(access-control-prover): 7.3 authority abstract values and promoted implication facts 2026-10-29 15:06:53 +01:00
Marius Ciepluch 351583a04f feat(access-control-prover): 7.2 resource abstract values and operation-fact fields 2026-10-29 14:48:53 +01:00
Marius Ciepluch 5697a7fe9e feat(access-control-prover): 7.1 evidence-relation algebra and completeness value 2026-10-29 14:11:13 +01:00
Marius CiepluchandClaude Fable 5.1 03b114cbeb feat(prover): delivery D: control flow decides dominance; the trace carries each guard's relation, effect and the operation's control context
Opus agent delivery under spec access-control-prover, requirement 10. `semantic/cfg.py` builds a control-flow
graph per function from the syntax tree (if/else, switch arms, loops, try/catch/finally, return, throw, break,
continue, exit, assert) with dominators and a per-line control context, and leaves a function without a graph
rather than a wrong one. `obligations/cfg_dominance.py::CfgDominance` discharges a statement guard only when it
lies on every path to the operation and the operation is unreachable from its failing arm; a predicate whose
result nothing consumes is `value_only` and never discharges; router, decorator and earlier-hop witnesses behave
as before; without a graph the order rule applies and `cfg_unavailable` is recorded. The trace's guards carry
`relation` and `effect`, the trace carries `operation_context`; Java parameter lists carry names only; a
handler-named operation's arguments are the handler's parameters. The checker's default stays order-based.

Smoke on the 23 fix changes: 15 caught, 55 of 93 locations, precision 15 of 15, no failure, no change over
120 s (unchanged from delivery B). Gate: 3575 tests pass; the reserved-repository guard passes on the export.

Co-Authored-By: Claude Fable 5.1 <[email protected]>
2026-10-14 19:01:07 +02:00
Marius CiepluchandClaude Fable 5.1 2f628b921b feat(prover): delivery C: the ordered trace with argument provenance for every examined pair
Codex delivery under spec access-control-prover, requirement 9. `semantic/obligations/trace.py` serialises each
(entry, operation) pair the prover examined, discharged or unguarded: the entry with its boundary, access and
parameters; each hop in order with its call line, the guards before the call and the values forwarded; the
operation with the provenance of each argument traced through the function's binds; the guards after it; the
verdict. One canonical text form and one JSON form, no language, framework, repository, size or count fields.
The prover result, the arm record and each unguarded finding carry the traces. On the ec2-plugin fix: 32
traces, 4 unguarded. Gate: 3534 tests pass; the reserved-repository guard passes on the tracked export.

Co-Authored-By: Claude Fable 5.1 <[email protected]>
2026-10-14 18:22:45 +02:00
Marius CiepluchandClaude Fable 5.1 17e07b36c4 feat(prover): delivery B: handler-named operations, Symfony, Livewire, Remix and Tornado entries, enforcement witnesses, memoised path walk
Codex delivery under spec access-control-prover plus one fix of mine. Operation rows may now name a handler by
name pattern and framework (Jenkins form validation and list filling, Tornado request methods, Remix actions);
the mapper recognises Symfony, Livewire and Laravel controllers, Remix exports and Tornado handlers;
`obligations/enforcement.py` turns Laravel route middleware, Symfony attributes and security.yaml rules and
Tornado's authenticated decorator into router and decorator witnesses. The path walk looks each node's callers
up once per change and does not walk a tree with no recognised entry: one seatunnel change fell from 670 s to
35 s. One name Codex could not source (Tornado get_current_user) is left out and said so in the facts header.

Smoke on the 23 fix changes: 15 pushes caught (65 percent, Wilson 45 to 81), 55 of 93 locations, precision
15 of 15 flagged, no instrument failure, no change over 120 s. Delivery A caught 7.

Co-Authored-By: Claude Fable 5.1 <[email protected]>
2026-10-14 17:31:07 +02:00
Marius CiepluchandClaude Fable 5.1 beb272a5ec feat(prover): access-control prover, delivery A: path records, Stapler and Jetty entries, Java operation rows, the prover and its scoring arm
Codex delivery under spec access-control-prover. `semantic/obligations/paths.py` builds entry-to-function path
records from the cached caller index; `mapping.py` names Stapler web methods and Jetty handlers as entries;
`check_obligations` gains the opt-in premise `assume_entries_protected` with the label `unguarded_path`;
`hunt/prover.py` proves a change with no model call and states its coverage; `benchmarks/valid/prover_arm.py`
scores it with the valid-benchmark metrics. Two fixes after the first smoke run: a product file git holds empty
is read, not unread (four changes failed on `__init__.py` and empty assets), and absent-input reasons are
counted by name.

Smoke on the 23 fix changes of the training pool: 7 pushes caught (30 percent, Wilson 16 to 51), 28 of 93
locations, precision 7 of 8 flagged, no instrument failure; three changes over the 120 second bound. Twelve of
the 17 Jenkins fixes reach the fixed method but check no operation because the method is the operation;
the spec now carries handler-named operations for delivery B.

Co-Authored-By: Claude Fable 5.1 <[email protected]>
2026-10-14 16:50:04 +02:00