v0.70.0

feder-cr/invisible_dotsv0.70.0Sep 23, 2026by github-actions[bot]

Upgrading?

AI Summary

This release finalizes the migration of the package from the old name 'aihawk' to 'invisible-playwright-mcp', updating infrastructure and logic to support the new distribution while correcting previous assumptions about package deletion.

Key Highlights

  • Old package names (aihawk) were deleted to allow registration of the new name (invisible-playwright-mcp).
  • Release checking logic updated to distinguish between a deleted project (404) and an index error.
  • Single-version guard changed to 'skip' to allow the initial release under the new name without triggering CI failures.
  • Documentation and docstrings updated to clarify that deleted names can be re-registered on PyPI.

Breaking Changes

  • The package is no longer available under the name 'aihawk'; users must update their references to use 'invisible-playwright-mcp'.
  • Endpoints previously serving the old names now return 404 instead of 200.

New Features

  • Added logic to handle the case where a project is declared deleted but still serves versions.
  • Implemented a 'skip' mechanism for the single-version guard during the first release of the new name.
  • Updated docstrings to accurately describe the deletion and propagation of the old distribution names.

Full Release Notes

Both old names were deleted from the index on 2026-09-23 to free the new one:
aihawk and the shim that held invisible-playwright-mcp. Four endpoints answer
404 for both (JSON, simple, RSS, the file host) while invisible-playwright
answers 200 at the same moment, and PyPI accepted a pending publisher for the
new name, which it does only for a name that does not exist. So today
`uvx invisible-playwright-mcp` resolves to nothing, and this version is what
the README's instructions need to reach.

It also takes back a correction that was itself wrong. #1389 called the 404 a
transient, on the premise that PyPI does not let a deleted name be registered
again. It does, which is what made the rename possible; the deletion was real
and propagated unevenly. Three docstrings now say so.

The releases check learns the case it was missing. A deleted project answers
404 and so does an index having a bad minute, and nothing the index says can
tell them apart, so each distribution carries the day it was deleted, declared
like the boundary. Deleted ranges are not asked, and their tags are not
evidence that something should be served. The declaration is checked in the
one direction the index can answer: a project declared deleted that serves
versions fails.

The single-version guard is now a skip: the first release under the new name
is the only version on the index, and failing on that would be red on every
pull request until a second release, for nothing wrong.

Proven by three mutations, each red and naming its cause: aihawk declared
live, the boundary moved to 0.68.0, and a served project declared deleted.

Related Repositories