Sync windows/pkg/ with root lua sources (stale since April 2026) #18

Closed
opened 2026-05-17 16:12:32 +00:00 by claude-noether · 3 comments
Collaborator

windows/pkg/lmcp.lua, windows/pkg/server.lua, and windows/pkg/json.lua are April-2026 snapshots that have drifted out of sync with the root lmcp.lua / server.lua / json.lua. They are missing every feature added since April:

  • fetch tool (issue #3)
  • web_search tool (issue #4)
  • json.lua UTF-16 surrogate-pair patch (issue #4)
  • edit_file, shell_bg tools
  • Resources primitive (issue #5)
  • Tool annotations (issue #14)

Goal

Decide on a sync strategy so the Windows MSI ships a current lmcp surface.

Options

  1. Symlink/copy at build time. windows/pkg/{lmcp,server,json}.lua become symlinks (or post-checkout copies via lmcp.wxs or a Make target) of the root files. Zero duplication.
  2. CI-enforced byte-equality check. Keep the duplicates but fail packaging if they diverge from root. Equally good but adds a CI step the repo doesn't have yet.
  3. Drop windows/pkg/ if the Windows builds happen on a separate branch or external pipeline. Currently unclear from the repo whether they are still active.

Scope

  • Decide between (1)/(2)/(3) and document.
  • If (1): wire the symlink/copy, remove the stale duplicates, verify the MSI still builds (if anyone still builds it).
  • If (2): add a make check-windows-sync rule and an lmcp.wxs comment.

Priority

Low unless the Windows MSI is actively shipped to anyone. Surfaced during issue #14 Phase 5 review.

`windows/pkg/lmcp.lua`, `windows/pkg/server.lua`, and `windows/pkg/json.lua` are April-2026 snapshots that have drifted out of sync with the root `lmcp.lua` / `server.lua` / `json.lua`. They are missing every feature added since April: - `fetch` tool (issue #3) - `web_search` tool (issue #4) - json.lua UTF-16 surrogate-pair patch (issue #4) - `edit_file`, `shell_bg` tools - Resources primitive (issue #5) - Tool annotations (issue #14) ## Goal Decide on a sync strategy so the Windows MSI ships a current lmcp surface. ## Options 1. **Symlink/copy at build time.** `windows/pkg/{lmcp,server,json}.lua` become symlinks (or post-checkout copies via `lmcp.wxs` or a Make target) of the root files. Zero duplication. 2. **CI-enforced byte-equality check.** Keep the duplicates but fail packaging if they diverge from root. Equally good but adds a CI step the repo doesn't have yet. 3. **Drop `windows/pkg/`** if the Windows builds happen on a separate branch or external pipeline. Currently unclear from the repo whether they are still active. ## Scope - Decide between (1)/(2)/(3) and document. - If (1): wire the symlink/copy, remove the stale duplicates, verify the MSI still builds (if anyone still builds it). - If (2): add a `make check-windows-sync` rule and an `lmcp.wxs` comment. ## Priority **Low** unless the Windows MSI is actively shipped to anyone. Surfaced during issue #14 Phase 5 review.
Owner

Option 1 for v1.1.0

Option 1 for v1.1.0
Author
Collaborator

Acked: Option 1 (symlink/copy-at-build) for v1.1.0. Sketch: replace windows/pkg/{lmcp,server,json}.lua with build-time copies driven by a Makefile or a tiny windows/sync.sh; lmcp.wxs runs the sync as a pre-step. Avoids the divergence trap that bit us this session. Awaiting v1.1.0 milestone assignment from a repo-write account.

Acked: Option 1 (symlink/copy-at-build) for v1.1.0. Sketch: replace `windows/pkg/{lmcp,server,json}.lua` with build-time copies driven by a Makefile or a tiny `windows/sync.sh`; `lmcp.wxs` runs the sync as a pre-step. Avoids the divergence trap that bit us this session. Awaiting v1.1.0 milestone assignment from a repo-write account.
marfrit added this to the v1.1.0 milestone 2026-05-17 18:52:40 +00:00
Author
Collaborator

Implemented (Option 1). Commit 7e62f71 on master, tag v1.1.0.

Added in windows/:

  • sync.sh — copies root {lmcp,server,json}.lua to pkg/. Idempotent; fails loud if a source is missing; logs each sync with a timestamp. Run before invoking WiX.
  • README.md — workflow doc + a tracked-vs-generated map so future contributors know not to edit pkg/*.lua directly.
  • lmcp.wxs — MSI manifest (was already on disk, now tracked; Version bumped 0.1.0 → 1.1.0).
  • pkg/install_service.bat + pkg/start.bat — Windows service installer + launcher (already on disk, now tracked).

New .gitignore at repo root:

windows/pkg/lmcp.lua
windows/pkg/server.lua
windows/pkg/json.lua
windows/pkg/lua/

Verification:

$ ./windows/sync.sh
  synced lmcp.lua
  synced server.lua
  synced json.lua
$ diff lmcp.lua windows/pkg/lmcp.lua   # → empty
$ git check-ignore windows/pkg/{lmcp,server,json}.lua  # all 3 ignored

Failure mode this addresses (the issue's headline): the prior April-2026 pkg/*.lua snapshot was missing every feature added since then. Running sync.sh before each MSI build now guarantees pkg/ matches master. Forgetting to run is failure-loud (MSI ships last sync's snapshot, easy to spot in QA), not silent.

Out of scope (potential future):

  • Auto-bumping lmcp.wxs Version from git tag — kept explicit for now.
  • CI-built MSI — currently relies on running candle.exe + light.exe on a Windows box.

Closes the v1.1.0 milestone alongside #11 and #20.

Implemented (Option 1). Commit `7e62f71` on master, tag `v1.1.0`. **Added in `windows/`:** - `sync.sh` — copies root `{lmcp,server,json}.lua` to `pkg/`. Idempotent; fails loud if a source is missing; logs each sync with a timestamp. Run before invoking WiX. - `README.md` — workflow doc + a tracked-vs-generated map so future contributors know not to edit `pkg/*.lua` directly. - `lmcp.wxs` — MSI manifest (was already on disk, now tracked; `Version` bumped 0.1.0 → 1.1.0). - `pkg/install_service.bat` + `pkg/start.bat` — Windows service installer + launcher (already on disk, now tracked). **New `.gitignore` at repo root:** ``` windows/pkg/lmcp.lua windows/pkg/server.lua windows/pkg/json.lua windows/pkg/lua/ ``` **Verification:** ``` $ ./windows/sync.sh synced lmcp.lua synced server.lua synced json.lua $ diff lmcp.lua windows/pkg/lmcp.lua # → empty $ git check-ignore windows/pkg/{lmcp,server,json}.lua # all 3 ignored ``` Failure mode this addresses (the issue's headline): the prior April-2026 `pkg/*.lua` snapshot was missing every feature added since then. Running `sync.sh` before each MSI build now guarantees `pkg/` matches master. Forgetting to run is failure-loud (MSI ships last sync's snapshot, easy to spot in QA), not silent. **Out of scope (potential future):** - Auto-bumping `lmcp.wxs Version` from git tag — kept explicit for now. - CI-built MSI — currently relies on running `candle.exe + light.exe` on a Windows box. Closes the v1.1.0 milestone alongside #11 and #20.
Sign in to join this conversation.
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: marfrit/lmcp#18