Skip to content

Document VS Code Marketplace release - #1165

Merged
aallan merged 6 commits into
mainfrom
agent/document-vscode-marketplace-release
Jul 27, 2026
Merged

Document VS Code Marketplace release#1165
aallan merged 6 commits into
mainfrom
agent/document-vscode-marketplace-release

Conversation

@aallan

@aallan aallan commented Jul 27, 2026

Copy link
Copy Markdown
Owner

Summary

  • document the verified veralang.vera-language Marketplace install route across the extension README, project README, LSP/PyPI guidance, and veralang.dev
  • record the 0.2.0 Marketplace release in both changelogs and remove the resolved publication blocker from the roadmap
  • regenerate the machine-readable site assets from their updated sources

The public Marketplace VSIX was downloaded before these claims were added. Its extracted contents match a fresh build from current main file-for-file, and a clean isolated VS Code profile successfully installed veralang.vera-language@0.2.0 through the Marketplace CLI. The downloaded artifact's SHA-256 is b04afb6a1c0a397697346553bd743dd26cd13b119edb967f8b9b29ff12612242.

Validation

  • python scripts/build_site.py
  • python scripts/check_site_assets.py
  • .venv/bin/python scripts/check_doc_counts.py
  • .venv/bin/python -m pytest tests/test_readme.py tests/test_html.py -q — 6 passed
  • full pre-commit test run — 8,427 passed, 90 skipped, 26 deselected; 23 loopback-server tests blocked by the sandbox all passed separately with local-network permission
  • npm run check
  • npm test — 13 passed
  • npm run package
  • packaged VSIX content guard — exactly 10 expected entries, all allowlisted, none executable

Closes #1106

Summary by CodeRabbit

  • New Features

    • Vera Language is now available via the VS Code Marketplace.
    • Added Marketplace installation guidance, including code --install-extension veralang.vera-language.
    • Syntax highlighting works immediately; language-server features require language server setup.
  • Security

    • Updated the extension’s dependency lock to address a high-severity denial-of-service issue.
  • Documentation

    • Refreshed editor support and VS Code installation instructions across README, PyPI, LSP setup, and generated site content, plus updated multiple changelog and workflow notes for the 0.2.1 release.

@coderabbitai

coderabbitai Bot commented Jul 27, 2026

Copy link
Copy Markdown

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Documents Vera Language 0.2.0 Marketplace availability, adds installation instructions, clarifies language-server requirements, updates generated editor-support content, records a dependency security fix, and removes the completed Marketplace publication roadmap item.

Changes

VS Code Marketplace release documentation

Layer / File(s) Summary
Extension release and installation
editors/vscode/package.json, editors/vscode/CHANGELOG.md, editors/vscode/README.md, CHANGELOG.md
Bumps the extension to 0.2.1, records the Marketplace release and security fix, and documents Marketplace installation alongside language-server requirements.
Project-wide editor support guidance
README.md, PYPI_README.md, LSP_SERVER.md, scripts/build_site.py, AGENTS.md, CLAUDE.md
Updates editor-support, generated-site, and workflow guidance with the Marketplace extension, installation command, and language-server setup details.
Release status and security records
ROADMAP.md, CHANGELOG.md
Removes the completed Marketplace publication item and records the brace-expansion security version update.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

Suggested labels: ci, docs

