Skip to content

v0.7.0 — In-band MCP setup (degraded-mode + setup_via_dialog)

Pre-release
Pre-release

Choose a tag to compare

@kouko kouko released this 28 May 18:57
fc58615

⚠️ Superseded — never reached PyPI, use v0.7.1 instead

This tag exists in git history and on GitHub Releases, but was never
published to PyPI
. The v0.7.0 release attempt was blocked by two
GitHub Actions workflow flaws:

  1. test-publish.yml's "Test installation from TestPyPI" step ran ~30s
    after upload — TestPyPI's pip-facing simple index typically lags the
    JSON API by 1-3 minutes, so pip couldn't see 0.7.0 yet and the step
    failed spuriously.
  2. The twine upload step wasn't idempotent (--skip-existing missing),
    so gh run rerun --failed hit HTTPError: 400 Bad Request from
    the duplicate-version check.

The first failure was a cosmetic timing issue (TestPyPI actually had
0.7.0); the second made the workflow status permanently stuck on
"failed" with no clean recovery path. Bumping to 0.7.1 + fixing the
workflows (PR #35) was the cleanest path to a green ship — same
pattern as v0.4.0/v0.5.0 → v0.6.0.

Migration: install v0.7.1
or later. v0.7.1 is functionally identical to v0.7.0 from the user
perspective — only the publish workflows differ.

pip install --upgrade redshift-comment-mcp     # → 0.7.1+
# or
uvx redshift-comment-mcp                       # → 0.7.1+

The original v0.7.0 release notes are below for historical reference.


🎯 In-band MCP setup — no log-spelunking, no restart

v0.7.0 collapses the "code-agent provisions a Redshift profile" UX from
7 steps (with log-spelunking + Bash + MCP-client restart) down to
3 steps, pure MCP wire, no Bash needed. The server now boots even
without a configured profile and exposes a dedicated setup_via_dialog
tool that drives an OS-native password dialog server-side — password
never crosses chat / MCP wire / tool args.

agent: list_schemas() → {"error": "not_configured", "exception_class": "ConfigurationError", "next_step": "Call setup_via_dialog..."}
agent: setup_via_dialog(host=..., user=..., dbname=...)
       → OS dialog appears, user types password
       → SELECT 1 against Redshift to verify
       → {"status": "configured", "tested": true}
agent: list_schemas() → works (lazy resolve, no restart)

(Full v0.7.0 changelog identical to v0.7.1's notes minus the §"Release workflow fixes" section that's unique to v0.7.1.)