Skip to content

Commit b2c0845

Browse files
committed
chore(release): v0.8.0
Bump extension to 0.8.0 with file-level LSP indexing fixes, Open VSX-only tag publish (required OVSX_TOKEN), and expanded marketplace keywords.
1 parent c2c06b4 commit b2c0845

4 files changed

Lines changed: 48 additions & 27 deletions

File tree

.github/workflows/publish.yml

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -61,27 +61,17 @@ jobs:
6161
exit 1
6262
fi
6363
64-
- name: Publish to VS Code Marketplace
65-
env:
66-
VSCE_PAT: ${{ secrets.VSCE_PAT }}
67-
run: |
68-
if [ -z "${VSCE_PAT:-}" ]; then
69-
echo "::warning::VSCE_PAT not set — skipping VS Code Marketplace publish"
70-
else
71-
cd packages/extension
72-
npx --yes @vscode/vsce publish --no-dependencies --pat "$VSCE_PAT"
73-
fi
74-
7564
- name: Publish to Open VSX
7665
env:
77-
OVSX_PAT: ${{ secrets.OVSX_PAT }}
66+
# Repo secret is OVSX_TOKEN; OVSX_PAT kept as a backwards-compatible alias.
67+
OVSX_PAT: ${{ secrets.OVSX_TOKEN || secrets.OVSX_PAT }}
7868
run: |
7969
if [ -z "${OVSX_PAT:-}" ]; then
80-
echo "::warning::OVSX_PAT not set — skipping Open VSX publish"
81-
else
82-
VSIX=$(ls packages/extension/*.vsix | head -n 1)
83-
npx --yes ovsx publish "$VSIX" --pat "$OVSX_PAT"
70+
echo "::error::OVSX_TOKEN (or legacy OVSX_PAT) is required to publish releases"
71+
exit 1
8472
fi
73+
VSIX=$(ls packages/extension/*.vsix | head -n 1)
74+
npx --yes ovsx publish "$VSIX" --pat "$OVSX_PAT"
8575
8676
- name: Create GitHub Release
8777
uses: softprops/action-gh-release@v2

AGENTS.md

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -288,15 +288,13 @@ be `v<X.Y.Z>` and must match the `version` field in
288288

289289
1. Verifies tag ↔ version parity
290290
2. Builds, packages, and verifies VSIX contents
291-
3. Publishes to VS Code Marketplace via `VSCE_PAT` secret
292-
4. Publishes to Open VSX via `OVSX_PAT` secret
293-
5. Attaches the VSIX to a GitHub Release
291+
3. Publishes to Open VSX via `OVSX_TOKEN` (`ovsx publish` on the built VSIX).
292+
Legacy secret name `OVSX_PAT` is still accepted. Missing token or publish
293+
failure fails the job — Open VSX is the canonical distribution channel.
294+
4. Attaches the VSIX to a GitHub Release
294295

295-
Both tokens are optional — missing tokens produce a CI warning but don't
296-
fail the job. The GitHub Release always happens.
297-
298-
Publisher is `ccashwell`. Do **not** change the publisher without
299-
coordinating the Azure DevOps PAT.
296+
VS Code Marketplace publish is not wired in CI yet. Publisher id is
297+
`ccashwell` on Open VSX.
300298

301299
---
302300

@@ -320,14 +318,24 @@ coordinating the Azure DevOps PAT.
320318

321319
---
322320

323-
## Agent preferences learned in prior sessions
321+
## Learned User Preferences
324322

325323
- When reviewing code for findings, **resolve them immediately** — do not stop at "here's a list of issues."
326324
- Commit scope should match logical change boundaries, not sweep everything into one `WIP` commit.
325+
- When fixing an audit or review list, land **one commit per item** — do not batch unrelated fixes.
327326
- Use the `continual-learning` workflow to persist durable facts across sessions — this document is the primary output.
328327
- Prefer conventional-commit-style messages (`fix(scope): …`, `feat(scope): …`) with a short body explaining _why_.
329328
- When a feature gets a second implementation (e.g. a new indexer backend), extract the shared helpers into a peer module before adding the variant — do not fork-then-diverge.
330329
- Split unrelated fixes in a session into separate commits; don't sweep them into one "WIP".
330+
- When the user needs to test fixes in an installed extension, run `pnpm package` for a VSIX — `pnpm build` alone does not produce one.
331+
332+
## Learned Workspace Facts
333+
334+
- File-level Solidity declarations (structs, enums, errors, free functions, UDVTs) live on `SoliditySourceUnit` outside `contracts`; providers must consult `sourceUnit.structs`, `freeFunctions`, etc., not only `getEnclosingContract`.
335+
- `using for` library extension calls bind the receiver as the library function's first explicit parameter; inlay hints and signature help must resolve the receiver type via contract `using` directives and omit that parameter from labeled arguments.
336+
- Webview `buildHtml` inline scripts must register DOM event listeners once at initialization — re-invoked render helpers must update DOM only, not call `addEventListener` again (stacked listeners leak memory).
337+
- Filesystem watchers that trigger LSP round-trips (e.g. Test Explorer on `**/*.sol`) should debounce rapid create/change/delete bursts (~400ms) from fmt, multi-file saves, and codegen.
338+
- Comments inside webview HTML template literals must not contain backticks; block comments must not contain `*/` substrings — both break parsing of the surrounding string or comment.
331339

332340
---
333341

CHANGELOG.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,22 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [0.8.0] - 2026-05-21
11+
12+
### Changed
13+
14+
- **CI release publish is Open VSX only** on `v*.*.*` tags: uses `OVSX_TOKEN`
15+
(legacy `OVSX_PAT` still accepted), fails the job if the token is missing or
16+
`ovsx publish` errors. VS Code Marketplace publish removed from the workflow.
17+
- **Extension marketplace keywords** expanded for Open VSX discovery (LSP,
18+
language server, Solidity IDE, etc.).
19+
1020
### Fixed
1121

22+
- **File-level Solidity declarations were invisible to much of the LSP.**
23+
Struct/enum members, free functions, file-level constants, and UDVTs are now
24+
indexed, completed, and surfaced in outline, code lenses, signature help, and
25+
go-to-definition — including receiver-typed member access and import aliases.
1226
- **Hyphenated custom NatSpec tags were folded into the previous
1327
section.** `@custom:security-contact` now parses as its own
1428
custom tag instead of becoming continuation text for `@notice` or

packages/extension/package.json

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "solidity-workbench",
33
"displayName": "Solidity Workbench",
44
"description": "Modern Solidity IDE Integration with Foundry-native LSP, test explorer, and static analysis",
5-
"version": "0.7.0",
5+
"version": "0.8.0",
66
"publisher": "ccashwell",
77
"license": "MIT",
88
"icon": "resources/icon.png",
@@ -30,7 +30,16 @@
3030
"keywords": [
3131
"solidity",
3232
"foundry",
33-
"forge"
33+
"forge",
34+
"lsp",
35+
"language-server",
36+
"ide",
37+
"smart-contracts",
38+
"blockchain",
39+
"ethereum",
40+
"solidity-ide",
41+
"solidity-lsp",
42+
"solidity-language-server"
3443
],
3544
"activationEvents": [
3645
"workspaceContains:**/foundry.toml",

0 commit comments

Comments
 (0)