Skip to content

Add stateful default audits and four-hour exhaustive campaigns - #1132

Merged
aviggiano merged 7 commits into
mainfrom
codex/1130-stateful-profiles
Sep 22, 2026
Merged

aviggiano merged 7 commits into
mainfrom
codex/1130-stateful-profiles

Conversation

@aviggiano

@aviggiano aviggiano commented Sep 22, 2026 •

Copy link
Copy Markdown
Collaborator

Shift audit effort from repeated ordinary strategies into stateful fuzzing. Fresh default projects now include all five invariant stages, and exhaustive spends four hours fuzzing one shared suite of selected properties.

Setting Default Exhaustive
Ordinary strategy passes 2 3
Stateful stages All five, once each All five, once each
Invariant property priority High High and medium
Final Recon fuzzing duration 1 hour 4 hours

Keep explicit project and runtime overrides authoritative. Separate packaged defaults from the repository's editable configuration, and omit profile-managed settings during initialization so switching profiles inherits the correct values. Effective loop reporting follows the selected topology.

Reference expectation tags remain provenance metadata and do not bypass normal priority selection. The benchmark-specific invariant-only profile retains explicit mandatory selection. Prompts, artifact gates, shared coverage validation, and generated final reports use the same resolved policy; excluded expected checks remain visible as unselected, never fulfilled. Existing sealed configurations retain their legacy interpretation.

Exhaustive's campaign task allows 16,200 seconds, with inherited per-node Modal resources providing another 1,800 seconds for lifecycle work. Explicit undersized global or node resource caps fail before submission. The existing 24-hour workflow deadline still bounds all stages and retries. Public full benchmark rows capped at 15,000 seconds reject the four-hour profile before credential access instead of shortening the campaign or silently raising paid budgets; local and per-node Modal execution support the new duration.

Validation passed: full workspace build; 94 configuration, 352 artifact, 73 topology, 104 prompt, 685 Modal, 212 runtime support, and 8 runtime budget/cloud tests; TypeScript, changed-code strict lint, formatting, generated docs, and Knip. Independent source review has no outstanding findings. Packed installation passed for all 12 packages, including fresh init and validation; packaged profile-asset validation and all 102 CI-script tests passed. The six CLI smoke cases and 54 runtime smoke cases passed (one stale run-plan assertion was corrected and rerun separately). No paid inference or cloud workload was launched.

This PR is stacked on #1131 to inherit the CI repairs and patched ZIP dependency. Merge #1131 first, then target this PR at main; its diff contains only the profile revision.

Fixes #1130

RetriggerConfidence Score: 5/5

The PR appears safe to merge; no outstanding correctness, security, or repository-rule issue was identified.

Summary

This PR shifts the default and exhaustive audit profiles toward stateful invariant fuzzing, adds profile-aware property-selection policy, and introduces validated timeout envelopes for four-hour exhaustive campaigns.

  • Adds all five stateful invariant stages to fresh default topologies while reducing ordinary strategy repetition.
  • Gives exhaustive audits high/medium property selection and a shared four-hour Recon campaign.
  • Separates packaged defaults from editable project configuration and preserves explicit project/runtime overrides.
  • Propagates selection policy and timeout provenance through prompts, manifests, artifact gates, reports, local execution, and Modal admission.
  • Rejects explicit cloud resource caps that cannot contain the resolved task budget instead of silently shortening work.
  • The only change since the previous review aligns a cloud handoff test fixture with its effective 3,600-second low-cost task budget.
Diagram
%%{init: {'theme': 'neutral'}}%%
flowchart LR
    A[Packaged defaults] --> D[Configuration resolution]
    B[Selected audit profile] --> D
    C[Project and runtime overrides] --> D
    D --> E[Resolved invariant policy]
    E --> F[Property selection]
    E --> G[Prompt rendering]
    E --> H[Artifact validation and reporting]
    D --> I[Resolved task timeout]
    I --> J{Execution mode}
    J --> K[Local execution]
    J --> L[Modal admission]
    L --> M{Explicit resource cap sufficient?}
    M -->|No| N[Reject before submission]
    M -->|Yes| O[Run task with lifecycle reserve]
Loading

Reviews (3) · Last reviewed commit: "Align cloud handoff fixture limits with ..."

@aviggiano
aviggiano requested a review from a team as a code owner September 22, 2026 19:40
Base automatically changed from codex/1129-retire-paid-ci to main September 22, 2026 20:36
@aviggiano
aviggiano merged commit d7b1e74 into main Sep 22, 2026
13 checks passed
@aviggiano
aviggiano deleted the codex/1130-stateful-profiles branch September 22, 2026 21:12
aviggiano pushed a commit that referenced this pull request Sep 28, 2026
…tional (#1160)

* fix(artifacts): only review tasks treat continuing-group inputs as optional

#1120 narrowed the runtime compiler so that inputs from failure_policy
"continue" groups are optional only for review tasks: continuation lets
independent tasks settle, but only the review group reconciles partial
results. The task-manifest validator (#621) kept the old rule and still
expects every task that depends on a continuing group to list those
inputs as optional.

Any topology where a non-review task depends on a continuing group
therefore fails at submission, after reference materialization:

  WORKFLOW_SUBMISSION_FAILED: workflow runner task
  "stateful-invariant-handlers" optional dependency artifact directories
  do not match

That has applied to the packaged exhaustive and invariant-only
topologies since #1120, and to the default topology since #1132 added
the continuing specialists group.

Align the validator with the compiler and add a regression test. Four
test fixtures modelled review consumers (final report, dedupe, a modal
consumer) without declaring group "review", which only passed under the
old rule; they now declare it. Runs sealed before #1120 are unaffected
in practice: #1120 moved sealed resolved config to v4 and put resumption
of older runs out of scope.

Refs #1140

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(artifacts): avoid non-null assertions flagged by strict diff lint

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: thankyou <>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Revise default and exhaustive profiles toward stateful fuzzing

1 participant