Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "hindsight-memory",
"description": "Automatic long-term memory for Claude Code via Hindsight. Recalls relevant memories before each prompt, retains conversation transcripts, and provides knowledge page tools.",
"version": "0.7.2",
"version": "0.8.3",
"author": {"name": "Hindsight Team", "url": "https://vectorize.io/hindsight"},
"license": "MIT",
"keywords": ["memory", "hindsight", "recall", "retain"]
Expand Down
12 changes: 12 additions & 0 deletions hindsight-integrations/claude-code/tests/test_manifest.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
"""Validate that JSON manifests are strict-valid JSON (no trailing commas, etc.)."""

import json
import tomllib
from pathlib import Path

INTEGRATION_ROOT = Path(__file__).resolve().parent.parent
REPO_ROOT = INTEGRATION_ROOT.parent.parent


def test_hooks_json_is_valid():
Expand All @@ -12,3 +14,13 @@ def test_hooks_json_is_valid():
parsed = json.loads(raw)
assert "hooks" in parsed
assert isinstance(parsed["hooks"], dict)


def test_plugin_manifest_version_is_not_behind_core_release():
plugin_path = INTEGRATION_ROOT / ".claude-plugin" / "plugin.json"
core_pyproject_path = REPO_ROOT / "hindsight-dev" / "pyproject.toml"

plugin_version = json.loads(plugin_path.read_text())["version"]
core_version = tomllib.loads(core_pyproject_path.read_text())["project"]["version"]

assert tuple(map(int, plugin_version.split("."))) >= tuple(map(int, core_version.split(".")))
11 changes: 11 additions & 0 deletions scripts/release.sh
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,17 @@ else
print_warn "File $CONTROL_PLANE_PKG not found, skipping"
fi

# Update Claude Code plugin manifest. Claude Code's plugin manager uses this
# manifest version to decide whether an installed plugin should refresh.
CLAUDE_CODE_PLUGIN_MANIFEST="hindsight-integrations/claude-code/.claude-plugin/plugin.json"
if [ -f "$CLAUDE_CODE_PLUGIN_MANIFEST" ]; then
print_info "Updating $CLAUDE_CODE_PLUGIN_MANIFEST"
sed -i.bak "s/\"version\": \".*\"/\"version\": \"$VERSION\"/" "$CLAUDE_CODE_PLUGIN_MANIFEST"
rm "${CLAUDE_CODE_PLUGIN_MANIFEST}.bak"
else
print_warn "File $CLAUDE_CODE_PLUGIN_MANIFEST not found, skipping"
fi

# Update hindsight-all npm wrapper package.json
ALL_NPM_PKG="hindsight-all-npm/package.json"
if [ -f "$ALL_NPM_PKG" ]; then
Expand Down