chore(vscode): prepare extension for release under patroza namespace#8
Open
patroza wants to merge 4 commits into
Open
chore(vscode): prepare extension for release under patroza namespace#8patroza wants to merge 4 commits into
patroza wants to merge 4 commits into
Conversation
Publishes the extension as `patroza.t3-code` to the VS Code Marketplace and Open VSX, branded as an unofficial fork build of upstream pingdotgg/t3code. - Set publisher to `patroza` and mark the display name/description/README as a fork build so it is not mistaken for the official upstream extension. - Add the marketplace metadata vsce needs: 128x128 PNG icon (derived from the desktop app icon), repository/homepage/bugs, license, keywords, LICENSE, and a CHANGELOG. - Add `package`/`publish:vsce`/`publish:ovsx` scripts plus @vscode/vsce and ovsx. Packaging passes --no-dependencies because esbuild already bundles src/, so vsce never has to resolve the workspace:* deps it cannot understand, and --baseContentUrl/--baseImagesUrl so the README's relative links resolve against apps/vscode/ rather than the repo root. - Ignore *.vsix and drop dev-only files from the packaged extension. `private: true` is retained deliberately: vsce ignores it, and it still guards against an accidental `npm publish`. Verified with `vsce package`: 678 KB, 11 files, no warnings; the vsix manifest resolves to publisher `patroza`, id `t3-code`, and correct marketplace links. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The README explained the connection model only in passing, inside the Development section, and never stated the default server URL or how to change it. The settings themselves were only reachable by knowing their names. - Add "Connecting to a server" and "Settings" sections covering the http://127.0.0.1:3773 default, when to change it, the desktop-runtime precedence, machine scope, and every setting with its default. - Add "T3 Code: Set Server URL", which prefills the current value and validates input, and "T3 Code: Open Settings", which filters the Settings UI to this extension. - Expand the settings descriptions so the Settings UI is self-explanatory. serverUrlValidationMessage lives in serverResolution.ts beside the normalizeServerUrl call it guards: that parses with `new URL(...)`, so an unparseable value used to surface as a connection failure rather than at entry. Keeping it there also keeps it testable, since extension.ts imports `vscode`. Also record the Dec 1 2026 Azure DevOps global PAT retirement and the correct PAT scopes in the release docs. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
vsce rewrites the README's relative links against --baseContentUrl/--baseImagesUrl because it cannot infer that this extension lives in a monorepo subdirectory. Those were pointed at `main`, which meant the screenshot 404'd on the marketplace until the extension reached main, and would break again if the file ever moved. scripts/vsce.ts now resolves the current commit and pins both URLs to it, so a published version's README refers to the tree it was built from. A published README cannot be corrected without shipping a new version, so the script also refuses to run when HEAD is not on a remote branch (the links would 404 for everyone) and warns when the working tree is dirty. The GitHub slug and subdirectory are derived from package.json's repository field rather than duplicated in the scripts. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
0.0.37 is already on the marketplace, and a published version cannot be replaced, so the settings commands and docs ship as 0.0.38. This also repairs the live listing: 0.0.37's README links pointed at main before the extension existed there, so its screenshot 404s. Co-Authored-By: Claude Opus 4.8 <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.
Stacked on #3 — review that one first; this PR only contains the release-prep commit on top of it.
Prepares the VS Code extension to ship as
patroza.t3-codeon both the VS Code Marketplace and Open VSX, branded as an unofficial fork build of upstreampingdotgg/t3code.What changed
Identity & branding
publisher: t3code→patroza, so the extension ID becomespatroza.t3-code.T3 Code (patroza build), and the description plus a README callout state it is an unofficial fork not supported by T3 Tools Inc., pointing issues at this fork's tracker.Marketplace metadata vsce requires
media/icon.png, downscaled fromapps/desktop/resources/icon.png. The existingmedia/t3-code.svgcan't serve here: it usescurrentColorfor the activity bar, and the marketplace rejects SVG icons.repository(withdirectory),homepage,bugs,license,keywords, aLICENSEcopy, and aCHANGELOG.md.Packaging & publishing
package,publish:vsce,publish:ovsxscripts, plus@vscode/vsceandovsxdevDeps, and avscode:prepublishbuild hook.--no-dependenciesis deliberate: esbuild already bundlessrc/, so nothing fromnode_modulesships and vsce never has to resolve theworkspace:*deps it cannot understand.--baseContentUrl/--baseImagesUrlmake the README's relative links resolve againstapps/vscode/— vsce can't infer that for an extension in a monorepo subdirectory, and would otherwise rewrite the screenshot to a 404 at the repo root.*.vsixis gitignored; dev-only files are dropped from the package.private: trueis kept on purpose — vsce 3.9.2 has noprivatecheck (verified against its source), and it still guards against an accidentalnpm publish.Verification
vsce packagesucceeds with no warnings: 11 files, 678 KB.extension.vsixmanifest:Publisher="patroza",Id="t3-code", icon asset present, marketplace links correct.raw.githubusercontent.com/patroza/t3code/main/apps/vscode/media/screenshot.jpg.pnpm --filter t3-code test(18 passed),typecheck, andfmt:checkall pass. Lint warnings underapps/vscode/srcare pre-existing and untouched.Not included — needed before an actual publish
patrozapublisher on the Marketplace and the namespace on Open VSX (ovsx create-namespace patroza).VSCE_PAT/OVSX_PATtokens. Per the chosen approach, publishing stays manual; no CI secrets or release workflow are added here. The README documents the full flow.versionis left at0.0.37; bump it when you're ready to cut the first release.🤖 Generated with Claude Code