Skip to content

Release Captail 0.2.1 - #32

Merged
FaulMit merged 3 commits into
mainfrom
release/0.2.1
Aug 21, 2026
Merged

Release Captail 0.2.1#32
FaulMit merged 3 commits into
mainfrom
release/0.2.1

Conversation

@FaulMit

@FaulMit FaulMit commented Aug 21, 2026

Copy link
Copy Markdown
Owner

Summary

  • add fast replay preview player with seeking, fullscreen controls, keyboard shortcuts, playback-speed feedback, and direct Trim handoff
  • suspend Game Capture replay output while no plausible game is running, then resume automatically when a game is detected
  • add optional replay-off game reminder, compact About menu, and guarded Cancel/Done settings workflow
  • improve replay indicator rendering and validate transparent Microsoft Store taskbar icons
  • refresh README and real AV1 4K 240 FPS screenshots, including new replay player

Verification

  • dotnet restore --locked-mode
  • Release CI build with warnings as errors: 0 warnings, 0 errors
  • capability model, replay routing, localization, and Game Capture idle QA modes
  • localized layout test: 11 dictionaries
  • diagnostic log exporter test
  • Store 0.2.1 package build and 15 taskbar icon asset checks
  • portable test build deployed to D:\Captail-0.1.10

Closes #30

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 99c31d83dc

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +1055 to +1059
if (_config.CaptureSystemAudio)
{
nint system = CreateAudioSource(
"wasapi_output_capture",
"Captail System Audio",
IsGameCapture ? "Captail Game Audio" : "Captail System Audio",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Keep Game Capture audio scoped to the hooked game

When Game Capture and system audio are enabled, this now creates a wasapi_output_capture source, while CreateGameSource disables its per-application capture_audio. Consequently, every sound sent to the selected Windows output device—including notifications, voice calls, or other applications—is recorded alongside gameplay, rather than only the detected game's audio as the Game Capture UI and documentation promise. Retain the game source's application-audio capture for this mode instead of substituting device-wide loopback.

Useful? React with 👍 / 👎.

Comment on lines +216 to +219
string normalizedPath = foreground.FullPath.Replace('/', '\\');
return foreground.IsFullscreen ||
AutomaticGamePathMarkers.Any(marker =>
normalizedPath.Contains(marker, StringComparison.OrdinalIgnoreCase));

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Restrict the replay-off reminder to actual games

For the new default-enabled replay-off warning, this predicate considers any fullscreen executable not present in the static rejection list to be a game. Thus fullscreen productivity or presentation applications such as PowerPoint can satisfy four consecutive samples and trigger the "game starts" reminder even though no game was detected. RefreshReplayOffGameWarning should use stronger game evidence, such as the existing installation-path predicate, rather than treating fullscreen state alone as sufficient.

Useful? React with 👍 / 👎.

Comment on lines +189 to +191
await Task.WhenAll(
LoadTimelineThumbnailsAsync(),
Task.WhenAll(AudioTracks.Select(LoadWaveformAsync)));

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Wait for audio discovery before scheduling trim waveforms

If the user clicks Trim immediately after opening Preview, LoadAudioTracksAsync(false) may still be running, so AudioTracks is empty when this task list is created. BeginEditorAssetsLoad nevertheless permanently sets _editorAssetsStarted, and the later preview-mode audio load deliberately does not start waveforms, leaving every audio waveform missing for the rest of that editor session. Defer this enumeration until audio discovery completes or schedule waveforms when newly discovered tracks arrive.

Useful? React with 👍 / 👎.

@FaulMit
FaulMit merged commit 75a9058 into main Aug 21, 2026
6 of 7 checks passed
@FaulMit
FaulMit deleted the release/0.2.1 branch August 21, 2026 13:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant