Skip to content

v0.6.0 — PyPI catch-up + code-agent uvx bootstrap

Choose a tag to compare

@kouko kouko released this 28 May 06:04
04a197a

🎯 PyPI back in sync with the plugin path

First PyPI release since v0.3.0. The Claude Code plugin path shipped
v0.4.0 + v0.5.0 internally from cloned-repo source, but neither was
published to PyPI due to a release-trigger workflow bug — v0.6.0 rolls
up both prior releases plus the uvx UX work that promotes
uvx redshift-comment-mcp to a first-class install path for non-Claude-
Code MCP clients.

The new Release publishing (MUST) discipline (#31) + publish.yml
trigger fix (#33) close the gap that caused the silent v0.5.0
non-publication. v0.5.0 is intentionally skipped on PyPI; v0.6.0 is
its strict superset plus the UX work.

🤖 New in v0.6.0 — code-agent uvx bootstrap (#33)

uvx redshift-comment-mcp becomes truly stand-alone — no Claude Code
plugin required for first-time setup, and the password stays out of
chat / stdout via OS-native dialog.

Subcommand Purpose
set-password --profile X --dialog macOS osascript / Linux zenity password dialog → keychain. Password never enters chat / stdout / argv.
set-password --profile X --stdin Read one line from stdin → keychain (headless / CI use). Mutually exclusive with --dialog.

server.py's "profile not configured" error messages now offer three
setup paths
: Claude Code skill, code-agent pipeline (set-fields +
set-password --dialog), and human terminal (uvx redshift-comment-mcp setup). Before v0.6.0, the error only mentioned the Claude Code skill —
uvx-only users hit a dead-end message.

Trilingual README §"Setting up with uvx" now ships concrete
claude_desktop_config.json snippets (single-profile + multi-cluster)
plus the code-agent bootstrap pipeline (#32 + #33).

✨ New skills (rolled up from v0.4.0)

Skill One-liner PR
/redshift-grep-columns Cross-table column keyword search across one or all schemas #24
/redshift-grep-tables Cross-schema table keyword search across the entire cluster #24
/redshift-switch-profile Switch the active connection profile without re-entering host/user/password #21

🆕 Other new features (v0.4.0 + v0.5.0)

  • execute_sql transparency — response now includes _executed_sql
    (the rewritten SQL the server actually ran) and _user_facing_message
    (a shaped string the agent can show users) (#28).
  • Zero-config plugin installclaude plugin install no longer
    asks for a profile name. The MCP server reads an active-profile
    pointer file written by /redshift-setup (#21, breaking, see
    migration below).

⚡ Performance (rolled up from v0.4.0)

  • Column metadata SQL: ~3.3x at 12K columns. Rewrote correlated-
    subquery pattern to direct LEFT JOIN. Speedup persists at small N (#22).
  • Long-comment safety in multi-item responses. MAX_COMMENT_LEN=1000
    caps each comment with a comment_truncated_count marker; single-item
    getters never truncate (#23).

🐛 Bug fixes

  • Single-profile upgrade rescue (v0.5.0) — pre-PR-22 installs whose
    lone profile was not named default got hard-broken by the active-
    profile pointer file introduction. resolve_active_profile now falls
    back to the lone profile when exactly one exists; explicit
    --profile / env / pointer inputs still resolve verbatim so typos
    surface as typos (#29).
  • uvx-only error UX (v0.6.0) — "no profile configured" error now
    guides ALL setup paths, not just the Claude Code skill (#33).
  • Various skill bug fixes from functional-test pass (#19).

🏠 Housekeeping

  • Removed /redshift-cache-schema — cache layer retired in favor
    of always-fresh catalog SQL + the new performance work (#26).
  • Live-cluster smoke gate. REDSHIFT_INTEGRATION=1 pytest tests/integration/
    exercises every MCP tool against a real Redshift cluster (#25).
  • New tests/e2e/ tier — MCP wire-protocol tests via stdio
    subprocess (#28).
  • README install-link fix (#27).

⚠️ Breaking — Profile system contract (rolled up from v0.4.0, #21)

If you installed v0.3.0 directly via pip install redshift-comment-mcp:

  • Profile pointer file is new. ~/.config/redshift-comment-mcp/active-profile
    is now the source of truth for the active profile. Absence is no longer
    an error — single-profile users get an implicit fallback (after #29).
  • Plugin manifest no longer asks for profile name. Anyone who
    manually set a profile name via client config should switch to
    --profile <name> to override the pointer file, or rely on
    /redshift-setup + /redshift-switch-profile.

If your existing single profile is named anything other than default,
upgrading straight to 0.6.0 (not stopping at any 0.4.x / 0.5.0 point)
is the safe path — the single-profile fallback rescue (#29) is included.

🛠️ Release discipline (v0.6.0 internal)

  • CLAUDE.md now codifies the release-publishing flow as a hard
    discipline (tag → Pre-release → flip-to-Release → PyPI), so the silent
    non-publication that hit v0.4.0 + v0.5.0 doesn't recur (#31).
  • .github/workflows/publish.yml trigger gains released activity
    type, so gh release edit --prerelease=false (the Pre-release →
    Release promotion) actually fires the workflow. v0.5.0 was the worked
    example of this trigger gap — fixed forward in v0.6.0 (#33).

📥 Install

# PyPI / generic MCP client
pip install --upgrade redshift-comment-mcp
# or
uvx redshift-comment-mcp

# Claude Code plugin
claude plugin install redshift-comment-mcp

📊 Full changelog

PRs in this release (v0.3.0…v0.6.0):
#19 · #20 · #21 · #22 · #23 · #24 · #25 · #26 · #27 · #28 · #29 · #30 ·
#31 · #32 · #33