🚥 Pre-merge checks | ✅ 8
✅ Passed checks (8 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarises the main change: documenting the VS Code Marketplace release.
Linked Issues check ✅ Passed The PR updates Marketplace installation docs, records the release, removes the blocker, and bumps the extension version as expected for #1106.
Out of Scope Changes check ✅ Passed The changes stay focused on Marketplace release docs, versioning, and related guidance with no clear unrelated additions.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
Changelog Covers Public-Surface Changes ✅ Passed No compiler/public-surface files changed; only docs, site assets, and VS Code extension metadata/changelogs were touched, so root CHANGELOG coverage is not required.
Spec And Implementation Move Together ✅ Passed PASS: the diff only touches docs, site assets, and VS Code extension metadata; no vera/ or spec/ files changed, so no spec/implementation drift.
Diagnostics Carry An Error Code ✅ Passed No diagnostic definitions changed; the PR only updates docs, changelogs, and the VS Code extension version/lockfile.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch agent/document-vscode-marketplace-release

Comment @coderabbitai help to get the list of available commands.

@codecov

codecov Bot commented Jul 27, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 93.81%. Comparing base (78b9c12) to head (2d7cc4c).

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #1165   +/-   ##
=======================================
  Coverage   93.81%   93.81%           
=======================================
  Files          99       99           
  Lines       33457    33457           
  Branches      458      458           
=======================================
  Hits        31389    31389           
  Misses       2055     2055           
  Partials       13       13           
Flag Coverage Δ
javascript 78.61% <ø> (ø)
python 95.54% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

aallan commented Jul 27, 2026

Copy link
Copy Markdown
Owner Author

Addressed the Kimi K3 review in d36426c4.

Finding 1 — stale agent-facing Marketplace guardrails: fixed

The finding was valid. AGENTS.md and CLAUDE.md still prohibited the install route that this PR documents. Both now preserve the original safety rule—only advertise a channel once the artifact is live and the exact user flow is tested—while recording that veralang.vera-language now meets that bar. docs/llms-full.txt was regenerated from the corrected AGENTS.md source.

Validation:

  • python scripts/build_site.py
  • python scripts/check_site_assets.py
  • .venv/bin/python scripts/check_doc_counts.py
  • .venv/bin/python -m pytest tests/test_readme.py tests/test_html.py -q — 6 passed
  • repository search confirms the stale “not yet on the Marketplace” / “must not be presented as available” wording is gone

Finding 2 — brace-expansion lockfile bump: kept

No further change needed, as the review suggested. This was not speculative lockfile churn: after the PR opened, the Package VSIX job began failing on newly published high-severity advisory GHSA-mh99-v99m-4gvg. The lockfile-only 5.0.7 → 5.0.8 update clears the production audit, and the rebuilt ten-entry VSIX passes the package-content guard. The rerun of Package VSIX is green.

aallan and others added 4 commits July 27, 2026 15:37
The lockfile change in this branch reads as incidental drift, but
`brace-expansion <= 5.0.7` carries GHSA-mh99-v99m-4gvg, a high-severity
denial of service (unbounded expansion length crashes the process out of
memory), and 5.0.8 is the first patched version -- there is an open
Dependabot alert on `editors/vscode/package-lock.json` naming exactly it.

A high-severity fix should not merge invisibly inside a documentation PR,
so it gets a CHANGELOG `### Security` entry with the scope stated: it
reaches the lockfile transitively via `minimatch`, so it is build-time
tooling for the extension rather than anything shipped to users, and the
narrowed `node` range (18 dropped) changes nothing because the extension
targets VS Code ^1.91.0 and both CI workflows build on Node 22.

Co-Authored-By: Claude <noreply@anthropic.invalid>
@aallan
aallan force-pushed the agent/document-vscode-marketplace-release branch from d36426c to da5e10e Compare July 27, 2026 14:40
@aallan

aallan commented Jul 27, 2026

Copy link
Copy Markdown
Owner Author

Review

Rebased onto main and pushed at da5e10ea. The branch was three commits behind #1162; the conflict was in ROADMAP.md, where both sides edited the same "CI, process, and tooling" line — main retired #1157, this branch retires #1106. Resolved as the union, so both are gone and the unrelated entries (#386, #712, #753, #1126, #1103, #1156) survive intact.

The premise checks out

Closes #1106 is correct. Verified independently of the PR body rather than taking it on trust — the Marketplace gallery API returns veralang.vera-language, display name Vera Language, version 0.2.0, last updated 2026-07-27T12:22Z, and editors/vscode/package.json on main is 0.2.0. Same artifact, and it went live 44 minutes before this PR opened. The "only document a channel once it is live" rule is satisfied, and the guardrail text is strengthened rather than relaxed — it now also requires that the user flow has been tested.

The finding: a high-severity fix is riding here invisibly

editors/vscode/package-lock.json bumps brace-expansion 5.0.7 → 5.0.8 in a commit titled "Update brace-expansion lockfile", with no mention in the PR body, the commit body, or the CHANGELOG. It reads as incidental drift from an npm install during packaging.

It isn't. There is an open Dependabot alert (#18, high severity) on that exact manifest:

GHSA-mh99-v99m-4gvg — brace-expansion: DoS via unbounded expansion length causing an out-of-memory process crash
vulnerable: <= 5.0.7 · first patched: 5.0.8

The change is right and should stay. What was wrong is that it would have merged silently inside a documentation PR — nobody reading the title, the body or the release notes would learn a high-severity advisory closed. Added a CHANGELOG ### Security entry in da5e10ea stating the scope honestly: it reaches the lockfile transitively through minimatch, so it is build-time tooling for the extension rather than anything shipped to users, and the narrowed node engines range (18 dropped) changes nothing because the extension targets VS Code ^1.91.0 and both CI workflows build on Node 22.

Checks that came back clean

  • Surface coverage is complete. Swept every file mentioning the extension: AGENTS, CLAUDE, LSP_SERVER, README, PYPI_README, docs/index.html, docs/index.md, docs/llms-full.txt, editors/vscode/README, build_site.py — all updated. SKILL.md's only match is name: vera-language in its own frontmatter (the skill's name, not the extension), and HISTORY.md's is a March history row, both correctly untouched. No file still describes the Marketplace as blocked or unavailable, and the veralang.vera-language identifier is byte-identical everywhere it appears.
  • Generated assets are consistent. docs/llms-full.txt and docs/index.md are build_site.py output; the hand-edits match what the generator produces from the updated sources — check_site_assets.py passes, and a fresh build_site.py run moves nothing. That is the failure mode worth checking here and it was handled correctly.
  • Gates. check_doc_counts, check_site_assets, check_version_sync, check_limitations_sync, check_readme_examples, check_pypi_readme_examples, check_html_examples all pass. ruff check . and ruff check --select S vera/ clean under the newly-declared rule set from chore(deps): ruff 0.16.0 — declare the rule set, adopt the five rules worth having #1162, mypy vera/ clean.

