Prepare Captail 0.1.8 Store release - #19
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 172dbf8505
ℹ️ 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".
| if (!shutdown.Wait(TimeSpan.FromSeconds(15))) | ||
| { | ||
| Log.Write( | ||
| "Store package shutdown did not finish within 15 seconds."); | ||
| } |
There was a problem hiding this comment.
Wait for Store shutdown before returning from lifecycle events
When an update or uninstall arrives during replay saving, SaveReplayGuardedAsync can hold _pipelineGate for up to the 45-second save timeout, but this handler stops waiting after 15 seconds and returns while RequestShutdownAsync is still blocked on that gate. The package operation can therefore continue with Captail still capturing or muxing, defeating the lifecycle isolation specifically when an active save needs protection; keep the lifecycle callback pending through the supported save duration or explicitly cancel/finish the save before returning.
Useful? React with 👍 / 👎.
| [UninstallDelete] | ||
| Type: filesandordirs; Name: "{localappdata}\Captail" | ||
| Type: filesandordirs; Name: "{userappdata}\Captail" |
There was a problem hiding this comment.
Preserve data shared with Portable installations
When a user also runs the supported Portable ZIP, that build stores its configuration and caches in these same %APPDATA%\Captail and %LOCALAPPDATA%\Captail directories through AppDataPaths because it has no package identity. Uninstalling the regular Setup build now silently deletes the Portable installation's settings and cached metadata as well; scope cleanup to data owned by this installation or make removal of shared user data an explicit opt-in.
Useful? React with 👍 / 👎.
Summary
Why
Store installations could load incompatible FFmpeg DLLs, causing missing-entry-point failures. Store updates and removals also needed package lifecycle handling and package-owned state. Automatic capture could retain an inactive OBS hook and place a CS replay in another application's folder, such as Telegram. Microsoft Store submissions were entirely manual.
User impact
Validation
--qa-capability-model--qa-replay-routing--qa-auto-capture-policyfaulmit.Captail0.1.8.0git diff --checkLocal regular-installer uninstall QA was not repeated while the installed Store build was active. The release workflow retains its install, launch, uninstall, process-exit, and AppData cleanup checks.