Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
300 commits
Select commit Hold shift + click to select a range
d496736
fix(evals): reject invalid judge handoffs
aviggiano Aug 9, 2026
b4c16a1
refactor(artifacts): remove obsolete event repair API
aviggiano Aug 9, 2026
d2aa406
feat(evals): define benchmark analysis contracts
aviggiano Aug 9, 2026
920c30b
feat(evals): enforce benchmark semantic gates
aviggiano Aug 9, 2026
3164f59
fix(dashboard): reject malformed topology evidence
aviggiano Aug 9, 2026
a83a75a
fix(evals): consume closed event journals
aviggiano Aug 9, 2026
3741209
fix(runtime): require current Smithers inspect evidence
aviggiano Aug 9, 2026
0a52448
fix(cli): validate bundled event journals
aviggiano Aug 9, 2026
d214ac5
fix(cli): consume strict benchmark analysis contracts
aviggiano Aug 9, 2026
23e0644
chore: merge current main into strict JSON contracts
aviggiano Aug 9, 2026
017e19e
fix(references): register strict cache manifests
aviggiano Aug 9, 2026
ace0af3
fix(runtime): close state export JSON boundaries
aviggiano Aug 9, 2026
dcea39c
fix(evmbench): enforce strict benchmark contracts
aviggiano Aug 9, 2026
8f5ca4f
fix(runtime): reject malformed reference inputs
aviggiano Aug 9, 2026
dfcc20a
test(cli): pin strict Smithers fixture contracts
aviggiano Aug 9, 2026
7e78cd3
fix(cli): register EVMBench schemas
aviggiano Aug 9, 2026
042f2d2
feat(config): enforce resolved config v2 contract
aviggiano Aug 9, 2026
21d645d
fix(runtime): require exact status envelopes
aviggiano Aug 9, 2026
868802a
fix(config): dedupe named semantic diagnostics
aviggiano Aug 9, 2026
980f2b0
feat(artifacts): close run-state provenance contract
aviggiano Aug 9, 2026
ba0531a
fix(modal): close recovery summary parser
aviggiano Aug 9, 2026
a9d6624
feat: close dashboard and runtime audit contracts
aviggiano Aug 9, 2026
ad39fb4
fix(dashboard): reference current run-state schema
aviggiano Aug 9, 2026
4c39d3b
fix(runtime): enforce Smithers lifecycle contracts
aviggiano Aug 9, 2026
610cfb7
fix(evals): align expansion with closed provenance
aviggiano Aug 9, 2026
2099fd7
test: harden dashboard contract boundaries
aviggiano Aug 9, 2026
5254a5f
feat(cli): close result and operator input contracts
aviggiano Aug 9, 2026
45df621
fix(cli): integrate current public contracts
aviggiano Aug 9, 2026
2d9bbd1
fix(dashboard): validate persisted run documents
aviggiano Aug 9, 2026
dfb9fb0
refactor(config): remove loose profile schemas
aviggiano Aug 9, 2026
72ddf64
refactor(dashboard): remove legacy prompt rename wire shape
aviggiano Aug 9, 2026
729c568
feat(artifacts): close manifest provenance metadata
aviggiano Aug 9, 2026
10f6c74
fix(artifacts): strictly parse analysis bundles
aviggiano Aug 9, 2026
e6f9692
fix(runtime): reject malformed recovery evidence
aviggiano Aug 9, 2026
893f869
fix(runtime): require exact workflow control evidence
aviggiano Aug 9, 2026
c58b6d3
fix(modal): reject malformed worker result evidence
aviggiano Aug 9, 2026
62e32d0
fix(dashboard): remove speculative JSON seams
aviggiano Aug 9, 2026
f1112cd
feat(evals): close suite JSON contracts
aviggiano Aug 9, 2026
702ee88
fix(evals): separate dependency registry IDs
aviggiano Aug 9, 2026
eb46f5e
fix(ci): reject malformed smoke diagnostics
aviggiano Aug 9, 2026
7d3fef3
test(evals): use canonical suite and review fixtures
aviggiano Aug 9, 2026
076f2cf
fix(cli): scope opaque JSON value types
aviggiano Aug 9, 2026
388ee06
fix(modal): fail closed on corrupt recovery evidence
aviggiano Aug 9, 2026
91f75fb
test(evals): enforce suite schema parity
aviggiano Aug 9, 2026
c64a1d6
test(modal): remove stale eval diagnostic details
aviggiano Aug 9, 2026
c00bc40
style(evals): format strict suite changes
aviggiano Aug 9, 2026
4238d7a
refactor(evals): remove obsolete loose record helper
aviggiano Aug 9, 2026
123763e
fix(modal): reject corrupt model work evidence
aviggiano Aug 9, 2026
956b7ab
fix(json): harden validator failure boundaries
aviggiano Aug 9, 2026
f142712
feat(evals): schema public diagnostics
aviggiano Aug 9, 2026
e8e89d1
fix(modal): strictly persist launch state
aviggiano Aug 9, 2026
1449259
fix(modal): strictly persist recovery state
aviggiano Aug 9, 2026
9c4c528
fix(modal): strictly persist worker lineage
aviggiano Aug 9, 2026
c3296f3
fix(json): close validator startup identity chain
aviggiano Aug 9, 2026
9267cde
feat(cli): schema report bundle manifest
aviggiano Aug 9, 2026
1582223
fix(modal): strictly persist pinned source proof
aviggiano Aug 9, 2026
663f80a
fix(modal): strictly publish worker results
aviggiano Aug 9, 2026
e5d80c1
feat(evals): schema benchmark policy manifests
aviggiano Aug 9, 2026
7bc0b5e
fix(modal): strictly collect recovery lifecycle
aviggiano Aug 9, 2026
cfc9fe6
fix(cli): strictly read eval reports
aviggiano Aug 9, 2026
aecef81
fix(modal): strictly collect public diagnostics
aviggiano Aug 9, 2026
9bf3ca2
fix(modal): strictly collect public bundles
aviggiano Aug 9, 2026
ad4e4d9
fix(modal): derive workers from strict lineage
aviggiano Aug 9, 2026
eb7265c
feat(modal): schema benchmark control manifests
aviggiano Aug 9, 2026
26a3add
feat(release): validate report artifacts
aviggiano Aug 9, 2026
8f72f6c
feat(runtime): validate durable JSON documents
aviggiano Aug 9, 2026
d8438dc
feat(evals): close recovery and status documents
aviggiano Aug 9, 2026
a7c2cf8
feat(evals): schema canonical ground truth
aviggiano Aug 9, 2026
dff2330
feat(evals): schema longitudinal history
aviggiano Aug 9, 2026
81dd3de
fix(evals): preserve ground truth size diagnostics
aviggiano Aug 9, 2026
e28f16c
fix(modal): type ground truth conversion exactly
aviggiano Aug 9, 2026
ea6f6e9
feat(modal): require strict benchmark configs
aviggiano Aug 9, 2026
6b99ed6
fix(modal): reuse validated cohort snapshot
aviggiano Aug 9, 2026
5a989b8
fix(modal): strictly parse public diagnostics
aviggiano Aug 9, 2026
76edc2a
fix(runtime): validate terminal semantic evidence
aviggiano Aug 9, 2026
0468919
Merge origin/main into feat/439-strict-json-contracts
aviggiano Aug 9, 2026
ce2f9dd
fix(ci): enforce strict benchmark controls
aviggiano Aug 9, 2026
5ef9cd2
fix(modal): validate workflow control seals
aviggiano Aug 9, 2026
33f73eb
feat(evals): type history publication handoffs
aviggiano Aug 9, 2026
35dacf4
fix(evals): reject malformed provider JSON
aviggiano Aug 9, 2026
fa07992
Merge remote-tracking branch 'origin/main' into feat/439-strict-json-…
aviggiano Aug 9, 2026
d9018ca
fix(ci): parse external JSON strictly
aviggiano Aug 9, 2026
9ef2408
fix(runtime): verify canonical agent reports
aviggiano Aug 9, 2026
0d35d03
fix(modal): validate smoke evidence strictly
aviggiano Aug 9, 2026
fb8256f
fix(json): parse package and schema metadata strictly
aviggiano Aug 9, 2026
243fcd4
fix(ci): validate publication inputs strictly
aviggiano Aug 9, 2026
ab874bd
fix(modal): harden security-sensitive JSON readers
aviggiano Aug 9, 2026
a8138b4
refactor(evals): remove score compatibility aliases
aviggiano Aug 9, 2026
7644752
fix(runtime): close generated workflow input
aviggiano Aug 9, 2026
4ca5b51
fix(dashboard): parse frontend JSON strictly
aviggiano Aug 9, 2026
b606ef9
fix(runtime): parse package manifests strictly
aviggiano Aug 9, 2026
f707fdf
fix(config): reject unknown semantic helper fields
aviggiano Aug 9, 2026
fae46a1
fix(runtime): preserve strict manifest projections
aviggiano Aug 9, 2026
813ff78
fix(artifacts): align retained Zod contracts
aviggiano Aug 9, 2026
d418147
test(runtime): load strict patch helpers
aviggiano Aug 9, 2026
ab59a1c
fix(runtime): preserve preliminary severity provenance
aviggiano Aug 9, 2026
3fb6414
fix(dashboard): validate browser wire contracts
aviggiano Aug 9, 2026
4d33cd3
fix(json): reject report and scoring compatibility
aviggiano Aug 9, 2026
f72dca3
fix(runtime): parse generated adapter JSON strictly
aviggiano Aug 9, 2026
eef48a1
fix(artifacts): remove bundle compatibility omission
aviggiano Aug 9, 2026
fe276d8
fix(runtime): enforce generated workflow semantic gates
aviggiano Aug 9, 2026
b138c07
fix(contracts): separate retained shape and semantic gates
aviggiano Aug 9, 2026
2460067
fix(report): require typed implementation coverage
aviggiano Aug 9, 2026
a20dbcf
fix(artifacts): enforce review semantic joins
aviggiano Aug 9, 2026
e1e63ff
test(smoke): exercise agent JSON correction loop
aviggiano Aug 9, 2026
9598a37
fix(runtime): require verified report authority
aviggiano Aug 9, 2026
7568e21
test(runtime): align regression fixtures with strict contracts
aviggiano Aug 9, 2026
caa9b01
test(runtime): exercise strict patch replay readers
aviggiano Aug 9, 2026
88d1312
fix(evals): require verified final reports
aviggiano Aug 9, 2026
bd8d69c
test(cli): seal verified report fixtures
aviggiano Aug 9, 2026
78cb289
style(runtime): format authority diagnostic
aviggiano Aug 9, 2026
a037ec6
Merge remote-tracking branch 'origin/main' into feat/439-strict-json-…
aviggiano Aug 9, 2026
8714ce2
fix(modal): register public bundle v5 schema
aviggiano Aug 9, 2026
5340b8f
fix(runtime): align nested submodule symlink gates
aviggiano Aug 9, 2026
0a0995a
style(runtime): format rollback regression
aviggiano Aug 9, 2026
b3862cd
refactor(modal): use canonical schemas for state parsing
aviggiano Aug 9, 2026
8165947
fix(runtime): require exact prompt path binding
aviggiano Aug 9, 2026
0e95a76
feat(evals): register LLM judge result contract
aviggiano Aug 9, 2026
915e1b0
feat(evmbench): register NanoEval result contracts
aviggiano Aug 9, 2026
0a6f58a
fix(json): honor schema-specific instance byte limits
aviggiano Aug 9, 2026
538a9de
fix(artifacts): close JSON Schema Zod parity gaps
aviggiano Aug 9, 2026
ba53635
refactor(evmbench): share registered CLI result contract
aviggiano Aug 9, 2026
1257885
fix: preserve pinned submodules in cloud handoffs
aviggiano Aug 9, 2026
099dbc4
fix(evmbench): align NanoEval timestamp validators
aviggiano Aug 9, 2026
d95f5bf
fix: align portable URL and timestamp contracts
aviggiano Aug 9, 2026
a0de354
test(modal): match node map semantic diagnostic
aviggiano Aug 9, 2026
2bbbfc0
fix(evals): reject noncanonical history inputs
aviggiano Aug 9, 2026
0f35e47
fix(evals): preserve analysis source timestamps
aviggiano Aug 9, 2026
83b06ec
fix(evals): reject invalid planned telemetry graphs
aviggiano Aug 9, 2026
fae6533
fix: validate exact JSON preflight envelopes
aviggiano Aug 9, 2026
7f8e47a
feat(artifacts): register analysis bundle payload schemas
aviggiano Aug 9, 2026
918398a
refactor(artifacts): validate analysis payloads Ajv-first
aviggiano Aug 9, 2026
e883368
test(artifacts): exhaust analysis bundle contract boundaries
aviggiano Aug 9, 2026
0b72159
refactor(artifacts): validate analysis manifest Ajv-first
aviggiano Aug 9, 2026
f4a5190
fix(runtime): schema-validate adapter recovery markers
aviggiano Aug 10, 2026
fc6212e
fix(modal): stop recovery after terminal output failures
aviggiano Aug 10, 2026
8e41d68
fix(contracts): close strict artifact gaps
aviggiano Aug 10, 2026
985d37c
fix(contracts): couple terminal artifact evidence
aviggiano Aug 10, 2026
9780628
feat(runtime): resolve semantic artifacts by declarations
aviggiano Aug 10, 2026
c22f2ca
merge(main): retain strict JSON contracts
aviggiano Aug 10, 2026
7583774
fix(artifacts): make property lens validation Ajv-first
aviggiano Aug 10, 2026
2e3d4c5
fix(runtime): require declared property lens inputs
aviggiano Aug 10, 2026
8829294
Authenticate property lens fan-in inputs
aviggiano Aug 10, 2026
14e080e
fix(runtime): authenticate declared property handoffs
aviggiano Aug 10, 2026
7580be0
feat(artifacts): type generated-test support bundles
aviggiano Aug 10, 2026
3d10f1a
fix(runtime): scope semantic producers to ancestors
aviggiano Aug 10, 2026
ed7e43a
fix(runtime): align generated semantic artifact resolution
aviggiano Aug 10, 2026
6ca8a10
fix(runtime): require planned lens declarations
aviggiano Aug 10, 2026
7d786eb
fix(runtime): validate every declared property role
aviggiano Aug 10, 2026
7907ae2
fix(artifacts): enforce generated-test bundle integrity
aviggiano Aug 10, 2026
344a1b2
fix(runtime): bind finalization manifests to snapshots
aviggiano Aug 10, 2026
b4ad102
feat(contracts): define property campaign v3
aviggiano Aug 10, 2026
5164abf
docs(campaign): require validated v3 handoff
aviggiano Aug 10, 2026
fa77e9b
test(runtime): cover sealed prerequisite rewrites
aviggiano Aug 10, 2026
4ecac53
docs: align run-state v5 labels
aviggiano Aug 10, 2026
a67cb35
fix(runtime): resolve semantic artifacts by declared contracts
aviggiano Aug 10, 2026
d558943
fix(runtime): consume authenticated gate snapshots
aviggiano Aug 10, 2026
f7339e7
feat(runtime): bind property campaign v3 context
aviggiano Aug 10, 2026
122d193
test(contracts): prove campaign v3 zod parity
aviggiano Aug 10, 2026
ca1278b
fix(runtime): bind fanout lenses to sealed attempts
aviggiano Aug 10, 2026
b5bcbde
test(runtime): cover producer-free and custom report authority
aviggiano Aug 10, 2026
860ed92
test(runtime): bind recovered suite expectations to declarations
aviggiano Aug 10, 2026
d0c9d26
fix(campaign): close paths and verify v3 handoff
aviggiano Aug 10, 2026
0ecb40a
fix(runtime): seal exact artifact ancestor authority
aviggiano Aug 10, 2026
aef4b66
fix(prompts): render generated-test bundle guidance
aviggiano Aug 10, 2026
353ee9a
fix(runtime): reject missing generated companions
aviggiano Aug 10, 2026
d410deb
fix(artifacts): close generated bundle arrays
aviggiano Aug 10, 2026
0b97e8e
fix(runtime): retain sealed authority for verified reads
aviggiano Aug 10, 2026
2b7f414
merge: consolidate immutable finalization authority
aviggiano Aug 10, 2026
84544f6
merge: consolidate declared artifact authority parity
aviggiano Aug 10, 2026
b50ad90
style(artifacts): format semantic gate diagnostics
aviggiano Aug 10, 2026
6cb2bea
fix(artifacts): bound generated test bundles
aviggiano Aug 10, 2026
4621b5c
fix(campaign): authenticate evidence publications
aviggiano Aug 10, 2026
771e806
test(runtime): require sealed missing-run recovery evidence
aviggiano Aug 10, 2026
fc2cd3b
fix(runtime): bind campaign evidence authority
aviggiano Aug 10, 2026
346f0b2
fix(campaign): bind finding provenance authority
aviggiano Aug 10, 2026
94d197f
feat(artifacts): authenticate generated test aggregation
aviggiano Aug 10, 2026
4a678d9
fix(runtime): bind finalization to verifier snapshots
aviggiano Aug 10, 2026
5914dfc
fix(campaign): bound evidence semantic gates
aviggiano Aug 10, 2026
cbfbc09
fix(artifacts): bind generated bundles to frameworks
aviggiano Aug 10, 2026
80f223e
fix(review): preserve finding identity across stages
aviggiano Aug 10, 2026
8726631
test(artifacts): enforce atomic framework bundles
aviggiano Aug 10, 2026
c12deac
fix(review): reconcile lifecycle handoff stages
aviggiano Aug 10, 2026
37e064a
fix(runtime): seal exact prerequisite attempts
aviggiano Aug 10, 2026
4304ea4
test(runtime): seal aggregation source authority
aviggiano Aug 10, 2026
5db16c5
fix(strategies): reconcile dynamic artifact handoffs
aviggiano Aug 10, 2026
281f359
fix(runtime): seal aggregation prerequisite chains
aviggiano Aug 10, 2026
600b0db
test(runtime): align sealed finalization regressions
aviggiano Aug 10, 2026
997eb5c
fix(artifacts): bound finding review contracts
aviggiano Aug 10, 2026
806eb1e
fix(runtime): reconcile transitive aggregation authority
aviggiano Aug 10, 2026
a4da411
fix(runtime): manifest only verifier publications
aviggiano Aug 10, 2026
0548266
fix(differential): authenticate artifact handoffs
aviggiano Aug 10, 2026
660f82c
fix(runtime): reject unpublished manifest files
aviggiano Aug 10, 2026
bc4811d
fix(contracts): unify artifact path grammar
aviggiano Aug 10, 2026
fbe1930
merge(#481): authenticate declared JSON artifacts
aviggiano Aug 10, 2026
a0b4af9
fix(differential): enforce authenticated review handoffs
aviggiano Aug 10, 2026
dba3c20
merge(#486): type generated test bundles
aviggiano Aug 10, 2026
21362f0
fix(differential): reject ambiguous semantic handoffs
aviggiano Aug 10, 2026
4bdcf49
merge(#488): type property campaign results
aviggiano Aug 10, 2026
b0239c6
merge(#490): preserve typed review pipeline authority
aviggiano Aug 10, 2026
61b6b9d
fix(prompts): protect topology-derived stage paths
aviggiano Aug 10, 2026
a5cc082
fix(validation): enforce canonical findings at scoring boundary
aviggiano Aug 10, 2026
e467ca4
fix(reporting): authenticate immutable run publications
aviggiano Aug 10, 2026
52749e0
test(cli): remove stale publication snapshot binding
aviggiano Aug 10, 2026
7a5b7aa
fix(reporting): seal recursive bundle authority
aviggiano Aug 10, 2026
7bbb9dc
fix(evals): require verified report publication authority
aviggiano Aug 10, 2026
74d0472
feat: bind strict JSON handoffs to immutable authority
aviggiano Aug 10, 2026
b0e530a
fix: preserve markdown prefixes in invariant evidence
aviggiano Aug 10, 2026
e214ed4
docs: inventory strict persisted contract migration
aviggiano Aug 10, 2026
4402be9
docs: name benchmark lane contract versions
aviggiano Aug 10, 2026
dca9a08
fix(modal): clear stale retry result handoffs
aviggiano Aug 10, 2026
946263d
test(runtime): align neutral fixture outputs
aviggiano Aug 10, 2026
e144547
perf(json): serve pinned validation from one compiled isolate
aviggiano Aug 10, 2026
ef1073d
fix(evals): give launched rows the trusted CLI entrypoint
aviggiano Aug 10, 2026
fa2f6f5
fix(runtime): let the runner table the generated workflow input
aviggiano Aug 10, 2026
0850057
fix(evals): report detached launches against their own records
aviggiano Aug 10, 2026
59a698b
fix(prompts): name the accepted invariant source-location forms
aviggiano Aug 10, 2026
99995c9
fix(runtime): accept the workflow runner's event correlation envelope
aviggiano Aug 10, 2026
c430da7
fix(runtime): re-derive every publication a dependency producer makes
aviggiano Aug 10, 2026
db2b575
fix(runtime): ask the runner for the envelope its readers require
aviggiano Aug 10, 2026
7a14a4d
fix(prompts): state the review contracts their verifiers enforce
aviggiano Aug 10, 2026
f536dbb
test(runtime): pin the derived reset identity for a failed workflow
aviggiano Aug 10, 2026
0a36738
merge: take main's audit profiles and packaged topologies
aviggiano Aug 10, 2026
73dfc55
Merge remote-tracking branch 'origin/main' into feat/439-strict-json-…
aviggiano Aug 11, 2026
51cba5c
fix(prompts): make JSON schema validation producer-visible
aviggiano Aug 11, 2026
44d6e5f
chore: integrate current main into strict JSON contracts
aviggiano Aug 11, 2026
4de61b7
fix(runtime): seal module dependencies with external runners
aviggiano Aug 11, 2026
61a6098
Merge main into feat/439-strict-json-contracts
aviggiano Aug 11, 2026
f4f6ee4
Merge published eval history from main
aviggiano Aug 11, 2026
82ebebf
fix(runtime): bind current campaign timeout contract
aviggiano Aug 11, 2026
2ca2bbb
fix(runtime): enforce v2-only campaign evidence
aviggiano Aug 11, 2026
87eeabb
fix(evals): serialize portable benchmark suites
aviggiano Aug 11, 2026
4e6195e
fix(evals): bound Smithers workflow run IDs
aviggiano Aug 11, 2026
1374cde
fix(modal): seed pinned benchmark runner dependencies
aviggiano Aug 11, 2026
a88805e
fix(modal): preserve eval failure diagnostics
aviggiano Aug 12, 2026
e13a4c5
fix(modal): publish durable submission diagnostics
aviggiano Aug 12, 2026
8015307
fix(modal): expose row launcher failures
aviggiano Aug 12, 2026
2be215f
fix(modal): publish bounded eval errors
aviggiano Aug 12, 2026
48cd37a
fix(evals): admit run audit lineage fields
aviggiano Aug 12, 2026
433c2b4
Merge origin/main into feat/439-strict-json-contracts
aviggiano Aug 12, 2026
37cef2c
fix(evals): migrate published history observations
aviggiano Aug 12, 2026
3b8b48c
fix(artifacts): distinguish property findings from campaigns
aviggiano Aug 12, 2026
9ba539c
fix(artifacts): scope campaign finding provenance
aviggiano Aug 12, 2026
b25f157
fix(artifacts): defer campaign membership to context
aviggiano Aug 12, 2026
39d3059
fix(reports): expose canonical producer renderer
aviggiano Aug 12, 2026
d8f85e5
fix(prompts): harden smoke artifact completion
aviggiano Aug 12, 2026
318724e
test(modal): budget model matrix validation
aviggiano Aug 12, 2026
1cbf53e
fix(reports): restore canonical severity presentation
aviggiano Aug 12, 2026
8210c73
fix(json): close strict contract review gaps
aviggiano Aug 12, 2026
66d59f9
Merge origin/main into feat/439-strict-json-contracts
aviggiano Aug 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 0 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,6 @@ jobs:
ULTRAFUZZ_CODEX_REAL_DRY_RUN: "0"
ULTRAFUZZ_RELEASE_DASHBOARD: "0"
ULTRAFUZZ_RELEASE_REFERENCES: "0"

steps:
- name: Check out repository
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/eval-benchmark-recovery.yml
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ jobs:
plan_count=0
plan_mode=
plan_artifact_name=
for mode in smoke full threat-model; do
for mode in smoke full; do
candidate_name="modal-benchmark-plan-$mode-$SOURCE_RUN_ID-$SOURCE_RUN_ATTEMPT"
candidate_count="$(jq --arg name "$candidate_name" \
'[.artifacts[] | select(.name == $name)] | length' \
Expand Down
15 changes: 13 additions & 2 deletions .github/workflows/eval-history-publication.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,11 +31,21 @@ jobs:
ref: main
persist-credentials: false

- name: Set up pnpm
uses: pnpm/action-setup@0ebf47130e4866e96fce0953f49152a61190b271 # v6.0.9
with:
version: 11.1.1

- name: Set up Node.js
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: 24

- name: Build trusted qualification dependency
run: |
pnpm install --frozen-lockfile
pnpm --filter @ultrafuzz/artifacts... build

- name: Qualify the exact completed producer attempt
id: qualify
env:
Expand Down Expand Up @@ -149,6 +159,8 @@ jobs:
"$BENCHMARK_MODE" \
"$PUBLICATION_GENERATION" \
"$PUBLICATION_PLAN"
publication_rows="$RUNNER_TEMP/eval-history-publication-rows.tsv"
node scripts/ci/prepare-eval-history-publication.mjs plan-rows "$PUBLICATION_PLAN" > "$publication_rows"
mkdir "$PUBLICATION_UNPACKED"
while IFS=$'\t' read -r bundle_path unpack_path eval_run_id benchmark lane model_slug; do
metadata="$(node packages/modal/dist/cli.js unpack-public \
Expand All @@ -166,8 +178,7 @@ jobs:
.model_slug == $model_slug and
.candidate_commit == $candidate_commit' \
<<< "$metadata" > /dev/null
done < <(jq -r '.pairs[] | [.bundle_path, .unpack_path, .eval_run_id, .benchmark, .lane, .model_slug] | @tsv' \
"$PUBLICATION_PLAN")
done < "$publication_rows"

- name: Create the narrowly scoped eval-history publisher token
id: publisher-token
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -24,3 +24,4 @@ smithers.db*

# Agent session artifacts written by package-level test runs
packages/*/.ultrafuzz/
packages/dashboard/frontend/.generated/
2 changes: 2 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ pnpm-lock.yaml

packages/*/dist
packages/*/dist-test
packages/dashboard/frontend/.generated
packages/config/test/fixtures/resolved-config.valid.json

prompts/**/*.md
docs/reference/audit-profiles.md
5 changes: 2 additions & 3 deletions .ultrafuzz/evals/bug-finding.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
# binding and credentials env-var names live in ultrafuzz.toml under [eval].
# Ground-truth files resolve under [eval].ground_truth_root, which MUST live
# outside the repository.
schema_version: ultrafuzz.eval.v1
schema_version: ultrafuzz.eval.v2
suite: bug-finding-regression

model_profiles:
Expand Down Expand Up @@ -34,7 +34,6 @@ run:
max_parallel_runs: 8

metrics:
primary: [precision, recall, f1_score]
recall_threshold: 0.7

recovery_equivalence:
Expand All @@ -48,5 +47,5 @@ reporting: # policy only — provider selection/credentials live in ultrafuzz.to
experiment_prefix: bug-finding
artifacts:
mode: manifest-only # forced default when target.sensitivity == private; opt in to "upload"
include: ["report.md", "report.json", "findings.normalized.json"]
include: ["report.md", "report.json"]
max_file_bytes: 5000000
Original file line number Diff line number Diff line change
@@ -1 +1 @@
`boundary-recipes.md` should be a markdown index of reproduction recipes. `boundary-recipes.json` must be a JSON object with `schema_version: "1.0"` and a `recipes` array. Each recipe should include `id`, `title`, `path`, and any known `finding_ids`, `property_ids`, or `summary`. Use an empty `recipes` array if no recipes were produced.
For every output declared with `Contract: ultrafuzz/boundary-recipes@1`, read the exact pinned schema named by `Validate against` in the central Ultrafuzz Output Contract and run the exact `Validation command` rendered beside that output. The declared path is authoritative; do not create a differently named structured artifact. That schema alone owns the JSON version, field names, types, required and optional members, and empty form. When a human-readable boundary-recipe companion is declared, keep it and the structured artifact semantically aligned with the same source-backed boundary recipes; this contextual correspondence is checked separately from JSON Schema validation.
2 changes: 1 addition & 1 deletion .ultrafuzz/prompts/_templates/output-contract/findings.mdx
Original file line number Diff line number Diff line change
@@ -1 +1 @@
`findings.json` must be a JSON array. Use `[]` when there are no findings. Each finding object must include non-empty string fields `id`, `title`, `status`, `severity_guess`, `confidence`, and `summary`. Every finding's `severity_guess` must be exactly `High`, `Medium`, or `Low`, including findings that are or may become non-production records. `schema_version` is optional; omit it, or set it to `"1.0"` or `"ultrafuzz.finding.v1"`. `status` must be a non-empty lifecycle string. Prefer canonical values such as `candidate`, `needs-review`, `duplicate`, `false-positive`, `confirmed`, `fixed`, or `wont-fix` when they fit. If you include `triage_classification`, use one of `true-positive`, `false-positive`, `undetermined`, `incomplete-spec`, `harness-defect`, `repair-candidate`, `spec-gated`, or `defensive-hardening`. Use `severity_guess`; do not use `severity` as a replacement. If you include `evidence`, each entry may be a non-empty string reference or an object with optional non-empty string `kind` and `path` fields plus any other useful metadata. Object `path` fields must be safe relative file paths without anchors or line selectors. Put a section anchor in `fragment`, one source span in positive integer `line` and optional `end_line`, and disjoint spans in `line_ranges`, an array of at least two objects such as `[{"line":105,"end_line":107},{"line":154,"end_line":185}]`; every `end_line` must be no smaller than its `line`. Never emit a one-entry `line_ranges`, and never combine `line_ranges` with `line` or `end_line`. Keep independent explanatory prose in `detail`; never embed selectors into `path` or replace prose with them.
For every output declared with `Contract: ultrafuzz/findings@2`, read the exact pinned schema named by `Validate against` in the central Ultrafuzz Output Contract and run the exact `Validation command` rendered beside that output. The declared path is authoritative; do not create a differently named findings artifact. That schema alone owns the JSON version, field names, types, enums, required members, and empty form. Producer lanes make only a preliminary severity estimate; later severity review owns final severity. Cite evidence at its real source location, keep base paths free of embedded selectors, and keep independent explanation separate from verbatim or source-location data. Those ownership and evidence semantics remain required in addition to schema validation.
Original file line number Diff line number Diff line change
@@ -1,2 +1,9 @@
Write generated test source files under `{{strategy_attempt_test_dir}}` and mirror the files under `{{generated_tests_dir}}`.
`generated-tests.json` must be a JSON object with `schema_version: "1.0"`, `run_id`, `node_id`, and `generated_tests`. Use `generated_tests` as the only file list. Each `generated_tests` entry must include `path` using the `generated-tests/<file>` prefix plus `language`, `framework`, and `description` when known. Use an empty `generated_tests` array if no tests were produced.
## Generated-test Bundle Instructions

This node is a generated-test producer. Author runnable generated test source files under {{strategy_attempt_test_dir}}, mirror every declared bundle file under {{generated_tests_dir}}, and write the manifest to exactly {{generated_tests_manifest_path}}.

Read the exact pinned schema named by `Validate against` in the central Ultrafuzz Output Contract and run the exact `Validation command` rendered beside it. That schema alone owns the manifest's JSON version, field names, types, required and optional members, and empty form.

Bind `run_id` exactly to {{run_id}} and `node_id` exactly to {{logical_node_id}}. The node identity is the logical producer shown here, not a concrete attempt, loop, or model-fanout identity. Bind the bundle framework to the one checked-in native framework used by the whole atomic bundle. Never mix frameworks in one bundle or assign a separate framework to an individual companion. These run, producer, and repository-context bindings are checked beyond JSON Schema.

Classify only independently runnable tests and reproducers as generated tests. Classify imported helper libraries, mocks, fixtures, deployment scripts, text data fixtures, and other non-runnable dependencies as support files. Every declared companion, including data fixtures, must be strict UTF-8 text rather than binary data and must live beneath the artifact bundle, never at a workspace path. When no runnable test was produced, use the empty bundle defined by the schema while still binding its framework to the checked-in native framework. Before returning, validate after every declared companion is present, singly linked, regular, non-empty, and neither a symlink nor reachable through one.
16 changes: 12 additions & 4 deletions .ultrafuzz/prompts/_templates/output-contract/output-contract.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,18 @@ Before finishing, you MUST ensure every artifact below exists and satisfies its

{{artifact_contracts}}

{{schema_guidance}}Artifact writing is part of the task, not optional final-response metadata. Create parent directories before writing, write each artifact to the exact absolute path shown above, and then verify each path exists, is non-empty unless its contract explicitly allows an empty form, and matches its JSON or Markdown contract. Do not write required artifacts only under the repository root, a relative working directory, or a different similarly named path.
{{schema_guidance}}Artifact writing is part of the task, not optional final-response metadata. Create parent directories before writing and write each artifact to the exact absolute path shown above. Also verify every path exists, is non-empty unless its contract explicitly allows an empty form, and matches its JSON or Markdown contract. Do not write required artifacts only under the repository root, a relative working directory, or a different similarly named path.

After completing the work and writing every required artifact, your final response MUST contain ONLY one raw, valid JSON object in exactly this form:
For every schema-backed JSON artifact:

{"summary":"A concise description of the completed work and written artifacts."}
1. Write the artifact in its canonical schema.
2. After your final write and before returning the node's final response, run every exact `Validation command` shown above.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't see Validation command anywhere

3. If a command exits 1, correct that artifact yourself and rerun the same command during this session.
4. If you change an artifact after it passes validation, rerun its command.
5. Never edit a supplied schema. Its bytes are pinned and the command accepts it only when they match the trusted digest.
6. Exit 2 is a setup or tool failure. Do not edit the schema or claim validation succeeded.
7. Finish only after every displayed validation command exits 0.
8. The validation command never modifies the artifact.
9. Host semantic and context verification still runs after you finish.

The `summary` field is REQUIRED and MUST be a JSON string. Do NOT include Markdown fences, introductory text, explanations, or any other content before or after the JSON object. Do NOT omit the JSON object even when the work succeeds.
After completing the work and writing every required artifact, return only the structured task result requested by the runtime. The runtime's output schema alone owns that response's keys, types, and envelope. Put a concise description of the completed work and written artifacts in its schema-defined summary value. Do not add Markdown fences, introductory text, explanations, or any content outside the structured result, and do not omit the result when the work succeeds.
19 changes: 10 additions & 9 deletions .ultrafuzz/prompts/properties/0kn0t-lens.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,12 @@ the catalog, and set every property priority to `high`, `medium`, or `low`.
The JSON catalog is the machine-readable source of truth.

Populate `reference_expectations` only from exact identifiers present in the
supplied pinned-reference artifacts. Preserve one
identifier per named expectation and carry the supplied identifier unchanged;
when the supplied inputs contain no named expectation, leave the field absent.
supplied pinned-reference artifacts. Preserve one identifier per named
expectation and carry the supplied identifier unchanged. When the supplied
inputs contain no named expectation, do not invent expectation IDs; use the
pinned property-lens schema's no-expectation representation.

When a pinned-reference node declares a catalog with the `ultrafuzz/reference-expectations@1` contract, read its declared artifact and validate it with `{{schema_path}}/reference-expectations.schema.json` before copying identifiers.
When a pinned-reference node declares a catalog with the `ultrafuzz/reference-expectations@2` contract, read its declared artifact and validate it with `{{schema_path}}/reference-expectations.schema.json` before copying identifiers.

## Target-derived invariant extraction

Expand Down Expand Up @@ -73,13 +74,13 @@ Keep the Markdown table readable and identical in ids, descriptions,
categories, and priorities. Do not put findings in either property artifact.

Findings discipline: property candidates are planning material, not campaign
findings. Do not copy the property table into `findings.json`; write `[]`
there unless you independently identify a concrete target vulnerability with
specific evidence.
findings. Do not copy the property table into `findings.json`; use only the
empty form defined by its exact pinned schema unless you independently identify
a concrete target vulnerability with specific evidence.

Artifact finalization: after writing the property table, immediately write the
required findings JSON to `{{output_findings_path}}`; use `[]` when there is no
concrete vulnerability. Do not use Bash to validate the property catalog or
required findings JSON to `{{output_findings_path}}`; use its schema-defined
empty form when there is no concrete vulnerability. Do not use Bash to validate the property catalog or
findings with `cat`, `grep`, `tr`, `wc`, pipes, redirection, or command chains.
If you inspect the artifact after writing it, use the Read tool or one simple
allowlisted command, then finish.
Expand Down
19 changes: 10 additions & 9 deletions .ultrafuzz/prompts/properties/aviggiano-lens.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,12 @@ the catalog, and set every property priority to `high`, `medium`, or `low`.
The JSON catalog is the machine-readable source of truth.

Populate `reference_expectations` only from exact identifiers present in the
supplied pinned-reference artifacts. Preserve one
identifier per named expectation and carry the supplied identifier unchanged;
when the supplied inputs contain no named expectation, leave the field absent.
supplied pinned-reference artifacts. Preserve one identifier per named
expectation and carry the supplied identifier unchanged. When the supplied
inputs contain no named expectation, do not invent expectation IDs; use the
pinned property-lens schema's no-expectation representation.

When a pinned-reference node declares a catalog with the `ultrafuzz/reference-expectations@1` contract, read its declared artifact and validate it with `{{schema_path}}/reference-expectations.schema.json` before copying identifiers.
When a pinned-reference node declares a catalog with the `ultrafuzz/reference-expectations@2` contract, read its declared artifact and validate it with `{{schema_path}}/reference-expectations.schema.json` before copying identifiers.

## Target-derived invariant extraction

Expand Down Expand Up @@ -73,13 +74,13 @@ Keep the Markdown table readable and identical in ids, descriptions,
categories, and priorities. Do not put findings in either property artifact.

Findings discipline: property candidates are planning material, not campaign
findings. Do not copy the property table into `findings.json`; write `[]`
there unless you independently identify a concrete target vulnerability with
specific evidence.
findings. Do not copy the property table into `findings.json`; use only the
empty form defined by its exact pinned schema unless you independently identify
a concrete target vulnerability with specific evidence.

Artifact finalization: after writing the property table, immediately write the
required findings JSON to `{{output_findings_path}}`; use `[]` when there is no
concrete vulnerability. Do not use Bash to validate the property catalog or
required findings JSON to `{{output_findings_path}}`; use its schema-defined
empty form when there is no concrete vulnerability. Do not use Bash to validate the property catalog or
findings with `cat`, `grep`, `tr`, `wc`, pipes, redirection, or command chains.
If you inspect the artifact after writing it, use the Read tool or one simple
allowlisted command, then finish.
Expand Down
19 changes: 10 additions & 9 deletions .ultrafuzz/prompts/properties/certora-thinking-lens.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,11 +36,12 @@ the catalog, and set every property priority to `high`, `medium`, or `low`.
The JSON catalog is the machine-readable source of truth.

Populate `reference_expectations` only from exact identifiers present in the
supplied pinned-reference artifacts. Preserve one
identifier per named expectation and carry the supplied identifier unchanged;
when the supplied inputs contain no named expectation, leave the field absent.
supplied pinned-reference artifacts. Preserve one identifier per named
expectation and carry the supplied identifier unchanged. When the supplied
inputs contain no named expectation, do not invent expectation IDs; use the
pinned property-lens schema's no-expectation representation.

When a pinned-reference node declares a catalog with the `ultrafuzz/reference-expectations@1` contract, read its declared artifact and validate it with `{{schema_path}}/reference-expectations.schema.json` before copying identifiers.
When a pinned-reference node declares a catalog with the `ultrafuzz/reference-expectations@2` contract, read its declared artifact and validate it with `{{schema_path}}/reference-expectations.schema.json` before copying identifiers.

## Target-derived invariant extraction

Expand Down Expand Up @@ -79,13 +80,13 @@ Keep the Markdown table readable and identical in ids, descriptions,
categories, and priorities. Do not put findings in either property artifact.

Findings discipline: property candidates are planning material, not campaign
findings. Do not copy the property table into `findings.json`; write `[]`
there unless you independently identify a concrete target vulnerability with
specific evidence.
findings. Do not copy the property table into `findings.json`; use only the
empty form defined by its exact pinned schema unless you independently identify
a concrete target vulnerability with specific evidence.

Artifact finalization: after writing the property table, immediately write the
required findings JSON to `{{output_findings_path}}`; use `[]` when there is no
concrete vulnerability. Do not use Bash to validate the property catalog or
required findings JSON to `{{output_findings_path}}`; use its schema-defined
empty form when there is no concrete vulnerability. Do not use Bash to validate the property catalog or
findings with `cat`, `grep`, `tr`, `wc`, pipes, redirection, or command chains.
If you inspect the artifact after writing it, use the Read tool or one simple
allowlisted command, then finish.
Expand Down
Loading
Loading