Skip to content

Feat/studio override outcomes UI - #7

Open
92Infinitus92 wants to merge 8 commits into
developfrom
feat/studio-override-outcomes-ui
Open

Feat/studio override outcomes UI#7
92Infinitus92 wants to merge 8 commits into
developfrom
feat/studio-override-outcomes-ui

Conversation

@92Infinitus92

@92Infinitus92 92Infinitus92 commented Aug 14, 2026

Copy link
Copy Markdown
Collaborator
  • Show whether scenario overrides were applied or skipped.
  • Display failure reasons for skipped overrides.
  • Preserve sparse scenario-relative slots during playback.
  • Surface override outcomes in Studio notifications and playback state.

Requires LimeChain/surfpool#6.

Greptile Summary

The PR adds scenario override outcome reporting and sparse-slot playback while coordinating playback cleanup across editor replacements.

  • Preserves scenario-relative slot heights and stable override identifiers.
  • Displays applied and skipped override outcomes through playback state and notifications.
  • Serializes reset and clock-resume cleanup before replacement playback starts.
  • Synchronizes absolute slot changes with the compact slot widget.

Confidence Score: 5/5

The PR appears safe to merge because no blocking failure remains from the previous playback-cleanup findings.

The current generation checks prevent unmounted starts from registering, phase-aware cleanup avoids resetting Surfnet before playback state exists, and failed cleanup remains required before replacement playback can proceed.

Important Files Changed

Filename Overview
apps/studio/src/components/svm/scenario-editor.tsx Adds sparse-slot playback, outcome presentation, generation-based cancellation, and phase-aware cleanup across editor unmounts.
apps/studio/src/lib/scenarios-playback.ts Introduces response, slot, override-identity, and globally serialized cleanup helpers used by scenario playback.
apps/studio/src/components/svm/scenarios-bento.tsx Keys the editor by scenario ID so scenario changes remount it and invoke coordinated cleanup.
packages/svm/src/compact-slot-widget.tsx Handles absolute-slot updates and filters stale WebSocket notifications after time travel or reset.
apps/studio/src/app/layout.tsx Mounts the global Sonner toaster used by playback notifications.

Sequence Diagram

sequenceDiagram
  participant Editor as Scenario editor
  participant Cleanup as Playback cleanup coordinator
  participant Surfnet
  participant Slot as Compact slot widget
  Editor->>Cleanup: Wait for prior cleanup
  Cleanup-->>Editor: Cleanup succeeded
  Editor->>Surfnet: Pause clock
  Editor->>Surfnet: Register scenario
  Surfnet-->>Editor: Slot and override outcomes
  Editor->>Slot: Dispatch absolute slot change
  Editor->>Surfnet: Time travel to sparse next slot
  Surfnet-->>Editor: Slot and override outcomes
  Editor->>Cleanup: Reset network and resume clock
Loading

Reviews (10): Last reviewed commit: "fix(studio): clean up cancelled playback..." | Re-trigger Greptile

Context used (3)

@92Infinitus92 92Infinitus92 self-assigned this Aug 14, 2026
Comment thread apps/studio/src/components/svm/scenario-editor.tsx Outdated
@92Infinitus92

Copy link
Copy Markdown
Collaborator Author

@greptileai

Comment thread apps/studio/src/lib/scenarios-playback.ts Outdated
Comment thread apps/studio/src/components/svm/scenario-editor.tsx Outdated
Comment thread apps/studio/src/components/svm/scenario-editor.tsx Outdated
@failfmi
failfmi deleted the branch develop September 3, 2026 06:20
@failfmi failfmi closed this Sep 3, 2026
@failfmi failfmi reopened this Sep 3, 2026
@92Infinitus92
92Infinitus92 force-pushed the feat/studio-override-outcomes-ui branch from b1e2049 to 8046055 Compare September 3, 2026 07:19
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.

2 participants