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>
219 lines
5.3 KiB
Markdown
219 lines
5.3 KiB
Markdown
# Common Version Bump Scenarios
|
|
|
|
Real-world examples of version bumps with decision rationale.
|
|
|
|
## Scenario 1: Bug Fix After Testing
|
|
|
|
**User request:**
|
|
> "Fixed the memory leak in the search function"
|
|
|
|
**Analysis:**
|
|
- What changed: Bug fix
|
|
- Breaking changes: No
|
|
- New features: No
|
|
- **Decision: PATCH**
|
|
|
|
**Workflow:**
|
|
```
|
|
Current: 4.2.8
|
|
New: 4.2.9 (PATCH)
|
|
|
|
Steps:
|
|
1. Update all three files to 4.2.9
|
|
2. npm run build
|
|
3. git commit -m "Release v4.2.9: Fixed memory leak in search"
|
|
4. git tag v4.2.9 -m "Release v4.2.9: Fixed memory leak in search"
|
|
5. git push && git push --tags
|
|
6. gh release create v4.2.9 --title "v4.2.9" --notes "Fixed memory leak in search function"
|
|
```
|
|
|
|
## Scenario 2: New Feature Added
|
|
|
|
**User request:**
|
|
> "Added web search MCP integration"
|
|
|
|
**Analysis:**
|
|
- What changed: New feature (MCP integration)
|
|
- Breaking changes: No
|
|
- Backward compatible: Yes
|
|
- **Decision: MINOR**
|
|
|
|
**Workflow:**
|
|
```
|
|
Current: 4.2.8
|
|
New: 4.3.0 (MINOR - reset patch to 0)
|
|
|
|
Steps:
|
|
1. Update all three files to 4.3.0
|
|
2. npm run build
|
|
3. git commit -m "Release v4.3.0: Added web search MCP integration"
|
|
4. git tag v4.3.0 -m "Release v4.3.0: Added web search MCP integration"
|
|
5. git push && git push --tags
|
|
6. gh release create v4.3.0 --title "v4.3.0" --generate-notes
|
|
```
|
|
|
|
## Scenario 3: Database Schema Redesign
|
|
|
|
**User request:**
|
|
> "Rewrote storage layer, old data needs migration"
|
|
|
|
**Analysis:**
|
|
- What changed: Storage layer rewrite
|
|
- Breaking changes: Yes (requires migration)
|
|
- Backward compatible: No
|
|
- **Decision: MAJOR**
|
|
|
|
**Workflow:**
|
|
```
|
|
Current: 4.2.8
|
|
New: 5.0.0 (MAJOR - reset minor and patch to 0)
|
|
|
|
Steps:
|
|
1. Update all three files to 5.0.0
|
|
2. npm run build
|
|
3. git commit -m "Release v5.0.0: Storage layer redesign with migration required"
|
|
4. git tag v5.0.0 -m "Release v5.0.0: Storage layer redesign"
|
|
5. git push && git push --tags
|
|
6. gh release create v5.0.0 --title "v5.0.0" --notes "⚠️ Breaking change: Storage layer redesigned. Migration required."
|
|
```
|
|
|
|
## Scenario 4: Multiple Small Bug Fixes
|
|
|
|
**User request:**
|
|
> "Fixed three bugs: observer crash, viewer pagination, and date formatting"
|
|
|
|
**Analysis:**
|
|
- What changed: Multiple bug fixes
|
|
- Breaking changes: No
|
|
- New features: No
|
|
- **Decision: PATCH** (one patch covers all fixes)
|
|
|
|
**Workflow:**
|
|
```
|
|
Current: 4.2.8
|
|
New: 4.2.9 (PATCH)
|
|
|
|
Steps:
|
|
1. Update all three files to 4.2.9
|
|
2. npm run build
|
|
3. git commit -m "Release v4.2.9: Multiple bug fixes
|
|
|
|
- Fixed observer crash on empty content
|
|
- Fixed viewer pagination edge case
|
|
- Fixed date formatting in timeline"
|
|
4. git tag v4.2.9 -m "Release v4.2.9: Multiple bug fixes"
|
|
5. git push && git push --tags
|
|
6. gh release create v4.2.9 --title "v4.2.9" --generate-notes
|
|
```
|
|
|
|
## Scenario 5: Feature + Bug Fix
|
|
|
|
**User request:**
|
|
> "Added dark mode support and fixed the viewer crash bug"
|
|
|
|
**Analysis:**
|
|
- What changed: New feature + bug fix
|
|
- Breaking changes: No
|
|
- **Decision: MINOR** (feature trumps bug fix)
|
|
|
|
**Workflow:**
|
|
```
|
|
Current: 5.1.0
|
|
New: 5.2.0 (MINOR)
|
|
|
|
Steps:
|
|
1. Update all three files to 5.2.0
|
|
2. npm run build
|
|
3. git commit -m "Release v5.2.0: Dark mode support + bug fixes
|
|
|
|
Features:
|
|
- Added dark mode toggle to viewer UI
|
|
|
|
Bug fixes:
|
|
- Fixed viewer crash on empty database"
|
|
4. git tag v5.2.0 -m "Release v5.2.0: Dark mode support"
|
|
5. git push && git push --tags
|
|
6. gh release create v5.2.0 --title "v5.2.0" --generate-notes
|
|
```
|
|
|
|
## Scenario 6: Documentation Only
|
|
|
|
**User request:**
|
|
> "Updated README with new installation instructions"
|
|
|
|
**Analysis:**
|
|
- What changed: Documentation only
|
|
- Breaking changes: No
|
|
- Code changes: No
|
|
- **Decision: PATCH** (or skip version bump if no code changes)
|
|
|
|
**Workflow:**
|
|
```
|
|
Option 1: PATCH (if you want to tag doc improvements)
|
|
Current: 4.2.8
|
|
New: 4.2.9
|
|
|
|
Option 2: No version bump (documentation-only changes don't require versioning)
|
|
Just commit without bumping version
|
|
```
|
|
|
|
**Recommendation:** Skip version bump for documentation-only changes unless it's a significant documentation overhaul.
|
|
|
|
## Scenario 7: Configuration Change
|
|
|
|
**User request:**
|
|
> "Changed default observation count from 50 to 30"
|
|
|
|
**Analysis:**
|
|
- What changed: Default configuration
|
|
- Breaking changes: Yes (behavior changes)
|
|
- Users might notice different context size
|
|
- **Decision: MINOR or MAJOR** (ask user)
|
|
|
|
**Workflow:**
|
|
```
|
|
Ask user:
|
|
"This changes default behavior (context size). Users will see different results.
|
|
Is this:
|
|
- MINOR (acceptable behavior change): 4.2.8 → 4.3.0
|
|
- MAJOR (breaking change): 4.2.8 → 5.0.0
|
|
|
|
Which should I use?"
|
|
```
|
|
|
|
## Scenario 8: Dependency Update
|
|
|
|
**User request:**
|
|
> "Updated Claude SDK from 1.2.0 to 1.3.0"
|
|
|
|
**Analysis:**
|
|
- What changed: Dependency version
|
|
- Breaking changes: Depends on SDK changes
|
|
- **Decision: Ask user or check SDK changelog**
|
|
|
|
**Workflow:**
|
|
```
|
|
1. Check SDK changelog for breaking changes
|
|
2. If SDK has breaking changes → MAJOR
|
|
3. If SDK adds features → MINOR
|
|
4. If SDK only fixes bugs → PATCH
|
|
|
|
Typical: PATCH (unless SDK breaks compatibility)
|
|
```
|
|
|
|
## Decision Tree
|
|
|
|
```
|
|
Is there a breaking change?
|
|
├─ Yes → MAJOR (X.0.0)
|
|
└─ No
|
|
├─ Is there a new feature?
|
|
│ ├─ Yes → MINOR (x.Y.0)
|
|
│ └─ No
|
|
│ ├─ Is there a bug fix?
|
|
│ │ ├─ Yes → PATCH (x.y.Z)
|
|
│ │ └─ No → Don't bump version (docs only, etc.)
|
|
│ └─ Configuration change? → Ask user (MINOR or MAJOR)
|
|
└─ Multiple changes? → Use highest level (MAJOR > MINOR > PATCH)
|
|
```
|