Two notes, neither blocking

A claim I can't reproduce. The CHANGELOG says the published package "was downloaded and compared file-for-file with a fresh build from main". Everything I can check is consistent with it — published version and package.json agree at 0.2.0 — but the file-for-file comparison isn't something this review reproduced, so it rests on the author's account rather than on evidence in the diff.

Process narration in a rule file. AGENTS.md and CLAUDE.md now read "code --install-extension veralang.vera-language has been verified from a clean profile." That's an audit trail rather than a rule, and it will read oddly in six months — verified when, by whom? The project's own docs-tense convention is that every document except CHANGELOG.md states present reality, with history living in the changelog. Suggest the rule keep the requirement and drop the receipt:

Only document a channel as an available install route once the artifact is live there and the install flow has been tested end to end.

with the "was verified from a clean profile" evidence staying in the CHANGELOG entry, where it belongs. Left as-is pending your call, since it's your instruction file's voice.

Merge is yours.

Two review fixes.

The CHANGELOG entry called the `brace-expansion` bump build-time tooling.
That is wrong.  npm does not mark it dev-only, and the chain is
`vscode-languageclient` -- a root `dependencies` entry -- through
`minimatch` to `brace-expansion`; `esbuild.js` bundles with
`external: ["vscode"]` alone, so everything else lands in the shipped
`dist/extension.js`.  The published 0.2.0 extension therefore contains
the vulnerable version and the next release picks up the fix.  Whether
the vulnerable path is reachable from the client's use of `minimatch`
was not established, and the entry now says so rather than implying an
answer.  It also records that Dependabot's #1167 proposes the identical
change -- verified byte-identical, same resulting blob 7cbb052 -- and
is closed in favour of this PR.

`AGENTS.md` and `CLAUDE.md` read "has been verified from a clean
profile", which is an audit trail rather than a rule and ages badly:
verified when, by whom?  The convention is that every doc except the
CHANGELOG states present reality, with history in the changelog.  The
rule now states the requirement -- live on the channel AND the install
flow works end to end, checked rather than recalled -- and the evidence
stays in the CHANGELOG where it belongs.

Co-Authored-By: Claude <noreply@anthropic.invalid>
@aallan

aallan commented Jul 27, 2026

Copy link
Copy Markdown
Owner Author

Claude Code and Opus 5 taking this over from Codex and GPT 5.6 Sol to converge it. Pushed at 2e7be6ba.

#1167 is closed in favour of this PR

Dependabot opened #1167 for the same brace-expansion 5.0.7 → 5.0.8 bump while this branch was being written. Confirmed byte-identical rather than assumed — both branches produce the same lockfile blob:

#1167 lockfile blob: 7cbb0524ee5390aef2ae3678a5184d1729c91b88
#1165 lockfile blob: 7cbb0524ee5390aef2ae3678a5184d1729c91b88

Same base blob on both sides, and #1167 touches nothing else, so this PR fully subsumes it. Closed with that reasoning recorded on both.

Correcting my own review

The ### Security entry I added in da5e10ea described the dependency as build-time tooling for the extension rather than anything shipped to users. That is wrong, and it understated the advisory.

npm does not mark brace-expansion dev-only in the lockfile. Tracing the chain:

brace-expansion  <-  minimatch  <-  vscode-languageclient   (root "dependencies")
                                <-  @vscode/vsce            (dev)
                                <-  glob                    (dev)

