Repository navigation
fix: release launcher listeners per launch and cut 0.1.9 - #15
Merged
Merged
Conversation
Every launch pushed its shell-integration listener, its fallback timer, and its shell-execution listener onto context.subscriptions. VS Code only drains that array on deactivation, so repeated launches grew it without bound and the shell-execution listener stayed registered whenever a terminal closed before its command finished. Each launch now owns a disposal scope created by createLaunchSession. The scope ends when the command finishes, when the fallback sendText path runs, or when its terminal closes, and deactivate drains whatever is left. Only activate registers on context.subscriptions. Terminal output is no longer read for custom CLI commands. It was buffered on every launch even though only the Codex missing-CLI check consumes it, which did not match the documented trust boundary. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Drops the unused scripts/generate-icon.js placeholder generator and its generate:icon script. Nothing referenced it and running it overwrote the published media/icon.png with a different placeholder image. The published artwork itself is unchanged. Synchronizes the version across package.json, package-lock.json, CITATION.cff, README.md, and the metadata test, and records the release in CHANGELOG.md. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
context.subscriptions: every launch pushed its shell-integration listener, its fallback timer, and its shell-execution listener onto the extension subscription list, which VS Code only drains on deactivation. Each launch now owns a disposal scope (createLaunchSession) that ends when the command finishes, when thesendTextfallback runs, or when its terminal closes.deactivatedrains whatever is left, and onlyactivateregisters oncontext.subscriptions.onDidEndTerminalShellExecutionlistener: it was never disposed when a terminal closed before its command finished, so it stayed live for the rest of the session.docs/architecture.mdor the 0.1.8 changelog entry.scripts/generate-icon.jsplaceholder generator and itsgenerate:iconscript. Nothing referenced it, and running it overwrote the publishedmedia/icon.png(23,173 bytes, hand-authored) with a different 1,955-byte placeholder. Verified by running the script against a scratch directory and comparing hashes; the published artwork is untouched by this PR.0.1.9and rewritesAGENTS.mdwith the stack, real commands, launch lifecycle, protected assets, compatibility rules, and validation criteria.No behavior visible to users changes: the same terminal is created, the same command is sent, and the missing-Codex documentation prompt still fires on the same conditions.
Related Issue
No linked issue.
Validation
npm run check— 39 unit tests pass, VS Code1.103.0integration smoke test exits 0,vsce lslists 12 filesnpm run audit— 0 vulnerabilitiesvscode-codex-cli-launcher-0.1.9.vsix, 14 entries, 63.25 KB; no sources, tests,AGENTS.md, workflows, lockfile, or source maps--extensions-dir/--user-data-dirprofile;--list-extensions --show-versionsreportsmikesoft.vscode-codex-cli-launcher@0.1.9Checklist
test/extension-lifecycle.test.jsdocs/architecture.mdgains a launch lifecycle sectionCHANGELOG.mdis updatedScreenshots or Notes
No UI change, so no screenshots apply.
Known issues left untouched:
media/launcher-mark.svgis 51.7 KB and embeds two base64 PNGs at 256 px, which is 82% of the VSIX payload for an icon that renders at toolbar size. Not changed here because it is published artwork; worth a separate design pass.VSCE_PAT/OVSX_PAT, so publishing to the Marketplace and Open VSX remains a manual maintainer step after this merges.🤖 Generated with Claude Code