fix(release): correct VSIX tombstone identity + staging verify hygiene (v0.3.0 hotfix)#192
Conversation
…smatch
In staging.yml the agentops-accelerator package is built with
setuptools-scm and published to TestPyPI as 0.2.3.devN, while the
tombstone (agentops-toolkit) hardcodes 'agentops-accelerator>=0.3.0'
in its pyproject.toml. A standard pip install of the tombstone then
fails because TestPyPI carries no >=0.3.0 candidate for the main
package — the version is only minted when release.yml runs against
the real v0.3.0 tag.
Restructure the verify job into two install steps:
1. agentops-toolkit==<tombstone_version> --no-deps from TestPyPI
(installs the wheel for its metadata only; --no-deps preserves
'pip show Requires:' content so the redirect assertion still
holds, verified empirically by Critic)
2. agentops-accelerator --pre from TestPyPI (satisfies the runtime
dep so 'import agentops' resolves; --pre is required so pip
accepts the dev versions present in staging)
Both pre-existing assertions are preserved unchanged:
- pip show agentops-toolkit lists agentops-accelerator under Requires
- python -c 'import agentops' returns successfully
release.yml is intentionally NOT modified: its verify-tombstone-testpypi
works correctly because publish-testpypi (in release.yml) publishes
agentops-accelerator at the real 0.3.0 tag version, so the tombstone
dep resolves cleanly without --no-deps.
…tops-toolkit The VSIX tombstone scaffolded in 2f128d9 mistakenly identified itself as AgentOpsToolkit.agentops-skills — an extension name that has never existed on the VS Code Marketplace. The actual deprecated extension is AgentOpsToolkit.agentops-toolkit (live since v0.1.4, latest v0.1.8). It also pointed users to AgentOpsAccelerator.agentops-skills as the migration target, but the new extension's real identity (per plugins/agentops/package.json) is AgentOpsAccelerator.agentops-accelerator. Without this fix, publishing the v0.3.0 tombstone would create a brand-new extension nobody has installed, and the ~5 versions of the legacy extension already in users' VS Code installs would never receive a deprecation prompt. Changes: tombstones/vscode/package.json - rename 'agentops-skills' to 'agentops-toolkit' so the published identity is AgentOpsToolkit.agentops-toolkit (republishes onto the existing listing, triggers in-place update for current users) tombstones/vscode/src/extension.ts - NEW_EXTENSION_ID points at AgentOpsAccelerator.agentops-accelerator - DEPRECATION_MESSAGE interpolates the constant instead of hardcoding the literal (prevents future drift) tombstones/vscode/README.md - corrected legacy ID + migration target tombstones/vscode/CHANGELOG.md - corrected legacy ID + migration target tombstones/vscode/CDN_DEPRECATION_REQUEST.md - corrected all subject lines, body IDs, and pre-flight checklist IDs CHANGELOG.md - corrected the [0.3.0] VS Code Marketplace tombstone bullet (flows into GitHub release body and PyPI tombstone long description) docs/verifying-tombstones.md - corrected all 10 publisher-prefixed identifiers in verification commands (vsce show, --install-extension, marketplace URLs) STORAGE_KEY ('agentops-toolkit.deprecation-prompt-shown') is unchanged — already aligned with the legacy namespace. Version 0.3.0 > existing 0.1.8 satisfies VSCE monotonicity. Legacy versions were declarative-only (no commands/keybindings/settings/views — only contributes.chatSkills), so replacing them with the tombstone manifest carries no user-binding break risk. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The two staging VSIX publish steps (main extension at line 348 and tombstone at line 425) carried 'continue-on-error: true' which silently swallowed every failure mode — including an expired VSCE_PAT. This made staging look green when nothing was actually published to the Marketplace, hiding the auth issue for an extended period and producing zero pre-release versions for either AgentOpsAccelerator.agentops-accelerator or AgentOpsToolkit.agentops-toolkit. Replaces the blanket tolerance with the same conditional pattern release.yml already uses (lines 469-489): capture combined stdout+stderr, swallow the exit code ONLY when the output contains 'already exists' (re-run of an already-published pre-release version, the only benign failure mode), and propagate every other exit code so auth, network, validation, and marketplace errors fail the job and surface in CI. Also moves the PAT into an env: block as VSCE_PAT (out of the interpolated shell line) to match release.yml's pattern and avoid leaking the secret into command history or logs. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
🔍 Discovery during VSCode Marketplace verification — additional commit addedWhile verifying the staging The job reported success because both staging VSIX publish steps carry New commit
|
Pre-tag-push hotfixes for v0.3.0
PR #187 was merged before two issues were caught:
P0 — VSIX tombstone shipped with the wrong extension identity. The tombstone scaffolded in
2f128d9published asAgentOpsToolkit.agentops-skills(a brand-new extension that has never existed on the VS Code Marketplace) and pointed migrating users toAgentOpsAccelerator.agentops-skills(also wrong — the canonical new identity perplugins/agentops/package.jsonisAgentOpsAccelerator.agentops-accelerator).Without this fix, publishing v0.3.0 would create a brand-new extension nobody has installed, and the ~5 versions of the legacy
AgentOpsToolkit.agentops-toolkitextension already in users' VS Code installs would never receive a deprecation prompt.018cf74rewrites the tombstone to identify itself asAgentOpsToolkit.agentops-toolkit(republishes onto the existing Marketplace listing, triggers in-place update for current users) and corrects all references to the new extension acrosspackage.json,src/extension.ts, the tombstone README/CHANGELOG/CDN deprecation request, the repo-rootCHANGELOG.md(flows into the GitHub release body and PyPI tombstone long description), anddocs/verifying-tombstones.md(verification commands users will copy-paste).CI hygiene — staging
verify-tombstone-testpypiflaked when only dev versions of accelerator existed on TestPyPI.5af6936splits the verification into two install steps (tombstone with--no-deps, then accelerator with--pre) so staging stays green between full releases. No effect onrelease.yml(PyPI prod always has both packages at the tagged version when the verify step runs).Verification
Staging on
release/v0.3.0is fully green at018cf74(8/8 jobs, run #26615257593):build-pypi-tombstone✅build / build✅publish-vsix-prerelease✅publish-testpypi✅verify-testpypi✅publish-tombstone-testpypi✅publish-tombstone-vsix-prerelease✅ — confirmsAgentOpsToolkit.agentops-toolkitv0.3.0-pre publishes cleanly under the existing publisherverify-tombstone-testpypi✅ — confirms the redirect (agentops-toolkit==0.3.0→agentops-accelerator>=0.3.0) installs cleanly from TestPyPICritic review (
tombstone-identity-critic, Correctness lens)publisher+nameyieldAgentOpsToolkit.agentops-toolkit0.3.0 > 0.1.8(highest existing) and> 0.2.2(highest in git history)NEW_EXTENSION_IDconsistency ✅ — all 4 use sites +DEPRECATION_MESSAGEinterpolationagentops-toolkit.deprecation-prompt-shownunchangedcontributes.chatSkillsonly, nomain/commands/keybindings/settings), so zero state-collision riskrelease.ymlpublish-tombstone-vsixandstaging.ymlpublish-tombstone-vsix-prereleaseconsume the renamed manifest cleanlyPlan after merge
v0.3.0at this merge commitrelease.ymltriggers — publishesagentops-accelerator==0.3.0+agentops-toolkit==0.3.0tombstone to PyPI; publishes accelerator + tombstone VSIX to VS Code Marketplace; creates GitHub releasetombstones/vscode/CDN_DEPRECATION_REQUEST.mdCloses part of #181.