Patch release. Two changes to cmd/server, both motivated by running the service behind a unix socket on a reverse-proxied host: the binary now inherits a systemd-passed listener when present, and the healthz handler moves under the same path prefix as the MCP endpoint so a single proxy location forwards both. Bundled with two repository-hygiene changes. cmd/server: - chooseListener (new) — picks a listener at startup. When systemd has passed a LISTEN_FDS fd via github.com/coreos/go-systemd/v22/activation, the binary uses the inherited listener; otherwise it binds TCP at -addr as before. The startup log records "mode":"socket-activated" or "mode":"tcp" so operators can confirm which path is live. Same binary works for local dev and for systemd-managed deployment with no flags or env vars to toggle. - Health probe path is now derived from -path. With the default -path /mcp the probe is served at /mcp/healthz; the legacy /healthz route is no longer registered. A reverse proxy can now route the whole MCP service through a single "/mcp" location prefix instead of maintaining a second forward for /healthz. Consumers of v0.1.0 that hit /healthz directly must switch to /mcp/healthz. Dependencies: - github.com/coreos/go-systemd/v22 v22.7.0 — listener inheritance via LISTEN_FDS. Loaded only by cmd/server. Docs: - README.md "Deployment" section rewritten to be hosting-agnostic. The v0.1.0 draft prescribed a specific systemd-on-HestiaCP layout; the new text points at the Dockerfile and at systemd socket activation as a supported binary mode without dictating one operator's setup. Adds an explicit note that any reverse proxy must disable response buffering on the /mcp location — streamable MCP delivers tool results via Server-Sent Events and default proxy buffering breaks the stream. Repository hygiene: - /deploy/ is now .gitignored. Local deployment artefacts (systemd units, reverse-proxy templates, per-release scripts) are operator-specific by design and live outside the public repository. The Dockerfile at the module root remains the only portable, public-facing build artefact. No tool surface, no validation rules, no index schema, and no behaviour of the indexer changed. Operators upgrading from v0.1.0 must update their health-probe URL to /mcp/healthz (or whichever path matches their -path flag); MCP-protocol clients (Claude, Cursor, Zed, etc.) need no changes.
49 lines
2.0 KiB
Plaintext
49 lines
2.0 KiB
Plaintext
# ── Release workflow helpers ──────────────────────────────────────────────────
|
|
COMMIT.md
|
|
PR.md
|
|
RELEASE.md
|
|
|
|
# ── Go build artifacts ────────────────────────────────────────────────────────
|
|
*.exe
|
|
*.exe~
|
|
*.dll
|
|
*.so
|
|
*.dylib
|
|
*.test
|
|
*.out
|
|
/dist/
|
|
/bin/
|
|
|
|
# ── Go workspace (local development only) ────────────────────────────────────
|
|
go.work
|
|
go.work.sum
|
|
|
|
# ── Dependency vendor directory ───────────────────────────────────────────────
|
|
vendor/
|
|
|
|
# ── Coverage output ───────────────────────────────────────────────────────────
|
|
coverage.out
|
|
coverage.html
|
|
*.coverprofile
|
|
|
|
# ── OS artifacts ─────────────────────────────────────────────────────────────
|
|
.DS_Store
|
|
Thumbs.db
|
|
|
|
# ── Editor artifacts ──────────────────────────────────────────────────────────
|
|
.idea/
|
|
.vscode/
|
|
*.swp
|
|
*.swo
|
|
*~
|
|
|
|
# ── Generated framework index (rebuilt by cmd/indexer; placeholder is committed) ─
|
|
data/index.json
|
|
|
|
# ── Local deployment artifacts (systemd units, Hestia templates, deploy scripts) ─
|
|
# Operator-specific by design. Different users will deploy on k8s, Fly.io, Render,
|
|
# Cloud Run, bare metal — our HestiaCP + systemd + unix-socket layout is one shape
|
|
# among many and shouldn't be presented as the canonical path in a public repo.
|
|
# The Dockerfile at the module root is the portable artifact.
|
|
/deploy/
|