61488042d8
* feat: Add batch fetching for observations and update documentation - Implemented a new endpoint for fetching multiple observations by IDs in a single request. - Updated the DataRoutes to include a POST /api/observations/batch endpoint. - Enhanced SKILL.md documentation to reflect changes in the search process and batch fetching capabilities. - Increased the default limit for search results from 5 to 40 for better usability. * feat!: Fix timeline parameter passing with SearchManager alignment BREAKING CHANGE: Timeline MCP tools now use standardized parameter names - anchor_id → anchor - before → depth_before - after → depth_after - obs_type → type (timeline tool only) Fixes timeline endpoint failures caused by parameter name mismatch between MCP layer and SearchManager. Adds new SessionStore methods for fetching prompts and session summaries by ID. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * docs: reframe timeline parameter fix as bug fix, not breaking change The timeline tools were completely broken due to parameter name mismatch. There's nothing to migrate from since the old parameters never worked. Co-authored-by: Alex Newman <thedotmack@users.noreply.github.com> * Refactor mem-search documentation and optimize API tool definitions - Updated SKILL.md to emphasize batch fetching for observations, clarifying usage and efficiency. - Removed deprecated tools from mcp-server.ts and streamlined tool definitions for clarity. - Enhanced formatting in FormattingService.ts for better output readability. - Adjusted SearchManager.ts to improve result headers and removed unnecessary search tips from combined text. * Refactor FormattingService and SearchManager for table-based output - Updated FormattingService to format search results as tables, including methods for formatting observations, sessions, and user prompts. - Removed JSON format handling from SearchManager and streamlined result formatting to consistently use table format. - Enhanced readability and consistency in search tips and formatting logic. - Introduced token estimation for observations and improved time formatting. * refactor: update documentation and API references for version bump and search functionalities * Refactor code structure for improved readability and maintainability * chore: change default model from haiku to sonnet 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * feat: unify timeline formatting across search and context services Extract shared timeline formatting utilities into reusable module to align MCP search output format with context-generator's date/file-grouped format. Changes: - Create src/shared/timeline-formatting.ts with reusable utilities (parseJsonArray, formatDateTime, formatTime, formatDate, toRelativePath, extractFirstFile, groupByDate) - Refactor context-generator.ts to use shared utilities - Update SearchManager.search() to use date/file grouping - Add search-specific row formatters to FormattingService - Fix timeline methods to extract actual file paths from metadata instead of hardcoding 'General' - Remove Work column from search output (kept in context output) Result: Consistent date/file-grouped markdown formatting across both systems while maintaining their different column requirements. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * refactor: remove redundant legend from search output Remove legend from search/timeline results since it's already shown in SessionStart context. Saves ~30 tokens per search result. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * Refactor session summary rendering to remove links - Removed link generation for session summaries in context generation and search manager. - Updated output formatting to exclude links while maintaining the session summary structure. - Adjusted related components in TimelineService to ensure consistency across the application. * fix: move skillPath declaration outside try block to fix scoping bug The skillPath variable was declared inside the try block but referenced in the catch block for error logging. Since const is block-scoped, this would cause a ReferenceError when the error handler executes. Moved skillPath declaration before the try block so it's accessible in both try and catch scopes. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * fix: address PR #317 code review feedback **Critical Fixes:** - Replace happy_path_error__with_fallback debug calls with proper logger methods in mcp-server.ts - All HTTP API calls now use logger.debug/error for consistent logging **Code Quality Improvements:** - Extract 90-day recency window magic numbers to named constants - Added RECENCY_WINDOW_DAYS and RECENCY_WINDOW_MS constants in SearchManager **Documentation:** - Document model cost implications of Haiku → Sonnet upgrade in CHANGELOG - Provide clear migration path for users who want to revert to Haiku 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * refactor: simplify CHANGELOG - remove cost documentation Removed model cost comparison documentation per user feedback. Kept only the technical code quality improvements. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com> Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com> Co-authored-by: Alex Newman <thedotmack@users.noreply.github.com>
266 lines
5.7 KiB
Markdown
266 lines
5.7 KiB
Markdown
# Version Bump Reference
|
|
|
|
Quick reference for version bump commands and file locations.
|
|
|
|
## File Locations
|
|
|
|
### Version-Tracked Files (ALL THREE)
|
|
|
|
1. **package.json**
|
|
- Path: `package.json`
|
|
- Line: 3
|
|
- Format: `"version": "X.Y.Z",`
|
|
|
|
2. **marketplace.json**
|
|
- Path: `.claude-plugin/marketplace.json`
|
|
- Line: 13
|
|
- Format: `"version": "X.Y.Z",`
|
|
|
|
3. **plugin.json**
|
|
- Path: `plugin/.claude-plugin/plugin.json`
|
|
- Line: 3
|
|
- Format: `"version": "X.Y.Z",`
|
|
|
|
## Essential Commands
|
|
|
|
### View Current Version
|
|
|
|
```bash
|
|
# From package.json
|
|
grep '"version"' package.json
|
|
|
|
# Extract just the version number
|
|
grep '"version"' package.json | head -1 | sed 's/.*"version": "\(.*\)".*/\1/'
|
|
|
|
# From all version files
|
|
grep '"version"' package.json .claude-plugin/marketplace.json plugin/.claude-plugin/plugin.json
|
|
```
|
|
|
|
### Verify Version Consistency
|
|
|
|
```bash
|
|
# Check all JSON files match
|
|
grep '"version"' package.json .claude-plugin/marketplace.json plugin/.claude-plugin/plugin.json
|
|
|
|
# Should output identical version in all three:
|
|
# package.json:3: "version": "5.3.0",
|
|
# .claude-plugin/marketplace.json:13: "version": "5.3.0",
|
|
# plugin/.claude-plugin/plugin.json:3: "version": "5.3.0",
|
|
```
|
|
|
|
### Git Commands
|
|
|
|
```bash
|
|
# View recent commits
|
|
git log --oneline -5
|
|
|
|
# View changes since last tag
|
|
LAST_TAG=$(git describe --tags --abbrev=0)
|
|
git log $LAST_TAG..HEAD --oneline
|
|
git diff $LAST_TAG..HEAD
|
|
|
|
# List all tags
|
|
git tag -l
|
|
|
|
# View tag details
|
|
git show vX.Y.Z
|
|
|
|
# List tags with messages
|
|
git tag -l -n1
|
|
```
|
|
|
|
### Build and Test
|
|
|
|
```bash
|
|
# Build plugin
|
|
npm run build
|
|
|
|
# Sync to marketplace
|
|
npm run sync-marketplace
|
|
|
|
# Run tests (if available)
|
|
npm test
|
|
```
|
|
|
|
### Commit and Tag
|
|
|
|
```bash
|
|
# Stage version files
|
|
git add package.json .claude-plugin/marketplace.json plugin/.claude-plugin/plugin.json plugin/scripts/
|
|
|
|
# Commit
|
|
git commit -m "Release vX.Y.Z: [Description]"
|
|
|
|
# Create tag
|
|
git tag vX.Y.Z -m "Release vX.Y.Z: [Description]"
|
|
|
|
# Push
|
|
git push && git push --tags
|
|
```
|
|
|
|
### GitHub Release
|
|
|
|
```bash
|
|
# Create release
|
|
gh release create vX.Y.Z --title "vX.Y.Z" --notes "[Release notes]"
|
|
|
|
# Create with auto-generated notes
|
|
gh release create vX.Y.Z --title "vX.Y.Z" --generate-notes
|
|
|
|
# View release
|
|
gh release view vX.Y.Z
|
|
|
|
# List all releases
|
|
gh release list
|
|
|
|
# Delete release (if needed)
|
|
gh release delete vX.Y.Z
|
|
```
|
|
|
|
## Semantic Versioning Rules
|
|
|
|
### Version Format: MAJOR.MINOR.PATCH
|
|
|
|
**MAJOR (X.0.0):**
|
|
- Breaking changes
|
|
- Incompatible API changes
|
|
- Schema changes requiring migration
|
|
- Removes features
|
|
|
|
**MINOR (x.Y.0):**
|
|
- New features (backward compatible)
|
|
- New functionality
|
|
- Deprecations (but not removals)
|
|
- Resets PATCH to 0
|
|
|
|
**PATCH (x.y.Z):**
|
|
- Bug fixes
|
|
- Performance improvements
|
|
- Documentation fixes
|
|
- No new features
|
|
|
|
### Incrementing Rules
|
|
|
|
```
|
|
PATCH: 5.3.2 → 5.3.3
|
|
MINOR: 5.3.2 → 5.4.0 (resets patch)
|
|
MAJOR: 5.3.2 → 6.0.0 (resets minor and patch)
|
|
```
|
|
|
|
## Common Patterns
|
|
|
|
### Bug Fix Release
|
|
|
|
```bash
|
|
# Example: 5.3.0 → 5.3.1
|
|
# 1. Update all three files to 5.3.1
|
|
# 2. Build and test
|
|
npm run build
|
|
# 3. Commit and tag
|
|
git add package.json .claude-plugin/marketplace.json plugin/.claude-plugin/plugin.json plugin/scripts/
|
|
git commit -m "Release v5.3.1: Fixed observer crash"
|
|
git tag v5.3.1 -m "Release v5.3.1: Fixed observer crash"
|
|
git push && git push --tags
|
|
# 4. Create release
|
|
gh release create v5.3.1 --title "v5.3.1" --notes "Fixed observer crash on empty content"
|
|
```
|
|
|
|
### Feature Release
|
|
|
|
```bash
|
|
# Example: 5.3.0 → 5.4.0
|
|
# 1. Update all three files to 5.4.0
|
|
# 2. Build and test
|
|
npm run build
|
|
# 3. Commit and tag
|
|
git add package.json .claude-plugin/marketplace.json plugin/.claude-plugin/plugin.json plugin/scripts/
|
|
git commit -m "Release v5.4.0: Added dark mode support"
|
|
git tag v5.4.0 -m "Release v5.4.0: Added dark mode support"
|
|
git push && git push --tags
|
|
# 4. Create release
|
|
gh release create v5.4.0 --title "v5.4.0" --generate-notes
|
|
```
|
|
|
|
### Breaking Change Release
|
|
|
|
```bash
|
|
# Example: 5.3.0 → 6.0.0
|
|
# 1. Update all three files to 6.0.0
|
|
# 2. Build and test
|
|
npm run build
|
|
# 3. Commit and tag
|
|
git add package.json .claude-plugin/marketplace.json plugin/.claude-plugin/plugin.json plugin/scripts/
|
|
git commit -m "Release v6.0.0: Storage layer redesign"
|
|
git tag v6.0.0 -m "Release v6.0.0: Storage layer redesign"
|
|
git push && git push --tags
|
|
# 4. Create release with warning
|
|
gh release create v6.0.0 --title "v6.0.0" --notes "⚠️ Breaking change: Storage layer redesigned. Migration required."
|
|
```
|
|
|
|
## Rollback Commands
|
|
|
|
### Delete Tag
|
|
|
|
```bash
|
|
# Delete local tag
|
|
git tag -d vX.Y.Z
|
|
|
|
# Delete remote tag
|
|
git push origin :refs/tags/vX.Y.Z
|
|
# Or: git push --delete origin vX.Y.Z
|
|
```
|
|
|
|
### Delete Release
|
|
|
|
```bash
|
|
# Delete GitHub release
|
|
gh release delete vX.Y.Z
|
|
|
|
# Confirm deletion
|
|
gh release delete vX.Y.Z --yes
|
|
```
|
|
|
|
### Revert Commit
|
|
|
|
```bash
|
|
# Revert last commit (creates new commit)
|
|
git revert HEAD
|
|
|
|
# Reset to previous commit (destructive)
|
|
git reset --hard HEAD~1
|
|
git push --force # Dangerous! Only if not shared
|
|
```
|
|
|
|
## Error Prevention
|
|
|
|
### Pre-commit Checks
|
|
|
|
```bash
|
|
# Check all versions match before committing
|
|
V1=$(grep '"version"' package.json | head -1 | sed 's/.*"\([^"]*\)".*/\1/')
|
|
V2=$(grep '"version"' .claude-plugin/marketplace.json | sed 's/.*"\([^"]*\)".*/\1/')
|
|
V3=$(grep '"version"' plugin/.claude-plugin/plugin.json | head -1 | sed 's/.*"\([^"]*\)".*/\1/')
|
|
|
|
if [ "$V1" = "$V2" ] && [ "$V2" = "$V3" ]; then
|
|
echo "✓ All versions match: $V1"
|
|
else
|
|
echo "✗ Version mismatch!"
|
|
echo " package.json: $V1"
|
|
echo " marketplace.json: $V2"
|
|
echo " plugin.json: $V3"
|
|
fi
|
|
```
|
|
|
|
### Pre-push Checks
|
|
|
|
```bash
|
|
# Check tag exists
|
|
git tag -l | grep vX.Y.Z || echo "Warning: Tag not created"
|
|
|
|
# Check build succeeds
|
|
npm run build || echo "Error: Build failed"
|
|
|
|
# Check no uncommitted changes
|
|
git status --porcelain | grep -q . && echo "Warning: Uncommitted changes"
|
|
```
|