Skip to content

ENH Add Scenario progress foundation - #2372

Merged
Richard Lundeen (rlundeen2) merged 11 commits into
mainfrom
copilot/romanlutz-scenario-pr-01-progress-upstream
Aug 28, 2026
Merged

ENH Add Scenario progress foundation#2372
Richard Lundeen (rlundeen2) merged 11 commits into
mainfrom
copilot/romanlutz-scenario-pr-01-progress-upstream

Conversation

@romanlutz

@romanlutz Roman Lutz (romanlutz) commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds persistent versioned Scenario run plans, stable logical work identities, backend-authoritative sizing, incremental progress cursors, and corrected timing/resume semantics. Planned units deduplicate repeated logical objectives while execution attempts remain observable.

What this layer adds

  • Versioned normalized ScenarioRunPlan and progress models persisted in Scenario result metadata.
  • Stable atomic-group and seed-unit identities shared across planning and execution.
  • Incremental, run-bound opaque progress cursors with bounded delta paging.
  • Backend-authoritative sizing, corrected timing, resume validation, and legacy reconstruction.
  • Keyword-only multi-parameter APIs and typed completion callbacks.

Visual contract

Observable Scenario progress contract

Stack

This is 1 of 7 in native GitHub Stack #2390 and targets main.

Layer Scope Pull request
1 Progress foundation (this PR) #2372
2 Catalog and launch #2373
3 Live progress #2374
4 Run history #2375
5 FIFO scheduling #2376
6 Configuration sizing #2377
7 Result details #2378

See the full implementation, screenshots, walkthrough, validation, and operational notes.

Validation

  • Complete backend unit suite: 15,212 passed, 120 skipped.
  • Complete frontend suite: 68/68 suites, 1,286/1,286 tests; lint, TypeScript, and production build passed.
  • Mock Playwright with retries disabled: 91 passed, 0 failed, 0 skipped.
  • Seeded Playwright with retries disabled: 62 passed, 0 failed, 0 skipped.
  • All configured pre-commit hooks passed; distinguished-engineer review approved the final stack.

Compatibility note

Prepended-conversation request converters now default to user-role messages, and strict non-chat targets can reject excluded roles. This intentional behavior change is isolated in this foundation layer.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 5d02c2d5-b499-4f78-a04d-03bffa750817
Comment thread tests/unit/scenario/core/test_scenario.py
Comment thread tests/unit/backend/test_scenario_service.py
Comment thread tests/unit/backend/test_scenario_service.py
Comment thread pyrit/executor/attack/component/conversation_manager.py Outdated
Comment thread pyrit/scenario/core/attack_technique_factory.py Outdated
Comment thread pyrit/executor/attack/core/attack_executor.py
Comment thread pyrit/memory/memory_interface.py Outdated
Comment thread pyrit/models/catalog/scenario.py Outdated
Comment thread pyrit/models/catalog/scenario.py Outdated
Comment thread pyrit/models/identifiers/seed_identifier.py Outdated
Comment thread pyrit/backend/services/scenario_run_service.py Outdated
Comment thread pyrit/backend/services/scenario_run_service.py Outdated
Comment thread pyrit/backend/services/scenario_run_service.py Outdated
Comment thread pyrit/backend/services/scenario_run_service.py
Comment thread pyrit/backend/services/scenario_run_service.py
Comment thread pyrit/backend/services/scenario_run_service.py Outdated
Comment thread pyrit/backend/services/scenario_service.py Outdated
Comment thread pyrit/backend/services/scenario_run_service.py Outdated
@romanlutz
Roman Lutz (romanlutz) force-pushed the copilot/romanlutz-scenario-pr-01-progress-upstream branch from 2f6c715 to c8b2b18 Compare August 21, 2026 03:40
Comment thread tests/unit/backend/test_scenario_run_service.py Fixed
@romanlutz
Roman Lutz (romanlutz) force-pushed the copilot/romanlutz-scenario-pr-01-progress-upstream branch from 6ccdf08 to a9b420e Compare August 25, 2026 00:20
@romanlutz
Roman Lutz (romanlutz) marked this pull request as ready for review August 25, 2026 03:43
@romanlutz Roman Lutz (romanlutz) changed the title Add Scenario progress foundation ENH Add Scenario progress foundation Aug 25, 2026
@romanlutz
Roman Lutz (romanlutz) force-pushed the copilot/romanlutz-scenario-pr-01-progress-upstream branch from a9b420e to 8f52a35 Compare August 25, 2026 03:45
Copilot AI and others added 6 commits August 24, 2026 23:24
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 5d02c2d5-b499-4f78-a04d-03bffa750817
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 47a96cf7-36b1-482c-ab17-87cbf97afbdf
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 5d02c2d5-b499-4f78-a04d-03bffa750817
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 5d02c2d5-b499-4f78-a04d-03bffa750817
@romanlutz
Roman Lutz (romanlutz) force-pushed the copilot/romanlutz-scenario-pr-01-progress-upstream branch from 8f52a35 to 8d830a2 Compare August 25, 2026 06:24
Comment thread pyrit/backend/services/scenario_run_service.py Outdated
Comment thread pyrit/memory/memory_interface.py Outdated
Preserve the divergent feature histories while using the current remote PR implementation as the merged tree.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 6ddfb706-933f-403d-8d1b-9a3b068f9811
Resolve the memory package lazy-export conflict while retaining the scenario progress cursor rename.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 6ddfb706-933f-403d-8d1b-9a3b068f9811
Keep legacy planned totals unknown instead of reporting zero, and order bounded run history by creation time so active runs remain visible.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 6ddfb706-933f-403d-8d1b-9a3b068f9811
Include the main-branch update that landed during validation.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 6ddfb706-933f-403d-8d1b-9a3b068f9811
@rlundeen2
Richard Lundeen (rlundeen2) added this pull request to the merge queue Aug 28, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Aug 28, 2026
@rlundeen2
Richard Lundeen (rlundeen2) added this pull request to the merge queue Aug 28, 2026
Merged via the queue into main with commit 5d93fcc Aug 28, 2026
56 checks passed
@rlundeen2
Richard Lundeen (rlundeen2) deleted the copilot/romanlutz-scenario-pr-01-progress-upstream branch August 28, 2026 19:29
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.

3 participants