Repository navigation
This release came out of a simple exercise: install 0.1.0 from PyPI into a
clean environment, and walk through it exactly as a new user would. Several
things broke. Then I audited the docs against what the code actually does,
and found more.
If you are on 0.1.0, this is worth upgrading for.
pipx install --force "phaseops[mcp]"
Detection now reads your dependencies
This is the big one. Most bundled adapters declared dep_key signals, and
detection silently ignored every one of them. So any stack identified mainly
by what it depends on got the wrong adapter, confidently:
┌───────────────────────────────┬───────────────┬────────────────────┐
│ Your project │ Before │ Now │
├───────────────────────────────┼───────────────┼────────────────────┤
│ Create React App │ nodejs │ react │
├───────────────────────────────┼───────────────┼────────────────────┤
│ LangChain (no langgraph.json) │ python │ langchain + python │
├───────────────────────────────┼───────────────┼────────────────────┤
│ Astro │ nodejs │ astro │
├───────────────────────────────┼───────────────┼────────────────────┤
│ Express API │ nodejs (weak) │ nodejs (confident) │
└───────────────────────────────┴───────────────┴────────────────────┘
Dependencies are read from package.json (all four blocks),
pyproject.toml (PEP 621 and Poetry), requirements.txt, and
composer.json. Version specifiers and extras are handled, so
langchain[all]>=0.2 matches.
If PhaseOps picked the wrong adapter for you before, re-run
phaseops init --force and it will likely get it right now.
Fixes you will actually notice
phaseops init no longer dead-ends on ordinary projects. A plain Python
project with just a requirements.txt used to fail with "no adapter
exceeded the auto-detect threshold" and demand --adapter. A single
unopposed candidate is now accepted. Two genuine candidates still stop and
ask you.
phaseops serve tells you what is missing. Installing without the
[mcp] extra used to dump a raw ImportError. Since your AI client is what
launches the server, that surfaced as an unexplained connection failure with
no clue attached. It now names the extra and how to install it.
doctor catches that same case before it bites. New mcp.sdk_present
check. Previously doctor reported a perfectly healthy project on an install
where the server could not start at all.
Version reporting is consistent. The MCP handshake was advertising the
SDK's version as PhaseOps'. Both transports now report the package version.
Docs
Three new entry-point guides under docs/guides/start/, for people arriving
from different places: already using a coding agent daily, moving off a
no-code builder like Lovable or Replit, or new to coding agents entirely.
Getting Started also had a stale section telling you PhaseOps was not on
PyPI yet and to clone the repo. Fixed, and it now warns that macOS ships
Python 3.9, since pip's "No matching distribution found" reads as though the
package does not exist rather than as a version problem.
Security note
The HTTP transport has no authentication and takes its project root from a
client-supplied header. Nothing changed here and the 127.0.0.1 default is
still correct. It just was not documented, so it is now. If you bind it
anywhere reachable, put it behind an SSH tunnel or an authenticating proxy.
Full detail in CHANGELOG.md (https://github.com/agentxworks/phaseops/blob/main/CHANGELOG.md).