• v1.4.5-alpha 77ec80fb23

    v1.4.5-alpha
    All checks were successful
    Publish / detect-release (push) Successful in 4s
    CI / lint (push) Successful in 7s
    CI / security (push) Successful in 9s
    Publish / tag (push) Successful in 5s
    CI / test (push) Successful in 15s
    Publish / publish-forgejo (push) Successful in 9s
    Publish / publish-npm (push) Successful in 12s
    Publish / promote-release (push) Successful in 2s
    Pre-release

    Gravity Bot released this 2026-02-16 01:22:14 +00:00 | 118 commits to main since this release

    What's Changed

    Smart URL Normalization (OP#527)

    When users enter a bare hostname like dockyard:8940 without a protocol prefix, the wizard now automatically probes both protocols instead of failing:

    1. Tries https:// first (preferred)
    2. Falls back to http:// with an insecure-connection warning requiring explicit user confirmation
    3. If the user explicitly typed http://, also warns and asks for confirmation

    Applied to all URL input points in the wizard:

    • Docker sidecar connect (both wizard paths)
    • OpenProject domain resolution (both wizard paths)

    Tests (OP#528)

    10 new unit tests covering normalizeAndProbeUrl: protocol passthrough, bare hostname probing, host:port handling, insecure decline flow, trailing slash stripping, both-fail case. 174 total tests, 0 failures.

    Install

    npx -y open-project-sidecar-mcp@1.4.5-alpha --setup
    
    Downloads
  • v1.4.4-alpha 0cca9a7ccd

    v1.4.4-alpha
    All checks were successful
    CI / security (push) Successful in 7s
    Publish / detect-release (push) Successful in 7s
    CI / lint (push) Successful in 10s
    Publish / tag (push) Successful in 4s
    CI / test (push) Successful in 17s
    Publish / publish-forgejo (push) Successful in 10s
    Publish / publish-npm (push) Successful in 11s
    Publish / promote-release (push) Successful in 2s
    Pre-release

    Gravity Bot released this 2026-02-16 01:01:05 +00:00 | 123 commits to main since this release

    What's Changed

    Setup Wizard UX Overhaul (Epic OP#523)

    • OP#518: Improved error messaging when .env exists but is missing required values — now suggests --setup flag for reinstalls and distinguishes "found but incomplete" from "not found" in non-TTY mode
    • OP#519: Fixed duplicate service bug in Docker compose handling — services are now replaced in-place instead of appended, prompts correctly say "Update/Replace" for existing services, removed dangerous regex-based service removal
    • OP#520: Fixed Claude Code registration scope — now cleans existing config from both project and user scopes before adding, uses execFileSync for HTTP mode to prevent shell injection from base64 characters in API keys
    • OP#521: Setup wizard now reuses existing MCP_API_KEY from compose .env instead of always generating a new one — prevents 401 errors when the registered key doesn't match the running sidecar
    • OP#522: Improved start/restart language and manual command hints — uses "Restart" for existing services, includes -f compose path in fallback commands
    • OP#524: Added 11 unit tests covering readExistingMcpApiKey, findExistingMcpService port extraction, and replaceMcpServiceInCompose (164 total tests, 0 failures)

    Install

    npx -y open-project-sidecar-mcp@1.4.4-alpha --setup
    
    Downloads
  • v1.4.3-alpha beb2ce7f9a

    v1.4.3-alpha
    All checks were successful
    CI / lint (push) Successful in 7s
    CI / security (push) Successful in 11s
    CI / test (push) Successful in 14s
    Publish / detect-release (push) Successful in 5s
    Publish / tag (push) Successful in 5s
    Publish / publish-forgejo (push) Successful in 9s
    Publish / publish-npm (push) Successful in 11s
    Publish / promote-release (push) Successful in 1s
    Pre-release

    Gravity Bot released this 2026-02-15 23:53:39 +00:00 | 132 commits to main since this release

    What's Changed

    • OP#510: Added EADDRINUSE error handler on httpServer that probes the existing port occupant via /health before deciding how to exit
    • OP#511: Extracted probePortOccupant() as a testable export and added 4 unit tests covering all probe outcomes
    • OP#514: Added cached Docker availability check to runRailsCommand with early-exit and actionable error
    • OP#515: Wrapped execSync calls with classifyDockerError — distinct messages for 5 failure modes
    • OP#516: Added docker.available, docker.container, and docker.reachable to the /health endpoint
    • OP#517: Added 11 unit tests for checkDockerAvailable and classifyDockerError

    Install

    npx open-project-sidecar-mcp@1.4.3-alpha
    
    Downloads
  • v1.4.2-alpha e2b1b33d99

    v1.4.2-alpha
    All checks were successful
    Publish / detect-release (push) Successful in 4s
    CI / lint (push) Successful in 10s
    CI / security (push) Successful in 10s
    Publish / tag (push) Successful in 6s
    CI / test (push) Successful in 13s
    Publish / publish-forgejo (push) Successful in 8s
    Publish / publish-npm (push) Successful in 10s
    Publish / promote-release (push) Successful in 2s
    Pre-release

    Gravity Bot released this 2026-02-15 23:09:05 +00:00 | 141 commits to main since this release

    Changes

    • fix(ci): auto-set latest dist-tag when no stable release exists (OP#507)

    Pre-release publishes now check if latest points to a stable version. If not (or unset), the pre-release also gets tagged as latest. Once a stable release is published, pre-releases will only use their own channel tag (alpha/beta/rc).

    Downloads
  • v1.4.1-alpha 89ef378616

    v1.4.1-alpha
    All checks were successful
    Publish / detect-release (push) Successful in 6s
    CI / lint (push) Successful in 8s
    CI / security (push) Successful in 9s
    Publish / tag (push) Successful in 5s
    CI / test (push) Successful in 15s
    Publish / publish-forgejo (push) Successful in 6s
    Publish / publish-npm (push) Successful in 9s
    Publish / promote-release (push) Successful in 49s
    Pre-release

    Gravity Bot released this 2026-02-15 22:54:34 +00:00 | 144 commits to main since this release

    Changes

    • fix(ci): handle pre-published releases in promote-release job (OP#505)

    The promote-release CI job now handles three cases: draft release found (promote), published release already exists (skip), no release found (create). This makes the job idempotent regardless of Forgejo's auto-release behavior on tag push.

    Downloads
  • v1.4.0-alpha 462e4435f2

    v1.4.0-alpha
    Some checks failed
    CI / security (push) Successful in 6s
    Publish / detect-release (push) Successful in 5s
    CI / lint (push) Successful in 9s
    CI / test (push) Successful in 16s
    Publish / tag (push) Successful in 30s
    Publish / publish-forgejo (push) Successful in 6s
    Publish / publish-npm (push) Successful in 9s
    Publish / promote-release (push) Failing after 2s
    Pre-release

    Gravity Bot released this 2026-02-15 22:41:59 +00:00 | 147 commits to main since this release

    What's Changed

    • OP#498: Renamed npm-release skill to generic "release" with ecosystem detection (npm, Go, Python, Rust, generic)
    • OP#499: Restructured release workflow into three phases split at the PR merge boundary
    • OP#500: Added Forgejo package registry as primary publish target with external registries as optional secondary
    • OP#501: Created CI/CD publish workflow (.forgejo/workflows/publish.yml) for automated post-merge publishing
    • OP#502: Updated openproject and refinement skill integration for generic release
    • OP#503: Validated workflow YAML and existing test suite (138/138 tests pass)

    Install

    npm install open-project-sidecar-mcp@1.4.0-alpha --registry=https://git.bros.ninja/api/packages/mike/npm/
    

    First automated release

    This is the first release published via the new CI/CD pipeline. After this PR merges, Forgejo Actions will automatically tag, publish to the Forgejo npm registry, and promote this draft release.

    Downloads
  • v1.3.1-alpha 95618753a4

    v1.3.1-alpha
    All checks were successful
    CI / lint (push) Successful in 6s
    CI / security (push) Successful in 9s
    CI / test (push) Successful in 16s
    Pre-release

    Gravity Bot released this 2026-02-15 22:07:35 +00:00 | 157 commits to main since this release

    Installer UX improvements from v1.3.0-alpha e2e testing

    Bug Fixes

    • OP#486: Fix installer output indentation after nvim prompt
    • OP#487: Fix installer single-char prompts displaying input twice
    • OP#492: Fix ambiguous docker-connect prompt labels ("Server API key" → "MCP API key")

    Features

    • OP#488: Connection retry with protocol auto-detection (https→http fallback) and domain re-entry
    • OP#489: Docker sidecar auto-discover compose file, container, and scaffold MCP service
    • OP#491: Actionable health check messaging for degraded/failed states
    • OP#493: Replace manual JSON writing with claude mcp CLI for client registration

    Other

    • OP#490: Update README Docker sidecar compose example to use node:18-slim
    • OP#495: 25 new unit tests for Docker auto-discovery and health messaging helpers (138 total)

    Install

    npm install open-project-sidecar-mcp@1.3.1-alpha
    
    Downloads
  • v1.3.0-alpha 50f0058ab0

    v1.3.0-alpha: Simplify to two deployment modes
    All checks were successful
    CI / lint (push) Successful in 6s
    CI / security (push) Successful in 9s
    CI / test (push) Successful in 15s
    Pre-release

    Gravity Bot released this 2026-02-15 19:41:43 +00:00 | 167 commits to main since this release

    What changed

    The installer and documentation now present two deployment modes instead of three:

    Direct (stdio) Docker sidecar
    Best for Any developer, solo or team admin_command, persistent server
    Transport stdio (default) HTTP (always enabled)
    Requires Node 18+ Docker, Docker Compose
    API tools (56) All All
    admin_command No Yes

    The standalone "Shared (HTTP)" mode has been removed. HTTP transport is now inherent to Docker sidecar mode — it's always enabled because that's how clients connect to the container.

    Docker sidecar sub-question

    When choosing Docker sidecar, the installer now asks:

    1) Set up a new Docker sidecar on this machine
    2) Connect to an existing Docker sidecar
    
    • Setup creates a .env with OpenProject credentials + HTTP transport vars, auto-generates an MCP_API_KEY, and prints connection instructions for team members.
    • Connect prompts for the server URL and API key, tests connectivity, and writes a URL-based client config. No .env created on the client.

    Breaking changes

    • buildEnvContent("http-server", ...) and buildEnvContent("http-client", ...) are removed. Use docker-setup and docker-connect instead.
    • buildClientConfig("http-client", ...) and buildClientConfig("http-server", ...) are removed. Use docker-connect and docker-setup instead.
    • The old docker mode alias still works for buildEnvContent().

    Install / upgrade

    npx open-project-sidecar-mcp@1.3.0-alpha
    

    Or if previously installed globally:

    npm install -g open-project-sidecar-mcp@1.3.0-alpha
    

    Full changelog

    • OP#475: Merge ENV_TEMPLATE_HTTP into ENV_TEMPLATE_DOCKER, update buildEnvContent()
    • OP#476: Update promptDeploymentMode() to 2 modes
    • OP#477: Update promptCredentials() with docker-setup/docker-connect branches
    • OP#478: Update buildClientConfig() for docker-connect and docker-setup
    • OP#479: Refactor promptEnvSetup() with 2-mode flow and Docker sub-question
    • OP#480: Update runSetupWizard() with 2-mode menu
    • OP#481: Update --help text for 2-mode architecture
    • OP#482: Update README for 2-mode deployment architecture
    • OP#483: Update unit tests (113 pass, 0 fail)
    Downloads
  • v1.2.1-alpha 30282bdd99

    v1.2.1-alpha — Terminology fix: Direct/Shared modes
    All checks were successful
    CI / security (push) Successful in 7s
    CI / lint (push) Successful in 9s
    CI / test (push) Successful in 16s
    Pre-release

    Gravity Bot released this 2026-02-15 19:02:00 +00:00 | 177 commits to main since this release

    What changed

    Renamed deployment mode labels from "Local (stdio)" / "Remote (HTTP)" to "Direct (stdio)" / "Shared (HTTP)" across the README, installer prompts, and setup wizard.

    The old names implied where OpenProject is hosted, which was misleading — OpenProject can be anywhere in all modes. The new names describe how the MCP server is launched:

    • Direct — your AI client spawns the server as a child process (stdio pipes)
    • Shared — a persistent HTTP server that multiple AI clients connect to by URL

    No functional changes. All 114 tests pass.

    Install / upgrade

    npx open-project-sidecar-mcp@1.2.1-alpha
    
    Downloads
  • v1.2.0-alpha fd96b4e274

    v1.2.0-alpha — Mode-aware interactive installer
    All checks were successful
    CI / security (push) Successful in 6s
    CI / lint (push) Successful in 8s
    CI / test (push) Successful in 14s
    Pre-release

    Gravity Bot released this 2026-02-15 18:48:30 +00:00 | 179 commits to main since this release

    Highlights

    The first-run installer now asks which deployment mode you want and guides .env creation accordingly. Previously it only supported stdio — now it handles all three modes.

    What's new

    Mode-aware installer (OP#459)

    Running npx open-project-sidecar-mcp with no .env now walks you through:

    1. Deployment mode selection — Local (stdio), Remote (HTTP), or Docker sidecar
    2. Mode-specific credential prompts:
      • stdio: OpenProject URL + API key
      • HTTP server: above + port selection, auto-generated MCP_API_KEY
      • HTTP client: remote server URL + API key (no .env created)
      • Docker: above + container name
    3. Connectivity test — verifies your OpenProject instance is reachable
    4. .env creation — writes credentials to a local file (or appends Docker keys to existing .env)
    5. Client registration — writes config to ~/.claude.json (or preferred MCP client)

    Shared helpers

    Extracted reusable functions used by both promptEnvSetup() (first-run) and runSetupWizard() (--setup):

    • buildEnvContent(mode, credentials) — generates .env content for any mode
    • buildClientConfig(mode, credentials) — generates MCP client config object
    • promptDeploymentMode() / promptCredentials() — interactive prompts
    • testHealth() / testApiDirect() — moved to module scope for shared use

    Updated --help output

    • Removed stale env block from Claude Code example
    • Added --setup and --setup-json to options list
    • Lists all supported environment variables including HTTP transport vars

    README rewrite

    • Quick Start now leads with the installer (npx open-project-sidecar-mcp)
    • Each deployment mode section references the installer
    • New Manual configuration subsection with heredoc examples for CI/scripted use

    Tests

    • 11 new unit tests for buildEnvContent() and buildClientConfig() across all modes
    • 114 tests total, all passing

    Install / upgrade

    npx open-project-sidecar-mcp@1.2.0-alpha
    

    Full changelog

    • refactor(setup): extract testHealth and testApiDirect to module scope (OP#460)
    • feat(setup): add mode-specific .env templates and buildEnvContent (OP#461)
    • feat(setup): add promptDeploymentMode, promptCredentials, buildClientConfig (OP#462)
    • feat(setup): refactor promptEnvSetup with mode selection and Docker .env merge (OP#463)
    • refactor(setup): simplify runSetupWizard to use shared helpers (OP#464)
    • fix(help): update --help output with installer info and remove env block (OP#465)
    • docs: update README with installer-first Quick Start and manual config section (OP#466)
    • test: add unit tests for buildEnvContent and buildClientConfig (OP#467)
    Downloads