Rebrand: agentops-toolkit → agentops-accelerator + deprecation tombstones (#181)#186
Merged
Merged
Conversation
Atomic two-line change coupling pyproject.toml [project].name with the importlib.metadata.version() lookup that reads it. Decoupling these would silently fall back to __version__ = '0.0.0-dev' (PackageNotFoundError -> fallback in src/agentops/__init__.py lines 5-8). Commit 1 of PR-2 in the 3-PR rebrand strategy for #181. Target release: v0.3.0 (minor bump signals user-visible migration). Subsequent commits in this PR will sweep install hints, workflows, scripts, plugin manifests, templates, README (PyPI long description), CHANGELOG, and targeted tests. PR-3 will publish tombstone packages pinning agentops-accelerator>=0.3.0. Note for existing developers: after pulling, run rm -rf src/agentops_toolkit.egg-info && uv pip install -e . to refresh editable-install metadata. CI is unaffected (fresh installs). Refs #181.
471bad4 to
ede205f
Compare
Update four user-facing pip install hint strings in src/agentops/cli/app.py to reference the new distribution name agentops-accelerator instead of the legacy agentops-toolkit: - L2646: cmd_mcp_serve docstring code block - pip install agentops-accelerator[mcp] - L4589: cmd_agent_serve docstring code block - pip install agentops-accelerator[agent] - L4599: cmd_agent_serve error message - Run `pip install agentops-accelerator[agent]` - L4665: cmd_cockpit error message - Run `pip install agentops-accelerator[agent]` The brand display string on line 429 (AgentOps Toolkit - a CLI, local Cockpit, and agent skills) is intentionally preserved; that string is gated by tests/unit/test_cli_explain.py::test_root_explain_renders_cli_manual and falls under issue #182 (cosmetic brand rename), not #181 (distribution rename). Verified: 9/9 tests/unit/test_cli_explain.py pass; full suite 744 passed / 0 failed / 6 skipped. Refs: #181
Update the four sibling release-automation scripts (sh/ps1 lockstep) to reference the new PyPI distribution name agentops-accelerator and the new VS Code Marketplace identifier AgentOpsAccelerator.agentops-accelerator: scripts/staging.sh (L66): TestPyPI verify-install scripts/staging.ps1 (L67): TestPyPI verify-install (PowerShell sibling) scripts/release.sh (L82,L83): PyPI verify-install echo + pip install scripts/release.sh (L170): final summary - PyPI URL scripts/release.sh (L172): final summary - Marketplace URL (itemName) scripts/release.ps1 (L83,L84,L173,L176): PowerShell sibling of release.sh The .sh and .ps1 sibling pairs remain in perfect lockstep with identical semantic substitutions on each side. Bash syntax (bash -n) verified clean on both .sh scripts. Refs: #181
Rebrand the README header section that is rendered as the PyPI project's long description. This is the user-facing landing page at https://pypi.org/project/agentops-accelerator/ and must read coherently under the new distribution name from v0.3.0 onward. Six in-place string replacements (zero net line delta): L1: <h1>AgentOps Toolkit</h1> -> <h1>AgentOps Accelerator</h1> L8: PyPI badge href + image src - now points at agentops-accelerator L9: Marketplace badge href - now AgentOpsAccelerator.agentops-accelerator L22: Lead paragraph - AgentOps Accelerator helps teams ... L78: Install command - pip install agentops-accelerator[foundry] @ git+... L82: Switch-back guidance - agentops-accelerator[foundry] The AgentOps Toolkit brand display string does not appear anywhere deeper than L22 in the README, so this single patch fully rebrands the README for issue #181. Cosmetic rebrand work for deeper docs/plugin assets remains issue #182 scope. Refs: #181
Reconcile uv.lock with the new project name set in pyproject.toml by the preceding rename commit (ede205f). Without this refresh, 'uv sync --frozen' and 'uv pip install -e .' against the lockfile would fail with a project-name mismatch error. The diff contains: * 1 meaningful line: the [[package]] name field for the in-tree package changes from agentops-toolkit to agentops-accelerator, matching pyproject.toml [project].name as set in commit ede205f. * ~2120 incidental lines: uv lockfile format-version refresh. The [resolution-markers] array and expanded [package.optional-dependencies] sections are emitted automatically by newer uv versions whenever an older lockfile is touched. These are not semantically meaningful changes to the dependency graph. Why this is its own commit: the lockfile is large enough that bundling it into the pyproject.toml rename would obscure the human-readable diff of that commit. Splitting it out keeps the rename commit small and makes the lockfile-format-version change auditable in isolation. Developer note: existing local clones with a stale src/agentops_toolkit.egg-info directory will need to run: rm -rf src/agentops_toolkit.egg-info && uv pip install -e . before importlib.metadata.version('agentops-accelerator') will resolve correctly. CI is unaffected because it does fresh installs. Refs: #181
Update GitHub Actions workflows and plugin marketplace metadata to reference
the new distribution name agentops-accelerator instead of agentops-toolkit.
.github/workflows/ci.yml (6 lines): importlib.metadata version
check, TestPyPI URL, verify-
install + error echoes, summary
.github/workflows/release.yml (5 lines): TestPyPI/PyPI URL comments,
verify-install + error echoes
.github/workflows/staging.yml (4 lines): TestPyPI URL comment, verify-
install + error echoes
.github/workflows/_build.yml (1 line): importlib.metadata version
check (was failing on push
with PackageNotFoundError after
the Batch 1 pyproject.toml
rename)
.github/plugin/marketplace.json (1 line): name field
.github/skills/release-management/SKILL.md (2 lines): description + PIPY_TOKEN
scope note
Note: VSIX_FILE=agentops-skills.vsix in release.yml line 183 is intentionally
preserved. The vsce package step uses an explicit -o flag, decoupling the
artifact filename from package.json name, so Track B's rename of the plugin
package does not require flipping this env var.
The 'AgentOps Toolkit' brand display strings (with space) on marketplace.json
lines 4, 8, 15 are intentionally preserved as #182 (cosmetic brand rename)
scope, not #181 (distribution rename).
Refs: #181
Rebrand the VS Code extension's identity from agentops-toolkit /
AgentOpsToolkit to agentops-accelerator / AgentOpsAccelerator (camelCase),
matching the new VS Code Marketplace publisher. The new full Marketplace
identifier is AgentOpsAccelerator.agentops-accelerator.
plugins/agentops/package.json (4 fields):
- name: agentops-toolkit -> agentops-accelerator
- displayName: 'AgentOps Skills for GitHub Copilot' ->
'AgentOps Accelerator — Skills for GitHub Copilot'
(em-dash U+2014; preserves the descriptive purpose while
surfacing the new product brand on the Marketplace listing)
- description: ...AgentOps Toolkit... -> ...AgentOps Accelerator...
- publisher: AgentOpsToolkit -> AgentOpsAccelerator
plugins/agentops/plugin.json (3 fields):
- name: agentops-toolkit -> agentops-accelerator
- description: ...AgentOps Toolkit... -> ...AgentOps Accelerator...
- author.name: 'AgentOps Toolkit' -> 'AgentOps Accelerator'
plugins/agentops/README.md (3 lines):
- L38: Marketplace badge itemName -> AgentOpsAccelerator.agentops-accelerator
- L49: pip install command -> agentops-accelerator[foundry] @ git+...
- L83: link text -> [AgentOps Accelerator](...)
The user has confirmed the new publisher AgentOpsAccelerator is created in
the VS Code Marketplace and that the PAT-owning AzDO account is a member
of the new publisher (so the existing VSCE_PAT continues to work without
re-issue).
Refs: #181
…+ test assertions
Mechanical rebrand sweep of agentops-toolkit -> agentops-accelerator
across all CI/CD templates, agent-server scaffold, Copilot skill SKILL.md
files (in both plugin and template trees), and the test assertions that
gate on generated workflow content.
Templates (3 + 20 files, 32 line edits):
src/agentops/templates/agent.yaml (1 line)
src/agentops/templates/agent-server/Dockerfile (2 lines)
src/agentops/templates/agent-server/README.md (1 line)
src/agentops/templates/workflows/agentops-*.yml (10 files, 17 lines)
- deploy-{dev,qa,prod}[-azd].yml
- deploy-prompt-agent.yml
- pr.yml, pr-prompt-agent.yml
- watchdog.yml
src/agentops/templates/pipelines/azuredevops/*.yml (10 files, 13 lines)
- same set as workflows above
SKILL.md mirror copies (10 files, 14 line edits — 2 inodes per pair,
both copies updated in lockstep):
plugins/agentops/skills/agentops-{agent,workflow,eval,config,dataset}/SKILL.md
src/agentops/templates/skills/agentops-{agent,workflow,eval,config,dataset}/SKILL.md
Test assertions (2 files, 4 line edits — flipped atomically with the
templates so the suite stays green; 69/69 targeted tests pass after edit):
tests/unit/test_cicd.py:194 agentops-toolkit[foundry,agent] -> agentops-accelerator[foundry,agent]
tests/unit/test_cicd.py:212 (ado_content variant of the same assertion)
tests/unit/test_cicd.py:251 agentops-toolkit -> agentops-accelerator
tests/unit/test_cli_commands.py:67 pip install agentops-toolkit -> pip install agentops-accelerator
The SKILL.md pairs (plugins/agentops/skills/ vs src/agentops/templates/skills/)
are separate inodes with identical byte content — both copies must be edited
in lockstep to keep them in sync.
Refs: #181
…, and plugin resolver Track D of the agentops-toolkit -> agentops-accelerator rebrand (#181). Flips the remaining `agentops-toolkit` / `AgentOpsToolkit` strings across four scopes that were not covered by Tracks A/B/C. Atomic with the other Batch 3 commits (3a workflows, 3b VS Code plugin manifest, 3c templates). Group 1 - Runtime install hints in src/agentops/ (11 files, 13 lines): src/agentops/agent/server/app.py:29 src/agentops/agent/cockpit.py:5086 src/agentops/agent/sources/azure_resources.py:421, 436 src/agentops/agent/sources/azure_monitor.py:141, 380 src/agentops/agent/sources/results_history.py:247 src/agentops/agent/sources/foundry_control.py:94 src/agentops/services/preflight.py:129 src/agentops/pipeline/runtime.py:124 src/agentops/pipeline/prompt_deploy.py:237 src/agentops/mcp/__init__.py:8 src/agentops/mcp/server.py:26 These are user-facing pip-install hint strings raised inside ImportError / RuntimeError contexts when an optional extra is missing. Without this rename they would print `pip install 'agentops-toolkit[extra]'` after #181 lands, pointing users at a tombstoned distribution. Group 2 - Claude plugin marketplace manifest (1 file, 1 line): .claude-plugin/marketplace.json:13 ("name" field) Lines 4, 8, 15 of the same file are "AgentOps Toolkit" brand-display strings and are intentionally preserved per the #181/#182 scope boundary. Group 3 - User-facing release + tutorial docs (4 files, 15 lines): docs/release-process.md:3, 317, 387, 613, 621, 651, 669, 674, 770 docs/tutorial-prompt-agent-quickstart.md:120, 129 docs/tutorial-end-to-end.md:123, 132 docs/tutorial-hosted-agent-quickstart.md:154, 163 Line 1 of release-process.md (H1 heading) is preserved as a brand-display string per #182. The `placerda/agentops.git@develop` fork URLs in the tutorials are pre-existing and out of #181 scope. Group 4 - VS Code Copilot Chat plugin resolver (1 file, 1 line): .vscode/settings.json:12 (chat.plugins.enabledPlugins) This is the runtime plugin lookup key Copilot Chat uses to resolve marketplace plugins by their canonical `name`. After the marketplace flip in Group 2 and Track A's .github/plugin/marketplace.json, keeping "agentops-toolkit" here would silently disable AgentOps Copilot Chat integration for every developer who pulls this repo. The string is matched literally - the "keep both" strategy used for spell-check dictionaries does not apply. Verification: - git diff HEAD --stat: 17 files, 30 insertions(+), 30 deletions(-) - symmetric - py_compile: 11/11 .py files OK - JSON validity: .vscode/settings.json + .claude-plugin/marketplace.json both parse - pytest tests/unit/test_preflight.py test_mcp_server.py test_agent_server.py: 17 passed, 4 skipped (skips are pre-existing optional-extra guards) - Repo-wide residual scan: 0 hits for agentops-toolkit/AgentOpsToolkit outside build/lib/ (regeneratable wheel snapshot), .venv/, and the intentionally-preserved "AgentOps Toolkit" brand-display strings (#182). - Independent Critic review: PASS (all 7 gates green) Refs: #181
Document the agentops-toolkit -> agentops-accelerator rebrand under the
existing [Unreleased] section so cut-release.yml will promote both entries
into the [0.3.0] release section when triggered.
Added to ### Changed:
- New first bullet describing the PyPI distribution rename, VS Code
Marketplace publisher rename, full extension-ID flip, and explicit
callout that the Python import (`import agentops`) and CLI command
(`agentops ...`) are unchanged - only the install identifier changed.
- New install commands shown for both pip and uv pip.
- Foreshadows the PR-3 tombstone metapackage that keeps
`pip install agentops-toolkit` working via a pin on
agentops-accelerator>=0.3.0.
Added new ### Notes for developers subsection at end of [Unreleased]:
- Editable install cleanup guidance for devs who have a stale
src/agentops_toolkit.egg-info/ or stale importlib.metadata entries
pointing at the old distribution name.
- Recommended cleanup: rm -rf src/*.egg-info && uv pip install -e .
(with pip equivalent shown).
- Clarifies one-time, dev-only scope; CI is unaffected (fresh venvs)
and end users installing from PyPI are unaffected (wheels carry the
new dist-info directly).
- Empirically validated: the cleanup command resolves agentops-toolkit
to NOT FOUND and agentops-accelerator to the current dev version.
Subsumes the pr2-dev-egg-info-note backlog item by folding the egg-info
guidance into this single CHANGELOG entry.
Pre-existing [Unreleased] entries (`--doctor-gate`, stage-then-eval
prompt-agent PR workflow) preserved verbatim. No premature [0.3.0]
heading - cut-release.yml handles that conversion.
Verification:
- Pure-additive diff: 28 insertions, 0 deletions, 0 modifications.
- Heading integrity: ## [Unreleased] preserved at line 6;
## [0.2.2] through ## [0.1.7] unchanged.
- Independent Critic review of Track A/B/C/D rebrand commits: PASS.
- Full test suite (after all 9 rebrand commits + this CHANGELOG):
744 passed, 6 skipped, 0 failed in 28s (6 skips are pre-existing
optional-extra guards: agent/mcp/opentelemetry).
- Artifact identity smoke test: uv build produces
agentops_accelerator-*.whl + agentops_accelerator-*.tar.gz with
METADATA Name: agentops-accelerator. No agentops_toolkit-* files
produced.
Refs: #181
…_build.yml
PR-2 batch 3 missed 3 references in .github/workflows/_build.yml:
- line 57: SETUPTOOLS_SCM_PRETEND_VERSION_FOR_AGENTOPS_TOOLKIT → _ACCELERATOR
- line 95: dist.glob("agentops_toolkit-*.tar.gz") → agentops_accelerator-*.tar.gz
- line 96: dist.glob("agentops_toolkit-*.whl") → agentops_accelerator-*.whl
Without these, the setuptools-scm pretend-version env var was ignored (wheel
would ship as 0.0.0 instead of the tag version) and the release artifact
assertion looked for the old filename pattern (always 0 matches, hard-fail).
Both regressions would block the first v0.3.0 release.
Refs #181
…VSCode
Add minimal deprecation packages under tombstones/ that ship one final
release each under the retired identifiers, redirecting users to the new
canonical packages:
tombstones/pypi/ → metapackage 'agentops-toolkit' that depends on
'agentops-accelerator>=0.3.0'. README explains
the migration. packages=[] suppresses auto-
discovery so the legacy import path is owned
entirely by the new dist.
tombstones/vscode/ → minimal VS Code extension under publisher
'AgentOpsToolkit'. On activation, prompts the
user once to install
'AgentOpsAccelerator.agentops-skills' (with
a marketplace fallback link). Stores a per-
install sentinel so the prompt does not recur
after a resolved outcome.
tombstones/vscode/CDN_DEPRECATION_REQUEST.md
→ Runbook (NOT shipped in the VSIX, see
.vscodeignore) for filing the Microsoft VS Code
Marketplace CDN deprecation request after the
tombstone goes live.
The CHANGELOG sentinel ('YYYY-MM-DD') is substituted at publish time by
release.yml / staging.yml; the version heading is rewritten by
cut-release.yml in the next commit. Empirically validated via
'python -m build' and 'npx vsce package' before commit.
Wire tombstones/pypi/ and tombstones/vscode/ into the existing release
machinery so v0.3.0 atomically ships:
agentops-accelerator (PyPI) + AgentOpsAccelerator.agentops-skills (VSIX)
agentops-toolkit (PyPI tombstone) + AgentOpsToolkit.agentops-skills (VSIX tombstone)
release.yml (5 new jobs + github-release update):
build-pypi-tombstone Resolves version from tombstones/pypi/
pyproject.toml via tomllib, exposes as job
output, builds dist, asserts artifact
filenames with no hardcoded version pin.
publish-tombstone-testpypi Gated AFTER publish-testpypi.
verify-tombstone-testpypi Installs agentops-toolkit==<version> from
TestPyPI, verifies pip-show Requires lists
agentops-accelerator, and imports agentops
to prove the redirect works end-to-end.
publish-tombstone-pypi Gated AFTER publish-pypi AND
verify-tombstone-testpypi — prevents
shipping a broken redirect to production.
publish-tombstone-vsix Gated AFTER publish-vsix. Substitutes the
CHANGELOG date sentinel at publish time
and tolerates the 'already exists' case.
github-release Now lists tombstone artifacts as conditional
downloads. The release notes job only blocks
on main pypi+vsix — tombstone failures are
recoverable in 0.3.1 and never block the
canonical GitHub Release.
staging.yml (4 new jobs):
Mirrors release.yml on the TestPyPI + pre-release VSIX side.
publish-tombstone-vsix-prerelease has NO dependency on build-pypi-tombstone
(separate channel) to avoid cross-channel coupling.
cut-release.yml:
'Sync plugin versions' step now rewrites:
tombstones/pypi/pyproject.toml version field (regex)
tombstones/vscode/package.json version field (jq)
tombstones/vscode/CHANGELOG.md single entry's version heading,
preserving YYYY-MM-DD sentinel for
publish-time substitution
Both Python rewrites use the heredoc-with-env-injection pattern and
guard against silent no-op via 'raise SystemExit' if the regex doesn't
match. 'git add' and PR body updated accordingly.
Required PyPI Trusted Publisher setup is now documented in the docstrings
of both release.yml and staging.yml — four total Trusted Publishers are
needed (agentops-accelerator and agentops-toolkit, on PyPI and TestPyPI).
VSCE_PAT must have 'Marketplace: Manage' scope on the AzDO account that
owns BOTH the AgentOpsAccelerator and AgentOpsToolkit publishers;
verify with: vsce ls-publishers -p $VSCE_PAT.
Reviewed by ai-starter-pack:critic (correctness lens) — all 3 CRITICAL,
4 IMPORTANT, and 1 SUGGESTION findings resolved before commit.
Expand the existing tombstone bullet in [Unreleased] / ### Changed to:
- Document BOTH tombstones (PyPI metapackage + VS Code extension)
- Explain the v0.3.0 atomic publish guarantee — tombstones gated AFTER
the corresponding main publish, so the worst case is 'tombstone
delayed, recoverable in v0.3.1', never 'tombstone-without-new'
- Cross-reference the tombstones/ directory layout
No behavior change. (#181)
Adds an operator-facing harness that proves the v0.3.0 PyPI + VSCode
tombstones land correctly in production. Companion to the pre-publish
verify-tombstone-testpypi CI job in release.yml / staging.yml.
scripts/verify_tombstones.py (stdlib-only, ~670 LOC):
- PyPI (8 checks): pip install agentops-toolkit==<version> in an
isolated tempvenv, assert Requires agentops-accelerator, assert
installed accelerator version >= <version>, assert import agentops
resolves outside the tombstone, assert agentops --version exits 0,
assert tombstone wheel owns zero .py files (shadow-free).
- VSIX (5 checks): vsce show AgentOpsToolkit.agentops-skills --json,
assert publisher == AgentOpsToolkit, assert version present and
latest, assert displayName carries a deprecation hint.
- GH (11 checks): gh release view v<version> --json, assert tag,
non-draft, non-prerelease, non-empty body, and the 6 expected
release assets.
- --repository pypi|testpypi for post-staging dry-runs,
--skip-pypi|--skip-vsix|--skip-gh-release for iteration,
--verbose for full subprocess I/O.
- Exit codes: 0 PASS, 1 FAIL, 2 PREREQ MISSING.
- Cross-platform: shutil.which resolves vsce.cmd / gh.exe on Windows
(Windows subprocess won't auto-append .cmd/.bat).
docs/verifying-tombstones.md (~205 lines):
- When to run, expected SUMMARY block, per-category breakdown.
- VS Code UX manual checklist for the deprecation prompt (install
replacement / dismiss / open in marketplace + sentinel suppression).
- CDN deprecation follow-up procedure.
- Rollback path that honors SemVer + Marketplace constraints
(next patch release, not 4-segment versions).
Dongbumlee
added a commit
that referenced
this pull request
May 28, 2026
The 'Sync plugin versions' step has two Python heredocs that rewrite the version in tombstones/pypi/pyproject.toml and the heading in tombstones/vscode/CHANGELOG.md. Both used 'if new_t == t' as the sanity guard, which incorrectly fired whenever the substitution was a byte-identical no-op — exactly what happens when the file is authored directly at the target version (as the tombstones were for v0.3.0 in PR #186). Replace the post-substitution equality check with an explicit pre-substitution anchor-presence check: if not re.search(PATTERN, t, flags=re.MULTILINE): raise SystemExit('::error::... anchor not found.') new_t = re.sub(PATTERN, ..., t, count=1, flags=re.MULTILINE) p.write_text(new_t, ...) This correctly distinguishes 'regex anchor missed' (real bug; fail) from 'anchor matched, value already at target' (legitimate; no-op write is harmless because the workflow's downstream Update CHANGELOG step always mutates CHANGELOG.md so the resulting commit is non-empty). Failure surfaced by run 26608283472 (v0.3.0 first dispatch); the release branch was not pushed because the failure happened before Commit and push.
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.
Status
Status: Implementation complete. Ready for review pending CI on the latest push.
15 commits on
feature/rebrand-agentops-accelerator→develop.agentops_accelerator-*.whl+ sdistagentops_accelerator-*.tar.gz; METADATAName: agentops-accelerator; noagentops_toolkit-*artifacts).python -m build tombstones/pypiproducesagentops_toolkit-0.3.0.tar.gz+.whl; wheel METADATA declaresRequires-Dist: agentops-accelerator (>=0.3.0);top_level.txtis empty (no shadow code).npx vsce packageintombstones/vscode/produces a valid VSIX; activator compiles cleanly under TypeScript strict mode;.vscodeignoreempirically verified to excludeCDN_DEPRECATION_REQUEST.md.0.3.0literal pins, 0 hits foragentops-toolkit/AgentOpsToolkitoutside intentional tombstone identifiers,build/lib/regen artifacts,.venv/, and intentionally-preserved"AgentOps Toolkit"brand-display strings (those are Rebrand (Part 2/2): update generated templates, skills, and docs #182 scope).Refs #181. Target release:
v0.3.0.Currently Draft; please mark Ready for Review after CI on the latest push is green AND the operator-action preconditions below are met.
What this PR does (in scope)
Atomic rename, plus single-shot tombstones, plus CI wiring:
agentops-toolkit→agentops-acceleratorAgentOpsToolkit.agentops-toolkit→AgentOpsAccelerator.agentops-skillstombstones/directory)tombstones/pypi/— metapackage that pinsagentops-accelerator>=0.3.0(no shadow code, no auto-discovery, README links to migration)tombstones/vscode/— minimal VS Code extension that, on activation, offers a one-time prompt to installAgentOpsAccelerator.agentops-skills(with Marketplace-link fallback and a per-install storage sentinel preventing re-prompts after resolution)tombstones/vscode/CDN_DEPRECATION_REQUEST.md— runbook for filing the Microsoft VS Code Marketplace CDN deprecation request (NOT shipped in the VSIX).github/workflows/{release,staging,cut-release}.yml)build-pypi-tombstone,publish-tombstone-testpypi,verify-tombstone-testpypi,publish-tombstone-pypi,publish-tombstone-vsixadded torelease.ymlgithub-releasejob ships even if a tombstone publish hiccups (conditional artifact attach), so the main release is never blocked by a tombstone glitchverify-tombstone-testpypiis now a hard dependency ofpublish-tombstone-pypi— a broken redirect cannot reach productioncut-release.ymlnow syncs tombstone versions (tombstones/pypi/pyproject.toml+tombstones/vscode/package.json+tombstones/vscode/CHANGELOG.mdheading)scripts/verify_tombstones.py+docs/verifying-tombstones.md)release.ymlcompletes. Mirrors the pre-publishverify-tombstone-testpypiCI gate, then adds production-only checks (shadow-free wheel inspection viaimportlib.metadata.files,vsce showpublisher/version/hint contract,gh release viewasset audit for the 6 expected artifacts).shutil.whichresolvesvsce.cmd/gh.exeon Windows (Windowssubprocess.rundoes not auto-append.cmd/.bat).0=PASS,1=FAIL,2=PREREQ MISSING (vsce/ghnot installed).docs/verifying-tombstones.mdcovers the VS Code UX manual checklist (deprecation prompt, install replacement, dismiss, marketplace link, sentinel suppression), the CDN deprecation request follow-up, and a SemVer-compliant rollback path.Minor version bump (v0.3.0) signals user-visible migration required.
Commits landed (chronological, oldest first)
ede205fRename PyPI distribution to agentops-accelerator — pyproject.toml[project].nameand the coupledimportlib.metadata.version("agentops-accelerator")lookup insrc/agentops/__init__.py. 2 files. Critic Correctness PASS.0481917refactor(cli): rebrand install hints to agentops-accelerator —src/agentops/cli/app.pyuser-facing install hint strings. 1 file, 4 lines.6dba906refactor(scripts): rebrand release/staging install + URL strings —scripts/release.{sh,ps1},scripts/staging.{sh,ps1}. 2 files, 11 lines.8ccad69docs(readme): rebrand PyPI long-description landing page — README.md h1, install commands, install badges, lead paragraph. 1 file, 6 lines.a9a95f1chore(deps): refresh uv.lock after distribution rename — Lockfile reconciled to the new project name. Auto-regenerated during Batch 2 verification.c80c424refactor(ci): rebrand .github workflows + marketplace metadata —.github/workflows/{ci,release,staging,_build}.yml,.github/plugin/marketplace.json. 6 files. VSIX filename intentionally left as-is (decoupled from package name viavsce package -o).97f1d5arefactor(plugin): rebrand VS Code extension manifest + README —plugins/agentops/{package.json,README.md}. 3 files. NewdisplayName:"AgentOps Accelerator — Skills for GitHub Copilot"(em-dash U+2014).2191616refactor(templates,tests): rebrand workflow/pipeline/skill templates + test assertions —src/agentops/templates/**,plugins/agentops/skills/**/SKILL.md,tests/unit/{test_cicd.py,test_cli_commands.py}. 35 files.ce59bb6refactor(src,docs,plugins): rebrand runtime hints, marketplaces, docs, and plugin resolver — 11src/agentops/**runtime install-hint files,.claude-plugin/marketplace.json, 4 docs files,.vscode/settings.jsonchat.plugins.enabledPluginsresolver. 17 files.f41c009docs(changelog): add v0.3.0 rebrand release notes (Rebrand (Part 1/2): rename PyPI distribution + VS Code extension toagentops-accelerator#181) —CHANGELOG.md[Unreleased]section with rebrand bullet and### Notes for developersegg-info cleanup guidance.b99daedfix(ci): rename agentops_toolkit → agentops_accelerator residuals in _build.yml — Caught by post-rebrand audit:_build.yml:57(env var) and:95-96(artifact glob assertion) still referenced the old distribution name. Without this fix, every release would ship a wheel as version 0.0.0 and fail the assertion. P0.2f128d9feat(tombstones): scaffold legacy identifier metapackages for PyPI + VSCode — 11 new files undertombstones/. PyPI metapackage, VSCode tombstone extension (TypeScript activator with strict-mode compile, per-install prompt-resolved sentinel, Marketplace fallback link). Empirically validated viapython -m build+npx vsce package.022d36dci(tombstones): publish deprecation packages atomically with v0.3.0 — 5 new jobs inrelease.yml, 4 instaging.yml;cut-release.ymlextended to sync tombstone versions. Tombstone version resolved at build time viatomllib.loads(...)['project']['version']— zero hardcoded version literals.d163b50docs(changelog): expand v0.3.0 tombstone notes (PyPI + VSCode) — Documents both tombstones, the atomic publish guarantee, and the "tombstone-delayed-never-blocks" failure-mode contract.a0e52c5feat(tombstones): add post-publish verification harness — Newscripts/verify_tombstones.py(stdlib-only) automates PyPI (8 checks) + VSIX (5 checks) + GH release (11 checks) verification. Newdocs/verifying-tombstones.mdcovers the VSCode UX manual checklist + CDN deprecation follow-up + SemVer-compliant rollback. Multi-pass Coder → Critic Correctness (2 CRITICAL doc fixes + 1 IMPORTANT Windows fix + 3 hardening comments) → Refine 1 PASS.Operator-action preconditions (REQUIRED before tag push)
Two follow-up actions are needed in the GitHub/PyPI/Marketplace UI BEFORE pushing the
v0.3.0tag. Without these, the first execution of the new tombstone publish jobs will fail.1. Configure four PyPI Trusted Publishers
PyPI Trusted Publishing is per-project, not per-workflow. Two new entries (one per registry) are needed for
agentops-toolkit:(For all four: owner=Azure, repo=agentops.)
Without entries 3 and 4, the tombstone OIDC handshake fails with "no Trusted Publishers registered for this project."
2. Verify
VSCE_PATscope covers BOTH publishersThe current
VSCE_PATwas created for theAgentOpsAcceleratorpublisher. The tombstone VSIX publishes underAgentOpsToolkit. Run:vsce ls-publishers -p $VSCE_PATExpected output must list BOTH
AgentOpsAcceleratorANDAgentOpsToolkit. If only one appears (different AzDO accounts own them):VSCE_PAT_LEGACY(Marketplace: Managescope on theAgentOpsToolkit-owning AzDO account)publish-tombstone-vsix(release.yml) andpublish-tombstone-vsix-prerelease(staging.yml) to referencesecrets.VSCE_PAT_LEGACYinstead ofsecrets.VSCE_PATWhat this PR does NOT do (out of scope)
v0.3.0tag push —cut-release.ymlis still operator-triggered; nothing in this PR cuts the release.tombstones/vscode/CDN_DEPRECATION_REQUEST.md. The actual request must be filed by a maintainer after the tombstone VSIX goes live so VS Code clients automatically surface the deprecation UX."AgentOps Toolkit"insrc/agentops/cli/app.py:428(gated bytests/unit/test_cli_explain.py:25) belongs to Rebrand (Part 2/2): update generated templates, skills, and docs #182, deferred to a follow-up PR.Preflight verifications (operator confirmed)
agentops-acceleratorreserved on PyPI + TestPyPIAgentOpsAcceleratorcreatedagentops-accelerator(PyPI + TestPyPI)VSCE_PATaccount is a member of theAgentOpsAcceleratorpublisherpublish-vsixhardening) — merged into develop (711b0a0); rebrand commits rebased onto post-merge develop.agentops-toolkit(PyPI + TestPyPI) — see Operator-action preconditions This repo is missing a license file #1VSCE_PATscope verification forAgentOpsToolkitpublisher — see Operator-action preconditions Adding Microsoft SECURITY.MD #2Developer migration note (now landed in CHANGELOG; reproduced here for reviewers)
After pulling, existing dev machines with prior editable installs must refresh metadata:
CI is unaffected (fresh installs every run).
Risk + mitigation matrix
github-releaseonly gates onpublish-pypi+publish-vsix; tombstone artifact attach is conditionalgithub-release.if)publish-tombstone-pypigated onverify-tombstone-testpypi(whichpip show-checks the dep +import-tests the redirect)tombstones/pypi/pyproject.tomlviatomllib→ propagated through job outputs; zero literal0.3.0in the workflowagentops-toolkitrelease.yml+staging.ymldocument the 4 required Trusted Publishers explicitlyVSCE_PATscope insufficient forAgentOpsToolkitvsce ls-publishers -p $VSCE_PATverification +VSCE_PAT_LEGACYfallback pathinfomodal, dismiss-on-X, try/catch per branch)