This document explains the extension architecture, common developer workflows, and step-by-step publishing instructions.
src/extension.ts— registers commands, sets up activation events, and wires the extension lifecycle.src/models.ts— TypeScript interfaces and data shapes forTeam,Member, andTask.src/store.ts— persistence layer (local file or Memento-backed storage used by the extension).src/webview.ts/webview.js— front-end code for the dashboard webview. Uses message passing between the extension host and webview.out/— compiled output generated bytsc; this is what gets packaged.
- Install dependencies:
npm install- Build TypeScript:
npm run compile- Run the extension:
- Open the workspace in VS Code and press
F5to launch the Extension Development Host. - Use the
Vector Team Hubcommands from the Command Palette to test flows.
- Debugging webview content:
- In the Extension Development Host window, open
Help → Toggle Developer Toolsto view console logs from the webview.
- Bump the version in
package.json(semantic versioning):
npm version patch # or minor/major as appropriateThis command updates package.json and creates a git tag.
- Ensure the extension compiles:
npm run compile- Create a
.vsixpackage:
npx @vscode/vsce package- If the tool warns
LICENSEis missing, add aLICENSEfile (recommended).
- Publish to the Visual Studio Marketplace:
- Create a Personal Access Token (PAT) for the Visual Studio Marketplace under your publisher account.
- Export the token into the environment and publish:
$env:VSCE_PAT = 'YOUR_PERSONAL_ACCESS_TOKEN'
npx @vscode/vsce publish- Or publish a specific packaged file:
npx @vscode/vsce publish --packagePath .\vector-os-team-hub-0.0.2.vsix --pat 'YOUR_PERSONAL_ACCESS_TOKEN'Security note: never commit personal tokens to source control.
- Update the extension
README.mdandpackage.jsondescriptionfield with any important changes. - Use the Visual Studio Marketplace publisher portal to add screenshots, tags, and release notes.
- "Missing
mainor activation errors": ensureout/extension.jsexists after compilation andmaininpackage.jsonpoints to it. - "Webview not loading": check webview console, verify asset paths, and ensure CSP headers are set as expected.
- "Publish fails": confirm
publisherinpackage.jsonmatches the publisher name in the Marketplace and that the PAT has the correct scopes.
- Add a
LICENSEfile (MIT or Apache-2.0 are common) to silence packing warnings. - Add automated CI to run
npm run lintandnpm run compileon PRs. - Maintain
CHANGELOG.mdfor readable release notes.
If you want, I can:
- run the publish step (you supply the PAT in the terminal), or
- add a
LICENSEfile now (ask which license to use).