handoff-mcp-server 0.19.0 → 0.19.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/Cargo.lock CHANGED
@@ -136,7 +136,7 @@ dependencies = [
136
136
 
137
137
  [[package]]
138
138
  name = "handoff-mcp"
139
- version = "0.19.0"
139
+ version = "0.19.1"
140
140
  dependencies = [
141
141
  "anyhow",
142
142
  "chrono",
@@ -208,9 +208,9 @@ dependencies = [
208
208
 
209
209
  [[package]]
210
210
  name = "lexsim"
211
- version = "0.1.0"
211
+ version = "0.4.0"
212
212
  source = "registry+https://github.com/rust-lang/crates.io-index"
213
- checksum = "579b9d7ab407540bead4688eaf1675410a198d77c237a30cda55597df98926e1"
213
+ checksum = "14b08f26a4b07325e83c0211adb36d0223fae644534dacd4eae72153c1ccd873"
214
214
  dependencies = [
215
215
  "unicode-normalization",
216
216
  "unicode-segmentation",
package/Cargo.toml CHANGED
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "handoff-mcp"
3
- version = "0.19.0"
3
+ version = "0.19.1"
4
4
  edition = "2021"
5
5
  description = "MCP server that gives AI coding agents persistent memory across sessions"
6
6
  license = "MIT"
@@ -20,7 +20,7 @@ toml_edit = "0.22"
20
20
  chrono = { version = "0.4", features = ["serde"] }
21
21
  anyhow = "1"
22
22
  thiserror = "2"
23
- lexsim = "0.1.0"
23
+ lexsim = ">=0.1.0, <1.0.0"
24
24
 
25
25
  [dev-dependencies]
26
26
  tempfile = "3.27.0"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "handoff-mcp-server",
3
- "version": "0.19.0",
3
+ "version": "0.19.1",
4
4
  "description": "MCP server that gives AI coding agents persistent memory across sessions",
5
5
  "license": "MIT",
6
6
  "author": "AlphaElements <66808803+alphaelements@users.noreply.github.com>",
@@ -0,0 +1,85 @@
1
+ #!/usr/bin/env bash
2
+ # Sync plugin/marketplace manifest versions to package.json's version.
3
+ #
4
+ # package.json is the source of truth (kept in sync with Cargo.toml manually
5
+ # per CLAUDE.md "Version sync" rule). This script propagates that version to:
6
+ # - plugin/.claude-plugin/plugin.json
7
+ # - plugin-hooks/.claude-plugin/plugin.json
8
+ # - plugin-task-loop/.claude-plugin/plugin.json
9
+ # - .claude-plugin/marketplace.json (all three "version" entries)
10
+ #
11
+ # Uses regex line replacement (not json.dump) so untouched formatting in
12
+ # these hand-maintained manifests is preserved byte-for-byte.
13
+ #
14
+ # Usage:
15
+ # ./scripts/sync-plugin-version.sh # fix mismatches in place
16
+ # ./scripts/sync-plugin-version.sh --check # exit 1 if anything is out of sync, fix nothing
17
+ set -euo pipefail
18
+
19
+ SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
20
+ ROOT="$(dirname "$SCRIPT_DIR")"
21
+ cd "$ROOT"
22
+
23
+ MODE="fix"
24
+ if [ "${1:-}" = "--check" ]; then
25
+ MODE="check"
26
+ fi
27
+
28
+ python3 - "$MODE" <<'PYEOF'
29
+ import json
30
+ import re
31
+ import sys
32
+
33
+ mode = sys.argv[1]
34
+
35
+ with open("package.json") as f:
36
+ root_version = json.load(f)["version"]
37
+
38
+ version_line_re = re.compile(r'^(\s*"version"\s*:\s*)"[^"]*"(,?\s*(?:\r?\n)?)$')
39
+
40
+ def sync_file(path, mismatches):
41
+ with open(path) as f:
42
+ lines = f.readlines()
43
+ changed = False
44
+ out = []
45
+ for line in lines:
46
+ m = version_line_re.match(line)
47
+ if m:
48
+ current = re.search(r'"version"\s*:\s*"([^"]*)"', line).group(1)
49
+ if current != root_version:
50
+ mismatches.append((path, current))
51
+ changed = True
52
+ line = f'{m.group(1)}"{root_version}"{m.group(2)}'
53
+ out.append(line)
54
+ if changed and mode == "fix":
55
+ with open(path, "w") as f:
56
+ f.writelines(out)
57
+ return changed
58
+
59
+ mismatches = []
60
+ plugin_files = [
61
+ "plugin/.claude-plugin/plugin.json",
62
+ "plugin-hooks/.claude-plugin/plugin.json",
63
+ "plugin-task-loop/.claude-plugin/plugin.json",
64
+ ".claude-plugin/marketplace.json",
65
+ ]
66
+
67
+ for path in plugin_files:
68
+ sync_file(path, mismatches)
69
+
70
+ if mode == "check":
71
+ if mismatches:
72
+ print(f"Version mismatch: package.json is {root_version}, but found:")
73
+ for path, version in mismatches:
74
+ print(f" {path}: {version}")
75
+ print("Run ./scripts/sync-plugin-version.sh to fix.")
76
+ sys.exit(1)
77
+ print(f"All plugin/marketplace manifests match package.json ({root_version}).")
78
+ else:
79
+ if mismatches:
80
+ print(f"Synced {len(mismatches)} version occurrence(s) to {root_version}:")
81
+ for path, old_version in mismatches:
82
+ print(f" {path}: {old_version} -> {root_version}")
83
+ else:
84
+ print(f"Already in sync at version {root_version}. No changes made.")
85
+ PYEOF