Skip to content

Move pure playback types into SentryReplay.Data#35

Merged
danielchalmers merged 1 commit into
mainfrom
claude/move-playback-types-to-data
Jun 18, 2026
Merged

Move pure playback types into SentryReplay.Data#35
danielchalmers merged 1 commit into
mainfrom
claude/move-playback-types-to-data

Conversation

@danielchalmers

Copy link
Copy Markdown
Owner

What

Relocates the provider-agnostic playback types out of the WPF app project and into the existing SentryReplay.Data class library, so pure logic lives behind a compile-time boundary that cannot acquire WPF/Flyleaf dependencies.

Moved SentryReplay/Playback/SentryReplay.Data/Playback/:

  • ClipTimeline.cs, ClipTimelinePosition.cs — pure timeline math (no usings)
  • CameraPlayerEvents.csEventArgs wrappers (no usings)
  • ICameraPlayer.cs — the playback abstraction seam (no usings)
  • ClipPlaylist.cs — clip selection state; uses Serilog

Stayed in the app (SentryReplay/Playback/): FlyleafCameraPlayer.cs and VideoPlayerController.cs — both are genuinely Flyleaf/MVVM-coupled.

SentryReplay.Data.csproj: added <PackageReference Include="Serilog" Version="4.2.0" /> (matches the app's version) — required because ClipPlaylist logs via Serilog. Without it the move would not compile.

Why this is safe / cheap

  • Namespace is flat SentryReplay; across both projects (no RootNamespace override), so the files compile unchanged after the move — no namespace, XAML, or test edits needed.
  • The dependency graph is unchanged: the app already references SentryReplay.Data, so VideoPlayerController/FlyleafCameraPlayer still see ICameraPlayer and the pure types (app → Data). Tests already reference Data, so FakeCameraPlayer : ICameraPlayer still resolves.
  • Files moved with git mv (tracked as renames, history preserved).

Verification

Full solution builds clean (0 warnings/errors); all 81 tests pass; dotnet format clean.

Notes

  • Per the agreed plan, this deliberately does not rename DataDomain (naming churn, no payoff) and does not create per-feature slice folders.
  • Step 2 of the reorg. Remaining: rewrite AGENTS.md so the "preserve existing MVVM patterns" guidance no longer sanctions the old god-file pattern.

@danielchalmers danielchalmers merged commit 361a88c into main Jun 18, 2026
1 check passed
@danielchalmers danielchalmers deleted the claude/move-playback-types-to-data branch June 18, 2026 17:43
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.

1 participant