Repository navigation
FEAT GUI: Browse Scenario result parents and children #3602
Description
Is your feature request related to a problem? Please describe.
Scanner run results already have an Atomic attack groups / Attack executions presentation with group summaries, objectives, outcomes, durations, retries/errors, timestamps, and result Details. The hierarchy backend merged in #3167 adds saved compound parents and ordered child references, but current main does not expose that lineage in the existing results surface.
The original description was too broad about "adding hierarchy browsing" and not explicit enough about consolidating the existing table. Open #3611 initially added a second results section with overlapping rows and fields. The user has now requested improving the existing attack-group presentation instead, making saved result-to-chat navigation direct, and preserving a breadcrumb back to the Scenario.
Describe the solution you'd like
Extend and consolidate the existing Scenario run results presentation:
- Add expandable parent/child rows to the existing Atomic attack groups/results surface, not a parallel results browser. Keep aligned columns; indent only the result/objective column. Use explicit outcome labels and distinguish an orchestration summary from a saved target-facing result.
- Add typed API adapters for bounded roots and selected-node/child expansion. Root continuation must not be used as descendant continuation: the root cursor loads more roots, while each parent's child-reference cursor loads more of that parent's saved children.
- Distinguish orchestration parents, target-facing results and unknown legacy roles. Show absolute immediate-parent child order and explicit unresolved references, including pages consisting entirely of unresolved entries.
- Keep shared backend completion, outcome, error and retry totals unchanged as users load more nodes. Neither visible rows nor producer roles measure physical target calls. Do not invent roots for rootless/cyclic diagnostic samples.
- Preserve existing group identities/summaries, ordinary and live-progress rows, timestamps, retries/errors, Details, and backend-owned totals. Display groups can contain several atomic groups; do not force saved hierarchy nodes into a progress-row type or count visible child rows as extra completed work.
- For a saved result with a conversation, make the primary result action open its corresponding existing chat view directly. Retain Details as a separate metadata action. Sequential/orchestration parents may have no conversation of their own: expand their saved children and provide labelled child links instead of inventing a parent transcript or silently selecting an unrelated conversation.
- Reuse existing result-detail, scorer, identity, conversation, and media presentation. Fetch metadata on demand; do not fetch transcript bodies as part of hierarchy/node loading. Preserve History filters and suite return context.
- Carry Scenario context through
attackConversationRoutePathand reuse the existingChatWindowScenario breadcrumb. CurrentAppreads that context from the URL. Verify return navigation and a full chat URL reload rather than add a second breadcrumb or rely only on transient component state. - Handle loading, empty, retryable error, stale/mismatched cursor and truncated states with keyboard-accessible controls and a usable narrow-screen layout.
- Cover ordinary and nested compound results, missing/legacy references, continuation boundaries, ancestor-cycle protection, statistics stability, resume/reload, saved-objective precedence, direct chat navigation, conversationless parents, and return navigation with focused component/API tests and deterministic real-backend journey coverage. The navigation fixture must contain actual saved transcript messages, not result rows alone. Capture exact-head desktop/narrow evidence for the changed states.
For example, opening a Sequential result should show its saved children in order. If a saved child cannot be resolved, keep its position visible as unresolved rather than silently dropping it. Loading another child page must not change the run's completion or retry totals.
Out of scope: new transcript rendering or conversation pagination. Those belong to the separate scope-10B follow-up using the same delivered backend. No backend accounting, roles, links, schema, graph store, scheduler, estimate, dataset or execution-engine changes. No automatic target/provider calls or sends. Optional work such as exports or suite analytics is not a prerequisite.
Describe alternatives you've considered, if relevant
Keeping only flat rows hides lineage. Reconstructing the graph in the browser, loading the entire run, counting rendered nodes or duplicating the shared result viewer would create inconsistent behavior and unnecessary work.
A second hierarchy table repeats the existing group's objectives, outcomes, timing, retries, and Details. Reusing a formatter or modal is not sufficient deduplication when the page still has two independent results presentations.
Additional context
- Backend feat: Add bounded Scenario result hierarchy projections (#3145) #3167 is merged for FEAT Add bounded Scenario result hierarchy projections #3145. Read the landed hierarchy and continuation contract.
- Scope refreshed against main
791e12c6e5e4302e7c1211af6af8973aa6fe1f37on October 31, 2026. Assigned to FazeelUsmani and covered by existing FEAT: Browse Scenario result parents and children in the GUI (#3602) #3611. The existing coordinated child owns the user-requested consolidation, navigation, screenshots, PR-description update, and explanatory PR comment. Continue that PR, not a competing implementation. - Starting points: flat execution table, Scenario run page, and API client.
- This is scope 10A, the first delivery slice of original scope 10 in the Scenario GUI roadmap, not an additional milestone. Scope 10B covers bounded saved-conversation evidence. Configuration closure in scopes 5-6 can proceed in parallel and is not a gate.
- Follow the component architecture and applicable frontend/test guidance. Reuse existing result and conversation components. Historical mockups show information goals, not a required pixel layout.
Activity
FazeelUsmani commentedon Oct 28, 2026
I would like to take this.
FIX: Address hierarchy review on cycles, resumed runs, objectives and…
FEAT: Browse Scenario result parents and children in the GUI (#3602) (#…