vscode-languageclient is a root dependencies entry, and esbuild.js builds with bundle: true, external: ["vscode"] — nothing else is externalised, so the whole runtime graph lands in the shipped dist/extension.js. This is a runtime dependency of the published extension, not build tooling. The 0.2.0 extension now on the Marketplace contains the vulnerable version; the next extension release picks up the fix.

What I have not established is whether the vulnerable path is reachable from how the language client uses minimatch — the entry now says that plainly instead of implying an answer, and the fix does not depend on it.

The other review finding, applied

AGENTS.md and CLAUDE.md read "code --install-extension veralang.vera-language has been verified from a clean profile" — an audit trail rather than a rule, and one that ages badly (verified when, by whom?). The project's convention is that every document except CHANGELOG.md states present reality, with history in the changelog. The rule now states the requirement:

Only document a channel as an available install route once the artifact is live there and the install flow works end to end — check the registry, don't rely on what you remember.

The evidence stays in the CHANGELOG, where it belongs. docs/llms-full.txt regenerated to match.

State

check_doc_counts, check_site_assets, check_version_sync, check_limitations_sync, check_readme_examples, check_pypi_readme_examples, check_html_examples pass; ruff check . and ruff check --select S vera/ clean; mypy vera/ clean. Rebased onto main earlier at da5e10ea, with the ROADMAP.md conflict resolved as the union of both retirements (#1106 here, #1157 from #1162).

Closes #1106. Merge is yours.

Fixing the lockfile does not reach anyone: the published 0.2.0 VSIX has
brace-expansion 5.0.7 bundled into `dist/extension.js`, and Marketplace
versions are immutable, so the fix ships only in a new version.

Bumps `package.json` and both version fields in `package-lock.json`
(npm keeps the root version twice), and adds a `## 0.2.1` section to the
extension's CHANGELOG describing the advisory and its scope.

The 0.2.0 section is left describing what 0.2.0 actually was --
vulnerable dependency included -- rather than being retroactively
corrected; its "First release on the VS Code Marketplace" line stays,
because that is true of 0.2.0.  Anyone reading it needs to learn that
0.2.0 carries the vulnerable version and 0.2.1 does not, which a rewrite
of the shipped section would hide.

Extension self-checks pass: `node --check` on all three scripts, 13/13
`node --test`.

Co-Authored-By: Claude <noreply@anthropic.invalid>
@aallan

aallan commented Jul 27, 2026

Copy link
Copy Markdown
Owner Author

The branch had the lockfile fix but left the extension at 0.2.0, which would have made the post-merge upload impossible: Marketplace versions are immutable, so a rebuilt 0.2.0 VSIX cannot replace the published one. Bumped to 0.2.1 in all three places the version lives — package.json and both version fields in package-lock.json (npm keeps the root version twice, and missing the second is the usual way this goes half-done).

The extension's CHANGELOG.md gains a ## 0.2.1 section naming the advisory and its scope. The 0.2.0 section is deliberately left alone, vulnerable dependency and all — including its "First release on the VS Code Marketplace" line, which is true of 0.2.0. Someone reading that file needs to learn that 0.2.0 carries the vulnerable version and 0.2.1 does not; retroactively tidying the shipped section would hide exactly that.

Extension self-checks pass: node --check on extension.js, esbuild.js and check-package-contents.js, and 13/13 node --test. Repo gates green.

So the sequence after merge is: build vera-language-0.2.1.vsix from main, upload it, and alert #18 clears once the new bundle is published.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@editors/vscode/package.json`:
- Line 5: Synchronize the version in editors/vscode/package.json with the root
CHANGELOG.md by adding a non-empty ## [0.2.1] section and its comparison link;
otherwise defer the "0.2.1" bump until that changelog section exists.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 8f3c47cd-fc0e-4eb3-b40d-38ee6b8c8676

📥 Commits

Reviewing files that changed from the base of the PR and between 2e7be6b and 2d7cc4c.

⛔ Files ignored due to path filters (1)
  • editors/vscode/package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (3)
  • CHANGELOG.md
  • editors/vscode/CHANGELOG.md
  • editors/vscode/package.json
🔗 Linked repositories identified

CodeRabbit considers these linked repositories for cross-repo context during reviews:

  • aallan/vera-bench (manual)

Comment thread editors/vscode/package.json
@aallan
aallan merged commit dad4358 into main Jul 27, 2026
29 checks passed
@aallan
aallan deleted the agent/document-vscode-marketplace-release branch July 27, 2026 15:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

VS Code Marketplace rejects extension as suspicious content

1 participant