Releases: SQLBImhugh/copilot-cli-launcher
Release list
v0.3.0 — Projects, New Session, Cleanup, capabilities + reliability pass
v0.3.0 — Projects, New Session, Cleanup, capability selection + a big reliability pass
First release since v0.2.1. This rolls up two months of work: several new tabs plus major reliability and memory fixes.
✨ New features
- Projects tab — per-directory launch profiles. Point a project at a folder and every Resume / new-session / launch under that path uses the same settings (flags, terminal, capabilities) automatically. Includes a project picker, per-project launch shortcuts, and bulk import that scans your past session working directories and offers them as projects (aligned import table, sorted by last-used).
- New Session tab — pick a folder (browse, type, or start from a saved project to inherit its folder + settings), choose the copilot flags you want, and start a fresh Copilot CLI session with a live command preview.
- Cleanup page — bulk session pruning. Classifies every session as empty, test probe, repeated prompt, or scratch dir, then lets you multi-select and delete. "Protect my work" shields anything you named or that has 5+ summaries; in-use sessions can never be deleted.
- Structured args editor — on New Session, New Shortcut, and the Projects editor: every supported copilot CLI flag as a checkbox, with dropdowns for enumerated values (
--effort,--log-level,--output-format, …) and text/path/number inputs elsewhere. Unrecognized args are preserved verbatim in a passthrough box. - Capabilities selector — choose which MCP servers load (enumerated live via
copilot mcp list), pick a single custom--agent, set a tool allow/exclude list, or disable skills — per shortcut and as Settings defaults, reflected in the command preview. - Per-session delete — a 🗑 button on each Sessions card (with confirmation).
- Opt-in extension pre-approval — optionally writes copilot's
permissions-config.jsonso it doesn't re-prompt "Extension X wants elevated permissions" for each installed extension on resume/start. Off by default (it auto-approves an extension security gate). Settings → Sessions Resume defaults.
🐛 Reliability & fixes
- Fixed multi-GB memory use at startup — session repair now streams
events.jsonlin two passes instead of loading whole files into memory. On a large session store this cut resident memory from ~1.2 GB to ~200 MB. - Repair backup pruning + skip-unchanged scan —
events.jsonl.bak-*backups older than a configurable retention (default 7 days) are pruned, and unchanged sessions are skipped on subsequent launches via a fingerprint cache. Both configurable in Settings → Repair. - Changelog now captures real release notes — decoupled the startup release-notes fetch timeout from the slow
copilot update, force-refresh a stale-but-fresh cache when it's missing the target version, and backfill older note-less entries. - Fixed portable build crashing at startup —
resources.priis now staged next to the exe. - Removed dead AI-summary toggles — the non-functional "AI summary on resume" and per-shortcut AI-summary/agents.md-override controls (the AI briefing lives on the Changelog → Briefings tab).
- Confirmation prompts on Clear changelogs/briefings; Sessions launch-default + full-ID display fixes; corrected in-code docs on how
--allow-allrelates to extension permissions.
📦 Downloads
| Asset | What it is |
|---|---|
| CopilotLauncher-portable-v0.3.0.zip | Portable main app. Unzip and run CopilotLauncher.exe — keep resources.pri in the same folder (the exe needs it). No install, no admin. |
| CopilotLauncher-v0.3.0.msix | Main app installer (signed). |
| CopilotLauncher-CmdPal-v0.3.0.msix | PowerToys Command Palette extension (signed). |
| CopilotLauncher-v0.3.0-DevCert.cer | Public dev certificate. Import into Local Machine → Trusted People to install the self-signed MSIXes. |
| SHA256SUMS.txt | Checksums for all of the above. |
The MSIXes are signed with a self-signed dev certificate. To install one, first import
CopilotLauncher-v0.3.0-DevCert.cerinto Trusted People (Local Machine), or just use the portable zip, which needs no cert.
Note: unlike v0.2.1, there is no standalone bare
.exeasset — the portable exe now requiresresources.pribeside it, so it ships as the zip.
Requires: Windows 10 2004+ / Windows 11, x64. GitHub Copilot CLI installed (npm install -g @github/copilot).
v0.2.1 — Window-sizing fix + Sessions quality-of-life
v0.2.1 — Window-sizing fix + Sessions quality-of-life
Four fixes, all reported from daily use of the installed MSIX.
1. Window no longer loads "completely compacted" after a reboot
The launcher (with Start with Windows enabled) could come up collapsed to a tiny title-bar sliver after a reboot — unusable until manually dragged back to size. Root cause was a DPI-scale lifecycle bug in the window sizing: ApplyNormalSize runs before Window.Activate(), so XamlRoot was null and the rasterization scale silently fell back to 1.0, while the AppWindow.Changed size-persistence handler read the real post-activation scale. That asymmetry (restore × 1.0 vs persist ÷ realScale) shrank the saved size on every launch where a >100% DPI context was involved, with no minimum-size clamp to stop the collapse.
Fixes:
- DPI scale now comes from the Win32
GetDpiForWindow(hwnd)— correct both before and after activation — used symmetrically on restore and persist. - Normal-window size is clamped to a 900×700 minimum; the persist handler refuses to save sub-minimum sizes.
- Startup self-heal: a corrupt saved size (below the minimum) is reset to the 1180×1040 default on launch.
Verified: injecting a corrupt 210×150 saved size now heals to 1180×1040 instead of opening tiny. The deliberate 320×640 compact mode is unaffected.
2. "Recent" filter chip reflects your setting
The Sessions filter chip was hardcoded to "Recent (15d)" even though the actual filter already honored your Recent window (days) setting. The label and tooltip now read the live value (e.g., "Recent (35d)" / "Modified in the last 35 days").
3. Copy session-id button
Each session card has a small copy icon next to the id that copies the full session id to the clipboard.
4. Start-new-session button
Each session card has a small icon next to the working-directory path that launches a fresh Copilot session in that folder (no --resume), using your default new-session flags.
Tests
- 173 tests green (was 162): added
WindowSizingTestsplus Sessions ViewModel tests for the recent-label, new-session launch, and unknown-cwd fallback.
Assets
| File | Use |
|---|---|
CopilotLauncher-v0.2.1.msix |
Recommended. Trust CopilotLauncher-v0.2.1-DevCert.cer to Cert:\CurrentUser\TrustedPeople, then Add-AppxPackage. Installs in-place over v0.2.0. |
CopilotLauncher-CmdPal-v0.2.1.msix |
Optional PowerToys Command Palette extension. Requires the main MSIX. |
CopilotLauncher-v0.2.1.exe |
Portable single-file self-contained .exe. No install required. |
CopilotLauncher-portable-v0.2.1.zip |
Portable folder layout. |
CopilotLauncher-v0.2.1-DevCert.cer |
Dev signing cert (same identity as v0.2.0). |
SHA256SUMS.txt |
Checksums. |
Install (MSIX)
Import-Certificate -FilePath .\CopilotLauncher-v0.2.1-DevCert.cer `
-CertStoreLocation Cert:\CurrentUser\TrustedPeople
Add-AppxPackage .\CopilotLauncher-v0.2.1.msix
Add-AppxPackage .\CopilotLauncher-CmdPal-v0.2.1.msix # optionalCo-authored-by: Copilot 223556219+Copilot@users.noreply.github.com
v0.2.0 - Changelog / Briefing decoupling + on-demand AI
v0.2.0 — Changelog / Briefing decoupling + on-demand AI
The single Briefing tab in v0.1.x conflated three independent concerns: running copilot update, displaying the bundled changelog, and generating an AI briefing. All three were gated on a version-bump being detected, so there was no way to (re-)generate an AI briefing once the app was already up-to-date — and every bump unconditionally burned premium credit even when you just wanted the raw notes.
What changed
Briefingtab renamed toChangelogwith an internal SelectorBar:- Changelog sub-view: latest version-bump notes highlighted at top,
Previous changelogsExpander beneath.Check nowruns the updater + persists notes only. No AI is called here, ever. - Briefings sub-view: AI-generated summaries, newest-first.
Generate AI Briefingis a dedicated button that works even when the app is already up-to-date.
- Changelog sub-view: latest version-bump notes highlighted at top,
- Smart AI re-display: if the latest briefing already covers the current Copilot CLI version, clicking
Generate AI Briefingswitches to the Briefings view and surfaces the existing entry — no premium credit spent. AI Summary on version bumpsetting removed: all AI generation is now explicit and on-demand. TheAI Summary context filesetting (BriefingSessionName) is preserved.- One-shot migration: existing
briefings.jsonentries are split on the\n\n---\n\nboundary — the AI portion becomes the newbriefings.json(AI-only), the raw notes become the newchangelogs.json. Pre-AI v0.1.x entries (no## AI Summaryheader) become changelog-only. The original file is backed up tobriefings.json.v01-backup. Idempotent — runs only ifchangelogs.jsondoesn't already exist.
New files
Models/ChangelogEntry.cs— changelog history entry shapeServices/ChangelogHistoryService.cs— 50-entry cap, atomic write, corrupt-JSON backupServices/BriefingsSplitMigration.cs— v0.1.x → v0.2.0 split + backupViewModels/ChangelogPageViewModel.cs— replacesBriefingViewModelPages/ChangelogPage.xaml(.cs)— replacesBriefingPage
Tests
- 162 tests green (was 134)
- Added
ChangelogHistoryServiceTests(7),BriefingsSplitMigrationTests(8),ChangelogPageViewModelTests(13)
Compatibility
- v0.1.x users: existing briefings auto-migrate on first launch. Nothing is deleted.
BriefingSettings.AISummaryOnBumpandAISummaryOnStartupUpdatetoggles are no longer surfaced in Settings — AI is fully on-demand. Settings JSON keeps the fields for backward compat but they're effectively dead.
Assets
| File | Use |
|---|---|
CopilotLauncher-v0.2.0.msix |
Recommended. Trust CopilotLauncher-v0.2.0-DevCert.cer to Cert:\CurrentUser\TrustedPeople, then Add-AppxPackage. |
CopilotLauncher-CmdPal-v0.2.0.msix |
Optional PowerToys Command Palette extension. Requires the main MSIX. |
CopilotLauncher-v0.2.0.exe |
Portable single-file self-contained .exe. No install required. |
CopilotLauncher-portable-v0.2.0.zip |
Portable folder layout (debug/diagnostic preference). |
CopilotLauncher-v0.2.0-DevCert.cer |
Dev signing cert for both MSIXs. |
SHA256SUMS.txt |
Checksums. |
Install (MSIX)
`powershell
1. Trust the dev cert (one-time, no admin)
Import-Certificate -FilePath .\CopilotLauncher-v0.2.0-DevCert.cer `
-CertStoreLocation Cert:\CurrentUser\TrustedPeople
2. Install the app
Add-AppxPackage .\CopilotLauncher-v0.2.0.msix
3. Optional: install the Command Palette extension
Add-AppxPackage .\CopilotLauncher-CmdPal-v0.2.0.msix
`
Co-authored-by: Copilot 223556219+Copilot@users.noreply.github.com
v0.1.12 — pre-release tags + stale-cache fallback + anti-hallucination AI prompt
v0.1.12 — pre-release tags + stale-cache fallback + anti-hallucination AI prompt
Follow-up to v0.1.11 for the AI summary path. Two compounding bugs still produced hallucinations even after release notes fetching was wired up — both fixed.
Bug 1: pre-release tags were silently dropped
copilot CLI publishes daily pre-release tags (v1.0.57-0, -1, -2, -3, ...) between stable cuts. When a user transitioned from stable v1.0.56 to one of those pre-releases (which copilot --version reports as just "1.0.57"), v0.1.11's filter found zero entries in the (1.0.56, 1.0.57] range — every match was a pre-release that got skipped.
Result: empty changelog handed to the AI summarizer → AI defaulted back to whatever was in its session memory → hallucinated paragraphs about Launch-Copilot.ps1 and Get-RemoteChangelogEntries (legacy PowerShell helpers from the v1.x launcher that don't exist in the WinUI rewrite).
Fix: keep all tags. Preserve the full tag name in Version (e.g. "1.0.57-3" displays as ## v1.0.57-3 in the briefing). New SemVerKey comparable orders pre-releases before the stable cut of the same base version so the briefing reads chronologically: 1.0.56-0 < 1.0.56-1 < 1.0.56-2 < 1.0.56 < 1.0.57-0 < ...
Bug 2: stale cache wasn't used when fresh fetch failed
When the cache was past TTL and the GitHub Releases API call failed (rate limit, transient network error, DNS hiccup), ReleaseNotesService returned empty instead of falling back to the stale cache content. Again: empty changelog → AI hallucination.
Fix: if fresh fetch returns null, return the stale cache content. Slightly out-of-date release notes are infinitely better than no notes — empty is what causes the model to make things up.
Bug 3: AI prompt didn't fence against session-memory contamination
The launcher reuses a single named session (CopilotCLI-Update-Briefings) across version bumps for cumulative context. Months of legacy-PS-launcher prompts had cemented hallucinated context that even fresh changelog data couldn't override.
Fix: the AI prompt now explicitly:
- Forbids referencing prior turns, any named PowerShell scripts (
Launch-Copilot.ps1,Get-RemoteChangelogEntries), wrappers, or Desktop cache files — none of those exist in this product - Mandates a fixed fallback string (
"No release notes available for this transition.") when the changelog is empty or only contains updater status lines - Says: base the summary STRICTLY on the changelog text below; do not invent items
Bug 4: AI was called even when there were no release notes
Both Check now and the startup-update path used to fall back to result.RawOutput ("No update needed, current version is X.Y.Z") as the AI's changelog input when the GitHub fetch returned nothing. The model couldn't anchor on that — it would freelance from memory. Now we skip the AI call entirely when entries is empty and surface a status message: "Skipped AI summary — no GitHub release notes available for this range." Honest > wrong.
Verified
On the user's machine, 1.0.57 → 1.0.60 now produces four real entries (v1.0.58, v1.0.59, v1.0.60-0, v1.0.60) with full curated bodies and an AI summary that cites actual changes (rubber duck enabled by default, /voice command, vim-style diff navigation, billing help topic, etc.) — no hallucinations.
Tests
130 → 134 (4 new for pre-release ordering + stale-cache fallback).
Downloads
Same dev cert as v0.1.4+ — if you already trusted it, just install the MSIX.
v0.1.11 — Check now detects silent auto-updates + AI summary now sees real release notes
v0.1.11 — fixes for "Check now" silent update detection + AI summary hallucinations
Bugs fixed
1. Check now reported "still X.Y.Z" even when copilot CLI had just updated under the hood.
v0.1.10 tried to fix this with --no-auto-update --version on the version probe, but that flag also disables copilot's cache-walk in its internal gate function — so the probe returned the immutable bundled npm version, not the cached current version. The launcher then saw OLD == OLD (or NEW == NEW) and suppressed the briefing entirely.
The real problem: copilot CLI silently auto-extracts new releases to %LOCALAPPDATA%\copilot\pkg\ during prior invocations. By the time the user clicks Check now, both pre- and post-update synchronous --version queries see the same already-extracted version. No in-process probe can catch the transition.
Fix: persist a LastObservedCopilotVersion in settings.json and compare against post-update. Two-phase commit — the new baseline is written only after the briefing entry is durably persisted, so a mid-flight AI-summary failure or disk hiccup can no longer strand the transition undetectable.
Migration: on v0.1.10 → v0.1.11 upgrade, the baseline seeds from the newest briefings.json entry's ToVersion, so returning users keep continuity instead of getting a fake first-run bootstrap.
2. AI summary hallucinated about legacy PowerShell scripts that don't exist in this launcher.
The WinUI port never wired up GitHub Releases fetching. BriefingService.Render(...) and the AI prompt got only the raw copilot update stdout — typically just "No update needed, current version is X.Y.Z" — so the AI made up a story from session memory (commonly citing the legacy Launch-Copilot.ps1, releases-cache.json, last-seen-version.txt).
Fix: new ReleaseNotesService fetches from api.github.com/repos/github/copilot-cli/releases, caches at %LOCALAPPDATA%\CopilotLauncher\state\releases-cache.json (1-hour TTL), filters to the half-open (fromVersion, toVersion] range, skips pre-release tags. Both Check now and startup auto-update pass the fetched entries to both Render(...) AND to the AI prompt. Raw copilot update stdout remains the offline fallback.
3. Settings → About page showed "1.0.0.0".
The csproj had no <Version> so Assembly.GetExecutingAssembly().GetName().Version returned the SDK default. Now stamps 0.1.11.0.
Tests
116 → 130 (5 new for persistence/two-phase commit, 9 new for release-notes fetch/parse/filter/cache). All green.
Downloads
| Asset | Purpose |
|---|---|
CopilotLauncher-v0.1.11.msix |
Main launcher (signed MSIX — recommended for permanent install) |
CopilotLauncher-CmdPal-v0.1.11.msix |
PowerToys Command Palette extension |
CopilotLauncher-v0.1.11.exe |
Standalone portable .exe |
CopilotLauncher-portable-v0.1.11.zip |
Portable folder bundle |
CopilotLauncher-v0.1.11-DevCert.cer |
Trust this in Local Machine \ Trusted Root once to install the MSIX |
SHA256SUMS.txt |
Checksums |
Same dev cert as v0.1.4+ (thumbprint F0005E749CBC679A3EFD3A79DF304F614BFD6463) — if you already trusted it for a previous release, you can install this MSIX without re-importing.
v0.1.10 - Catch silent copilot CLI auto-updates
What's new in v0.1.10
Fixed
- ""Check now"" now catches updates that copilot CLI silently auto-installs. Earlier versions of the launcher would call
copilot --versionto capture the ""before"" version — but copilot CLI auto-updates itself on every invocation that goes through the app gate, including--version. Soprevended up being the post-auto-update version, the subsequent explicitcopilot updatewas a no-op, and the launcher reported ""no version change"" even when a real OLD → NEW transition just happened underneath. The version probes now pass--no-auto-updateso they're pure reads; the explicit update step still runs normally and does the actual install.
Improved
- Briefing in-progress text shows the version transition. Instead of a context-free ""Generating AI summary…"", the status line now reads ""Updated 1.0.48 → 1.0.49. Generating AI summary…"" so you can see the captured transition while the summary is being produced. Same prefix applies to the AI-summary-unavailable fallback message.
Tests
- 114 → 116 (regression coverage for the
--no-auto-updateflag in the version-probe argv).
Downloads
| File | Purpose |
|---|---|
CopilotLauncher-v0.1.10.msix |
Main app, MSIX (recommended; auto-updates from prior MSIX) |
CopilotLauncher-CmdPal-v0.1.10.msix |
PowerToys Command Palette extension |
CopilotLauncher-v0.1.10.exe |
Portable single-file exe (no install) |
CopilotLauncher-portable-v0.1.10.zip |
Portable folder bundle |
CopilotLauncher-v0.1.10-DevCert.cer |
Public cert; only needed once for fresh MSIX installs (same thumbprint as v0.1.4+) |
SHA256SUMS.txt |
Asset hashes |
Installation
Upgrading from v0.1.4+: Add-AppxPackage CopilotLauncher-v0.1.10.msix — the cert is already trusted.
Fresh install: see README.md for the cert trust step.
v0.1.9 - Briefing fixes for copilot CLI 1.0.49
What's new in v0.1.9
Fixed
- Briefing AI Summary works on copilot CLI 1.0.49+ — switched to
--output-format jsonand parse the JSONLassistant.message.data.content. In 1.0.49 the text-mode output no longer prints the model's reply, so the previous flow created briefing entries with an empty## AI Summarysection. Timeout also bumped 60s → 120s for tool-using calls. - ""Check now"" on stale CLI machines — the launcher now re-queries
copilot --versionaftercopilot updateexits. Previously, on a machine running an older copilot build whose update text didn't match either known format, the first click reported OLD → OLD (no version change detected) and the second click reported NEW → NEW. You now correctly see OLD → NEW on the first click and the briefing renders end-to-end.
Internal
- Removed the github/copilot-cli#3298 win32 keep-alive stub workaround. The upstream fix shipped in copilot CLI v1.0.48 and the in-tree path layout has changed; verified clean against v1.0.49 (
/keep-alivereports ""Keep-alive is disabled."" with no error). - Test suite: 110 → 114 (added JSONL extractor tests, update-check precedence test).
Downloads
| File | Purpose |
|---|---|
CopilotLauncher-v0.1.9.msix |
Main app, MSIX (recommended; auto-updates from prior MSIX) |
CopilotLauncher-CmdPal-v0.1.9.msix |
PowerToys Command Palette extension |
CopilotLauncher-v0.1.9.exe |
Portable single-file exe (no install) |
CopilotLauncher-portable-v0.1.9.zip |
Portable folder bundle |
CopilotLauncher-v0.1.9-DevCert.cer |
Public cert; only needed once for fresh MSIX installs (same thumbprint as v0.1.4+, so existing installs don't need to re-trust) |
SHA256SUMS.txt |
Asset hashes |
Installation
Upgrading from v0.1.4+: Add-AppxPackage CopilotLauncher-v0.1.9.msix — the cert is already trusted.
Fresh install: see README.md for the cert trust step.
v0.1.8 — stop silently dropping oversize agents.md context
Fix: oversize agents.md files were silently dropped from briefing prompts.
If your configured Default agents.md path exceeded 4,000 chars, the launcher returned null from the read step instead of truncating — the entire file was excluded from the AI briefing prompt with no warning. Spotted in the wild on a 5,127-char real agents.md.
v0.1.8 fixes this two ways:
- Raise the limit from 4,000 to 20,000 chars (~5K tokens — premium copilot CLI models handle 100K+ tokens easily, so this is generous).
- Truncate with marker when over the new limit (
...[truncated]appended), matching how the changelog is already handled. No more silent drops.
Install
& ([scriptblock]::Create((iwr -useb https://github.com/SQLBImhugh/copilot-cli-launcher/raw/main/dist/install.ps1).Content)) -MsixCert thumbprint unchanged (F0005E749CBC679A3EFD3A79DF304F614BFD6463). v0.1.7 MSIXs upgrade in place.
Artifacts
CopilotLauncher-v0.1.8.msix(64.7 MB)CopilotLauncher-CmdPal-v0.1.8.msix(11.6 MB)CopilotLauncher-v0.1.8-DevCert.cerCopilotLauncher-v0.1.8.exe(portable)CopilotLauncher-portable-v0.1.8.zipSHA256SUMS.txt
v0.1.7 — briefings reuse a named copilot session for cumulative context
Briefings now reuse a named Copilot CLI session so the AI has cumulative context across version-bump summaries.
Before, every AI summary was a stateless one-shot — no memory of prior briefings, prior repo context, or prior version bumps. v0.1.7 adds a new setting Briefing session name (default CopilotCLI-Update-Briefings) that, when populated, makes the launcher pass --resume=<name> to copilot if a session by that name exists, or --name <name> to create it on first run.
This matches the manual convention many users had adopted before the launcher gained this feature.
How it works
- Empty/blank → each briefing is a fresh stateless one-shot (the old v0.1.0–v0.1.6 behavior).
- Set to a name → the launcher checks
~/.copilot/session-state/*/workspace.yamlfor that name:- exists → spawn
copilot -p "<prompt>" --resume=<name> --no-color(appends to the cumulative session) - doesn't exist → spawn
copilot -p "<prompt>" --name <name> --no-color(creates it on this first run)
- exists → spawn
To reset, just rename the session in Settings.
Settings location
Settings → AI Summary card → Briefing session name (for historical context) text box.
Install
& ([scriptblock]::Create((iwr -useb https://github.com/SQLBImhugh/copilot-cli-launcher/raw/main/dist/install.ps1).Content)) -MsixCert thumbprint unchanged from v0.1.4+ (F0005E749CBC679A3EFD3A79DF304F614BFD6463). v0.1.6 MSIXs upgrade in place.
Artifacts
CopilotLauncher-v0.1.7.msix(64.7 MB)CopilotLauncher-CmdPal-v0.1.7.msix(11.6 MB)CopilotLauncher-v0.1.7-DevCert.cerCopilotLauncher-v0.1.7.exe(portable)CopilotLauncher-portable-v0.1.7.zipSHA256SUMS.txt
v0.1.6 — no more cmd.exe flashes on launch
Fix: two cmd.exe windows briefly flashed during app launch.
When Process.Start runs a .cmd file on Windows (and copilot is an npm shim that resolves to copilot.cmd), Windows wraps the call via cmd.exe, which pops a console window unless CreateNoWindow=true is explicitly set. UpdateCheckService was spawning copilot --version + copilot update on every launch without that flag, causing two brief flashes. Fixed both call sites.
Install
& ([scriptblock]::Create((iwr -useb https://github.com/SQLBImhugh/copilot-cli-launcher/raw/main/dist/install.ps1).Content)) -MsixThe signing cert is unchanged from v0.1.4/v0.1.5 (thumbprint F0005E749CBC679A3EFD3A79DF304F614BFD6463). The installer detects the existing trust and skips the cert import. If you have v0.1.5 installed, this upgrades in place.
Artifacts
CopilotLauncher-v0.1.6.msix(64.7 MB)CopilotLauncher-CmdPal-v0.1.6.msix(11.6 MB)CopilotLauncher-v0.1.6-DevCert.cerCopilotLauncher-v0.1.6.exe(portable)CopilotLauncher-portable-v0.1.6.zipSHA256SUMS.txt