248bef5503
Tracks upstream lmcp v1.1.1 (commit 9707f7a). Single-bug-fix release: lmcp:tool() now normalises empty inputSchema.properties by dropping the key, so Zod-strict MCP clients don't reject tools/list with "expected: record, received: array". Discovered live on a hertz-tools deployment where two custom no-arg tools tripped the check and caused Claude Code to mark the endpoint as disconnected. New tarball sha256: 80c2e815aa61a2d3baab051c51cd247bdefa9dd03d72c4867b99c49b6eae9cb9 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
133 lines
6.1 KiB
Plaintext
133 lines
6.1 KiB
Plaintext
lmcp (1.1.1-1) bookworm trixie; urgency=medium
|
|
|
|
* Bug fix: omit empty inputSchema.properties at tool registration.
|
|
The json.lua empty-table-as-array gotcha (same one that bit
|
|
`ping` in v1.0.0-rc1) was re-surfacing on tool inputSchemas
|
|
declared with `properties = {}` — spec-strict MCP clients (Zod)
|
|
rejected the tools/list with "expected: record, received: array".
|
|
lmcp:tool() now normalises empty properties tables by dropping
|
|
the key entirely (JSON Schema permits omitting `properties` on
|
|
`type:object`, meaning "any object — no constraints").
|
|
Discovered live on a hertz-tools deployment where two custom
|
|
no-arg tools (lxc_list, network_status) tripped the Zod check
|
|
and caused Claude Code to mark the entire MCP endpoint as
|
|
disconnected.
|
|
|
|
-- Markus Fritsche <mfritsche@reauktion.de> Mon, 18 May 2026 00:55:00 +0000
|
|
|
|
lmcp (1.1.0-1) bookworm trixie; urgency=medium
|
|
|
|
* Concurrent handler dispatch (closes #20): tool handlers run in
|
|
cooperative coroutines. server.lua:run()'s sleep_ms yields to
|
|
the event loop instead of blocking. Slow shell commands no
|
|
longer serialise other requests — fast ping during a slow
|
|
`sleep N` returns in ~10ms (was ~N seconds).
|
|
* Progress + cancellation notifications (closes #11): tool
|
|
handler ctx gains progress(p, total?, message?) and cancelled().
|
|
Client→server notifications/cancelled flips a flag the running
|
|
handler sees within ~420ms (poll interval capped when ctx
|
|
present). Cancelled requests get a JSON-RPC -32800 error
|
|
response (spec wording is "SHOULD NOT respond" but the practical
|
|
UX wins; see upstream issue for the FD-inheritance trade-off).
|
|
* Windows MSI build sync (closes #18): windows/sync.sh script
|
|
refreshes windows/pkg/{lmcp,server,json}.lua from root before
|
|
WiX is invoked. Closes the drift trap that left the MSI ~6
|
|
months behind master in April 2026.
|
|
* Zero handler source-code changes; all existing tools (shell,
|
|
fetch, web_search, hub remote_*) benefit from concurrency and
|
|
auto-cancellation transparently via the run() helper.
|
|
|
|
-- Markus Fritsche <mfritsche@reauktion.de> Sun, 17 May 2026 19:45:00 +0000
|
|
|
|
lmcp (1.0.0~rc1-1) bookworm trixie; urgency=medium
|
|
|
|
* Full MCP 2025-06-18 surface (release candidate). Closes 14
|
|
upstream issues. New primitives: Resources, Prompts, Completion,
|
|
Logging, Sampling, Roots, fetch, web_search. Protocol: cursor
|
|
pagination, structuredContent, _meta passthrough, tool annotations
|
|
(readOnlyHint/destructiveHint/idempotentHint/openWorldHint).
|
|
Transports: stdio (LMCP_TRANSPORT=stdio) for Claude Desktop / IDE
|
|
clients; full Streamable HTTP rewrite with select()-based event
|
|
loop, sessions (Mcp-Session-Id), persistent SSE, server-initiated
|
|
requests, heartbeat, DELETE.
|
|
* json.lua: UTF-16 surrogate-pair combination + json.empty_object
|
|
sentinel for spec-correct {} emission (fixes ping's result:[]
|
|
bug).
|
|
* Backwards compatible with all existing sessionless-POST clients.
|
|
|
|
-- Markus Fritsche <mfritsche@reauktion.de> Sun, 17 May 2026 17:25:00 +0000
|
|
|
|
lmcp (0.5.4-1) bookworm trixie; urgency=medium
|
|
|
|
* Ship examples/lmcp.service systemd unit template alongside the
|
|
existing lmcp-hub.service. Copy-and-edit starting point for
|
|
per-host lmcp instances — no more hand-writing the unit on each
|
|
new Arch or Debian host.
|
|
|
|
-- Markus Fritsche <mfritsche@reauktion.de> Tue, 21 Apr 2026 16:55:00 +0000
|
|
|
|
lmcp (0.5.3-1) bookworm trixie; urgency=medium
|
|
|
|
* hub.lua: hard wall-clock cap on ssh fallback via `timeout` —
|
|
prevents event-loop wedges on half-dead sshd (auth stall, remote
|
|
bash-s hang). Configurable via LMCP_HUB_SSH_HARD_TIMEOUT.
|
|
* hub.lua: parallel lmcp probes for remote_list_hosts. Wall clock
|
|
for a 12-backend fleet with 8 offline hosts drops from ~28 s
|
|
(sequential ssh timeouts) to ~3 s.
|
|
* hub.lua: probe is lmcp-only, not ssh. Actual remote_* calls still
|
|
fall through to ssh fallback when lmcp is down.
|
|
* hub.lua: sticky DOWN cache with exponential backoff (60 → 120 →
|
|
240 → 480 → 900 s). UP hosts still 30 s TTL.
|
|
* hub.lua: per-request stderr logging (tool/host/via/elapsed) for
|
|
future RCA.
|
|
|
|
-- Markus Fritsche <mfritsche@reauktion.de> Tue, 21 Apr 2026 14:10:00 +0000
|
|
|
|
lmcp (0.5.2-1) bookworm trixie; urgency=medium
|
|
|
|
* server.lua: new shell_bg tool launches detached commands via
|
|
setsid + nohup + stdio-redirect. Returns PID + log path
|
|
immediately. Linux-only for MVP.
|
|
* hub.lua: new remote_shell_bg forwards to backend shell_bg.
|
|
|
|
-- Markus Fritsche <mfritsche@reauktion.de> Mon, 20 Apr 2026 09:34:48 +0000
|
|
|
|
lmcp (0.5.1-1) bookworm trixie; urgency=medium
|
|
|
|
* server.lua: search_files uses "find -L" so macOS BSD find
|
|
follows a symlink passed as the starting path (e.g. Homebrew's
|
|
/usr/local/share/lua -> Cellar/…). Previously returned empty.
|
|
|
|
-- Markus Fritsche <mfritsche@reauktion.de> Sun, 19 Apr 2026 12:48:27 +0000
|
|
|
|
lmcp (0.5.0-1) bookworm trixie; urgency=medium
|
|
|
|
* Add hub — fleet-wide MCP broker (hub.lua). Proxies remote_* tools
|
|
to every backend in a registry with SSH fallback for hosts whose
|
|
lmcp is temporarily unreachable. See
|
|
/usr/share/doc/lmcp/examples/lmcp-hub.service and
|
|
hub-backends.conf.example for deployment.
|
|
|
|
-- Markus Fritsche <mfritsche@reauktion.de> Sun, 19 Apr 2026 12:30:03 +0000
|
|
|
|
lmcp (0.4.1-1) bookworm trixie; urgency=medium
|
|
|
|
* Add LMCP_TOKEN environment-variable fallback for Bearer auth, so
|
|
launchd / systemd drop-ins can drop the token in the service env
|
|
without a conf file.
|
|
* Ship scripts/lmcp-install-macos.sh for Homebrew-based macOS installs
|
|
(mints token, writes LaunchAgent, smoke-tests).
|
|
|
|
-- Markus Fritsche <mfritsche@reauktion.de> Sat, 18 Apr 2026 10:46:56 +0000
|
|
|
|
lmcp (0.4.0-1) bookworm trixie; urgency=medium
|
|
|
|
* Add edit_file tool (Claude Code Edit semantics: literal match,
|
|
fails on multiple matches unless replace_all=true).
|
|
|
|
-- Markus Fritsche <mfritsche@reauktion.de> Fri, 17 Apr 2026 15:48:26 +0000
|
|
lmcp (0.3.0-1) bookworm trixie; urgency=medium
|
|
|
|
* Initial release packaged for marfrit overlay repo.
|
|
|
|
-- Markus Fritsche <mfritsche@reauktion.de> Tue, 14 Apr 2026 22:00:00 +0200 |