@shirokuma-library/mcp-knowledge-base
Version:
Shirokuma MCP Server for comprehensive knowledge management including issues, plans, documents, and work sessions. All stored data is structured for AI processing, not human readability.
776 lines (645 loc) • 34 kB
Markdown
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
## [0.7.9] - 2025-08-04
### Fixed
- **Database Rebuild**: Fixed db_metadata version not updating during rebuild (Issue #79)
- Added schema_version update in rebuild-db.ts
- Ensures database version is correctly tracked after rebuild
- **Global Command**: Fixed shirokuma-mcp-knowledge-base-rebuild command not working (Issue #80)
- Corrected process.argv[1] check logic for global installation
- Command now works properly when installed globally
- **Version Field**: Fixed missing version field implementation in MCP handlers (Issue #81)
- Added version field support in create/update operations
- Version information now properly saved and retrieved
- Added strict format validation (X.Y.Z format only)
- Added overflow protection (max 99999 per segment)
- Version values are normalized in database for proper comparison
## [0.7.8] - 2025-08-04
### Changed
- Enhanced database initialization with unified flow
- Improved rebuild process with better table existence checking
- Moved transaction management to base repository level
- Enhanced search query parser with better whitespace handling
### Fixed
- Database initialization now properly checks table existence before MCP server starts
- Removed duplicate code in rebuild process
- Fixed transaction handling in database operations
## [0.7.7] - 2025-08-03
### Fixed
- **MCP Server Stability**: Resolved stdout corruption issues that caused MCP server crashes on reconnect
- Fixed stdio output filtering to only allow JSON-RPC messages
- Properly suppress all logging in MCP production mode
- Added environment detection for MCP vs test modes
- **Database Auto-Rebuild**: Fixed automatic rebuild when creating new database with existing markdown files
- Database now automatically imports existing markdown files on first initialization
- Added `needs_rebuild` flag to track when rebuild is required
- Fixed rebuild script compatibility with TypeScript execution
- **Test Environment**: Ensured console output works properly in test environment
- Tests no longer affected by MCP output suppression
- Fixed rebuild-db script to detect both .js and .ts execution
### Changed
- Cleaned up experimental code from stdio-guard module
- Improved error handling for database version mismatches
## [0.7.5] - 2025-08-02
### Added
- **Advanced Search with Boolean Operators**: Full support for AND/OR/NOT operators in search queries
- Explicit boolean operators: `bug AND fix`, `bug OR error`, `NOT deprecated`
- Negation prefix: `-tags:old`
- Parentheses for grouping: `(bug OR error) AND critical`
- Operator precedence: NOT > AND > OR
- Combined with field-specific searches: `title:bug AND content:fix`
- **Expression Tree Parser**: New recursive descent parser for complex search queries
- Handles nested expressions and proper operator precedence
- Converts to optimized FTS5 queries
- Backward compatible with simple searches
### Changed
- **Database Rebuild Improved**: `rebuild-db` command now preserves MCP connections
- Drops and recreates tables instead of deleting database file
- No server restart required - operations can continue immediately
- Preserves all data integrity while maintaining active connections
- For forced clean rebuild, manually delete database file first: `rm .shirokuma/data/search.db`
- Removed redundant `rebuild-db-safe` command
## [0.7.4] - 2025-08-01
### Fixed
- **Strict Parameter Validation**: All API calls now reject unknown parameters
- Prevents silent failures when invalid fields are provided
- Improves error messages for API misuse
- Ensures API contract is strictly enforced
## [0.7.3] - 2025-08-01
### Fixed
- **File Indexing**: Fixed error when running `index_codebase` from git subdirectories
- Removed redundant `.git` directory check that failed in subdirectories
- Relies on `git ls-files` error handling for repository validation
- Subdirectories now correctly index only their contained files (standard git behavior)
## [0.7.2] - 2025-08-01
### Fixed
- **Migration Tool**: Fixed issue where code examples in document content were incorrectly processed
- Now strictly processes only YAML frontmatter
- Ignores `related_tasks` and `related_documents` in document body
- Prevents corruption of documentation files containing code examples
## [0.7.1] - 2025-08-01
### Added
- **Related Field Migration Tool**: New command to migrate from old format to unified field
- `shirokuma-mcp-knowledge-base-migrate-related` command for global installations
- Converts `related_tasks` and `related_documents` to unified `related` field
- Creates backup files by default (use `--no-backup` to skip)
- Safe to run multiple times (idempotent)
- **Current State Metadata Support**: Enhanced current_state with YAML frontmatter
- Structured metadata including title, tags, related items, and updated_by
- Maintains backward compatibility with plain text format
- **Database Comparison Tools**: New tools for database verification in `.claude/tools/`
- `compare-databases.sh`: Comprehensive database comparison
- `dump-database-details.sh`: Detailed database content dump
- `verify-rebuild-content.sh`: Item-by-item content verification
- **Pre-commit Test Check**: ai-commit command now runs tests before committing
- Prevents broken code from being committed
- Stops commit process if any tests fail
### Changed
- **Unified Related Field**: Consolidated `related_tasks` and `related_documents` into single `related` field
- Simplifies data structure and API
- Automatic merging during creation and updates
- Full backward compatibility maintained
- Enhanced test documentation with automated database comparison tools
### Fixed
- Dailies date filtering test using correct `date` parameter instead of `id`
- Frontmatter spacing issues in migration tool (only processes frontmatter, preserves content)
## [0.7.0] - 2025-07-31
### Added
- **File Indexing**: Semantic code search functionality for git-managed projects
- New MCP tools: `index_codebase`, `search_code`, `get_related_files`, `get_index_status`
- Vector embeddings using all-MiniLM-L6-v2 model for semantic similarity
- Normalized database structure with files and file_chunks tables for efficient storage
- Support for .shirokumaignore file to customize indexing patterns
- Environment variable support for index.db location (follows MCP_DATABASE_PATH)
- Automatic incremental updates based on file content hashes
- **Enhanced Multi-word Search**: Improved full-text search functionality
- Proper AND logic for multi-word queries (all words must be present)
- Fixed pagination count for multi-word searches
- Comprehensive test coverage for search edge cases
### Changed
- Updated ai-start command to support session descriptions instead of just titles
- Now creates more descriptive session records with context
- Improved workflow for work session tracking
### Fixed
- Security: Removed path parameter from index_codebase tool to prevent arbitrary directory indexing
- Full-text search count method now correctly handles multi-word queries
- Test failures in fulltext-search.test.ts and server.test.ts
### Technical Details
- File indexing creates semantic embeddings of code chunks (30 lines per chunk)
- Uses SQLite with JSON storage for vector embeddings
- Implements cosine similarity for semantic search
- Supports multiple file types including programming languages, configs, and documentation
- Database normalization achieves ~82% storage reduction compared to flat structure
## [0.6.3] - 2025-07-31
### Changed
- **BREAKING**: Optimized get_items API response structure
- Returns new ListItem type instead of UnifiedItem for list operations
- Excludes content field to reduce data transfer size
- Includes description field for list summaries
- Removed JSON pretty-printing for more compact responses
- Fixed ai-finish.md and ai-start.md command files to match API implementation
- ai-finish: Added proper conditional flow for daily creation/update
- ai-start: Removed non-existent category field, changed related_tasks to related
### Added
- New ListItem type for lightweight list responses
- Comprehensive field validation tests to ensure correct API output
- Test case 1.14 for field validation in MCP test suite
### Fixed
- Removed redundant related_tasks/related_documents fields in favor of unified related field
- Updated all tests to expect compact JSON format
## [0.6.2] - 2025-07-31
### Fixed
- Critical JSON parsing errors in MCP protocol communication
- Removed all console output that was polluting stdio
- Disabled winston logging in production MCP mode
- Removed sqlite3 verbose mode to prevent debug output
- Added stdio guard utility to redirect unwanted output to log files
- Fixed "Unexpected non-whitespace character at position 4" errors
### Changed
- Enhanced environment configuration for development vs production modes
- NODE_ENV=development automatically enables logging
- Production mode (default) suppresses all output for clean MCP protocol
- Added npm scripts for explicit mode control
## [0.6.1] - 2025-07-30
### Added
- CLAUDE.md.example file providing guidance template for AI assistants in English
- CLAUDE.md.ja.example file providing guidance template for AI assistants in Japanese
### Changed
- Consolidated StatusRepositoryV2 into main StatusRepository implementation
- Updated .gitignore to better handle database directory structures
### Removed
- Redundant v2 repository files (status-repository-v2.ts, tag-repository-v2.ts)
- Unused v2 handler files (status-handlers-v2.ts, tag-handlers-v2.ts)
- Obsolete test files (item-repository.test.ts, change-type-handlers.test.ts)
### Documentation
- Enhanced test case 1.13 with proper test ID and prerequisites
- Added comprehensive CLAUDE.md examples for project-specific AI guidance
## [0.6.0] - 2025-07-30
### Added
- **Application State Management**: New `get_current_state` and `update_current_state` tools for persisting application-wide state across sessions
- **Type Change Functionality**: New `change_item_type` tool to change an item's type within the same base_type category
- Automatically creates new item with new ID and updates all references
- Supports both task-based and document-based type changes
- **Type Description Updates**: New `update_type` tool to modify type descriptions
### Changed
- Documentation reorganized to separate user-facing and developer documentation
- Updated .npmignore to properly include user documentation while excluding developer docs
- Enhanced API documentation with new features and examples
### Fixed
- Fixed ItemRepository incompatibility issue between different implementations using dynamic imports
- Fixed reference update bug when changing item types - now correctly updates all related items
## [0.5.3] - 2025-07-30
### Fixed
- Prevent tag deletion when the tag is being used by items
- Displays error with count of items using the tag
- Only unused tags can be deleted
- Title validation to prevent empty titles on item creation
### Added
- AI testing commands for development workflow
- `/ai-commit` command for automated commit management
- `/ai-tests` command for comprehensive MCP functional testing
- Test case files for systematic validation
### Changed
- Updated .gitignore to preserve .claude/commands/ directory
- Simplified test case documentation to reference command usage
## [0.4.2] - 2025-07-29
### Security
- **Critical Fix**: Path traversal vulnerability in session ID handling
- Added comprehensive validation for file paths and IDs
- Prevents directory traversal attacks (e.g., `../../etc/passwd`)
- Multi-layer defense: Zod schemas, repository validation, and file path checks
### Added
- **Monkey Testing**: Extensive stress testing with edge cases
- Unicode and emoji handling verification
- SQL injection prevention testing
- Concurrent operation testing
- Large dataset handling (50+ tags per item)
- Custom type creation and usage validation
### Changed
- Enhanced input validation across all ID parameters
- Improved error messages for invalid input formats
### Fixed
- Security vulnerability where malicious session IDs could create files outside data directory
### Documentation
- **Major Documentation Reorganization**:
- Separated user documentation (`docs/user/`) from developer resources (`docs/developer/`)
- Created internal documentation directory (`docs/internal/`) for project-specific docs
- Consolidated release notes and migration guides under `docs/releases/`
- Japanese documentation now mirrors English structure under `docs/ja/`
- Added comprehensive navigation READMEs for each directory
- Created new guides: quickstart, installation, usage guides for users
- Added developer guides: database design, API architecture, debugging
- Implemented redirect files for backward compatibility
- **Documentation Cleanup**:
- Removed obsolete `docs.ja/` directory
- Cleaned up old documentation files with appropriate redirects
- Improved documentation discoverability with clear structure
## [0.4.1] - 2025-07-29
### Added
- **Test Coverage Improvements**: Achieved 80.33% function coverage (up from 44.54%)
- Added 500+ new tests across the codebase
- Comprehensive security layer tests (input sanitizer, rate limiter, access control)
- Edge case handling tests for Unicode, special characters, and validation
- MCP protocol test suite with 12 categories and 200+ test cases
- **Development Documentation**:
- Test results documentation in `/docs/test-results/`
- Updated test case documentation with discovered behaviors
- Code quality metrics in README
### Changed
- **Code Quality Improvements**:
- Removed all TypeScript `any` types (249 → 0)
- Enhanced type safety throughout the codebase
- Improved error messages and validation
- Better separation of concerns in test files
### Fixed
- Session update now correctly preserves the date field
- Empty tags handling (returns null instead of empty array from markdown)
- Build errors in test files (missing properties, incorrect types)
- Markdown parser handling of numeric strings with leading zeros
- Path traversal test expectations in security tests
### Removed
- **Code Cleanup**: Removed 11 unused files (approximately 1500 lines)
- Obsolete dependency container and related tests
- Unused error handling utilities and middleware
- Deprecated performance utilities
- Dead code in various utility modules
## [0.4.0] - 2025-07-29
### Added
- **Unified Repository System**: Complete consolidation of all repository classes
- New `ItemRepository` handles all item types (issues, plans, docs, knowledge, sessions, dailies)
- Unified handlers for consistent API across all content types
- Full-text search capability with dedicated `FulltextSearchRepository`
- String utilities for enhanced text processing
- **Search Enhancements**:
- New search handlers for improved content discovery
- Full-text search across all content types
- Better search result ranking and relevance
### Changed
- **BREAKING**: Consolidated TaskRepository and DocumentRepository into single ItemRepository
- All item operations now go through unified repository layer
- Consistent error handling and validation across all types
- Improved performance with optimized queries
- **Architecture Improvements**:
- Simplified repository structure reduces code duplication
- Better separation of concerns with dedicated search repository
- Enhanced type safety with unified type system
### Removed
- TaskRepository and DocumentRepository classes (replaced by ItemRepository)
- Separate item handlers (replaced by unified handlers)
- Task repository helper functions (functionality integrated into ItemRepository)
- Redundant test files for removed components
### Fixed
- Test result files no longer tracked in version control
- Development scripts properly excluded from repository
## [0.3.0] - 2025-07-28
### Added
- **Unified Items API**: Sessions and daily summaries are now accessible through the standard items API
- `get_items` now supports 'sessions' and 'dailies' types
- `create_item` supports session-specific parameters (datetime, id, category)
- `create_item` supports dailies-specific parameter (date)
- Date range filtering with type-specific behavior:
- Sessions/dailies: Filter by start_date field
- Other types: Filter by updated_at field
- `limit` parameter for pagination and getting latest items
- **get_latest_session replacement**: Use `get_items(type: 'sessions', limit: 1)`
- Comprehensive integration tests for API unification
### Changed
- ItemRepository now handles sessions and dailies as special types
- Enhanced create_item to support custom datetime and IDs for sessions
- Updated API documentation to reflect unified approach
### Deprecated
- Session-specific APIs (get_sessions, create_session, update_session, etc.)
- Daily summary-specific APIs (get_summaries, create_summary, update_summary, etc.)
- Use the unified items API instead for all operations
## [0.2.0] - 2025-01-27
### Changed
- **BREAKING**: Complete database unification using Single Table Inheritance pattern
- All content types now stored in unified `items` table
- Replaced separate tables (search_tasks, search_documents, search_sessions, search_daily_summaries)
- All IDs standardized to TEXT type for consistency
- Composite primary keys (type, id) for all items
- JSON arrays for tags and related items storage
- Related tables unified: item_tags and related_items
- **BREAKING**: Changed `statusIds` parameter to `statuses` in get_items API
- Now accepts status names (strings) instead of IDs (numbers)
- Example: `statuses: ["Open", "In Progress"]` instead of `statusIds: [1, 2]`
- Empty array now returns no results (previously returned all results)
### Added
- ItemRepository as central data access layer for all item types
- Support for dynamic custom types via sequences table lookup
- Unified API for all content operations (get_items, create_item, etc.)
- Backward compatibility in response formats where needed for tests
### Fixed
- Database column name issue: changed `last_id` to `current_value` in sequences table
- All 409 tests now passing (359 unit tests + 45 integration tests + 5 E2E tests)
- Response format consistency across all handlers
- ID type consistency (all IDs now TEXT)
- Empty status filter array now correctly returns no results
### Technical Details
- Single unified `items` table schema:
- Common fields: type, id, title, description, content, priority, status_id
- Task-specific: start_date, end_date
- Session-specific: start_time
- JSON storage: tags, related (for relationships)
- Simplified repository architecture with ItemRepository handling all types
- Type validation through sequences table with base_type field
- Maintained backward compatibility for existing API consumers
## [0.1.1] - 2025-01-27
### Removed
- Session category field - tags provide sufficient categorization
- Removed `category` parameter from create_session and update_session tools
- Removed category field from WorkSession type
- Created migration script to remove category from existing markdown files
- Updated all tests and documentation
### Fixed
- MaxListenersExceededWarning in tests by properly configuring Jest setup
- Added jest.presetup.js to increase EventEmitter limits before module loading
- Warnings no longer appear during test execution
## [0.1.0] - 2025-01-27
> **Note**: E2E tests require special setup due to MCP SDK module resolution issues.
> They are currently excluded from the standard test suite but can be run separately.
> This is a known limitation that will be addressed in a future release.
### Added
- Comprehensive type safety improvements throughout the codebase
- Base repository pattern with proper interfaces
- Dependency injection and IoC container
- Performance optimization utilities (caching, batching, monitoring)
- Security layers (input sanitization, rate limiting, RBAC)
- E2E testing framework with MCP protocol testing
- Mock and stub utilities for testing
- Database type definitions for better type safety
- Error handling middleware and custom error classes
- Repository factory pattern
- Test helpers and utilities
- Comprehensive documentation (API, Contributing, Upgrade guides)
### Changed
- Reduced `any` types from 242 to 175 (27% reduction)
- Improved repository structure with base classes and interfaces
- Enhanced error handling with proper error types
- Separated unit, integration, and E2E tests
- Updated build configuration for better type checking
- Improved logging with configurable levels
- Enhanced test setup with console output suppression
### Fixed
- TypeScript build errors with proper type constraints
- Test failures due to console.log output
- E2E test configuration issues with MCP SDK
- Generic type constraints in base repository
- Database connection type mismatches
### Security
- Added comprehensive input sanitization
- Implemented rate limiting with token bucket algorithm
- Added role-based access control (RBAC)
- Path traversal prevention
- SQL injection prevention
- XSS prevention
### Performance
- Added memory caching for frequently accessed data
- Implemented batch processing for bulk operations
- Added performance monitoring utilities
- Query result caching with TTL
- Optimized database queries
## [0.0.11] - 2025-07-26
### Added
- Custom datetime parameter for create_session
- New `datetime` parameter allows creating sessions with past timestamps
- Enables historical data migration and import
- ISO 8601 datetime format support
- Cross-reference fields for all item types
- `related_tasks` field added to documents, sessions, and summaries
- `related_documents` field added to all item types (issues, plans, docs, knowledge, sessions, summaries)
- Normalized database tables for relationship storage
- MCP tool definitions updated with new fields
### Changed
- Session ID format changed to `YYYY-MM-DD-HH.MM.SS.sss`
- More readable format with dots as separators
- Example: `2025-01-26-14.30.52.123`
- Enhanced item relationships
- All item types can now reference related tasks (e.g., ["issues-1", "plans-2"])
- All item types can now reference related documents (e.g., ["docs-1", "knowledge-2"])
- Database schema extended with related_documents table
- **Database connection pattern changed to per-request connections**
- Each API call now creates a fresh database connection
- Automatically handles database rebuild scenarios without restart
- Eliminates connection state issues
- Small performance trade-off (~10-15ms) for improved reliability
### Technical Details
- Database schema changes:
- New `related_documents` table for document relationships
- Indexes added for efficient relationship queries
- Support for both integer and string IDs in relationships
- Updated all handlers to pass through relationship fields
- Extended Zod schemas for validation of new fields
- Removed persistent database connection in favor of per-request pattern
- No more initialization on server startup
- Database connections are created and closed for each tool call
## [0.0.10] - 2025-07-26
### Added
- Related tasks support for issues and plans
- New `related_tasks` field in create_item and update_item tools
- Array of task references (e.g., ["issues-1", "plans-2"])
- Comprehensive unit tests for related tasks functionality
### Fixed
- MCP tool definitions missing related_tasks field
- Enhanced unit test coverage for edge cases
### Changed
- Improved test coverage for tag search functionality
- Added tests for partial matching and special characters in tag searches
## [0.0.9] - 2025-07-26
### Fixed
- Fixed :memory: directory creation issue in status-filtering tests
- Corrected FileIssueDatabase constructor parameter order
- Fixed test failures across all test suites
- Method name mismatches in repository tests
- TypeScript compilation errors in test files
- Mock implementations updated to match actual interfaces
- Session handler tests with proper WorkSessionManager setup
### Added
- Comprehensive test coverage achieving 100% pass rate (215 passing tests)
- New test suites for better coverage:
- Error handling tests with proper skip annotations
- Item handlers tests for MCP response format
- Search repository tests with correct table setup
- Session handlers tests with correct mock setup
- Status filtering tests with sequential task creation
- Status handlers tests for markdown format
- Summary handlers tests with WorkSessionManager
- Tag handlers tests avoiding :memory: directory issue
- Task repository tests for unified task handling
- Test annotations in AI annotation rules (@ai-skip, @ai-reason, @ai-todo, @ai-note)
- CHANGELOG.md and version management guidelines to commit documentation
### Changed
- Improved test organization with intentionally skipped tests (4 tests) properly documented
- Updated AI annotation rules to include testing tags
- Enhanced commit guidelines with version management section
## [0.0.8] - 2025-07-25
### Added
- Dynamic type system allowing custom document types
- Type management tools (create_type, get_types, delete_type)
- Centralized file naming logic in BaseRepository
- Migration scripts for plural filenames and unified documents
### Changed
- **BREAKING**: File naming convention changed to plural forms
- `issue-{id}.md` → `issues-{id}.md`
- `plan-{id}.md` → `plans-{id}.md`
- `doc-{id}.md` → `docs-{id}.md`
- Custom types remain singular (e.g., `recipe-{id}.md`)
- **BREAKING**: Removed enum constraints from type parameters
- All type fields now accept dynamic values
- Use `get_types` to discover available types
- Removed `subtype` parameter - type is now specified directly
- Simplified createType to only accept name parameter
- Updated directory structure: `documents/doc/` → `documents/docs/`
### Removed
- Static type enums from tool definitions
- Unused description parameter from createType
- Subtype specification - use type directly (e.g., "recipe" instead of type="document", subtype="recipe")
### Fixed
- Hardcoded file naming replaced with dynamic sequence table lookups
- Test failures due to inconsistent file naming
- MaxListenersExceededWarning by setting Jest maxWorkers to 1
## [0.0.7] - 2025-07-25
### Added
- Summary field support for all item types (issues, plans, docs, knowledge)
- Migration script for existing summary fields (`migrate-summary-fields.ts`)
- Comprehensive test case documentation with AI validation procedures
- **Unified document type**: New 'document' type that encompasses both doc and knowledge
- Maintains separate ID sequences for doc and knowledge subtypes
- Uses composite primary key (type, id) in SQLite
- Preserves existing directory structure under documents/
- Migration script for unified documents (`migrate-to-unified-documents.ts`)
- DocumentRepository for managing unified documents
- Document-specific tests validating the new unified approach
### Changed
- Unified content repository approach for doc and knowledge types
- Removed separate ContentRepository in favor of unified pattern
- Updated facades to use status names instead of IDs
- Improved schema definitions to include optional summary field
- **API Changes**:
- Added 'document' as a new type option in all item operations
- Added required 'subtype' field when using type='document'
- Doc and knowledge types remain available for backward compatibility
- Updated tool definitions to support the new document type
- Enhanced item handlers to process document type with subtype validation
### Fixed
- Test expectations for unified content repository structure
- Facade methods now properly support summary field updates
- Tag ID handling in DocumentRepository to use Map correctly
## [0.0.6] - 2025-07-25
### Changed
- **BREAKING**: Migrated from YAML frontmatter to JSON metadata format
- Significantly improved performance (JSON parsing is ~10x faster than YAML)
- Reduced dependencies by removing js-yaml
- All markdown files now use JSON format between `---json` markers
- Added migration script `migrate-tags-to-json.ts` for existing data
### Added
- JSON metadata format support in markdown parser
- Migration script to convert existing YAML frontmatter to JSON
- Backward compatibility during transition period
### Fixed
- Performance issues with large datasets due to YAML parsing overhead
- Memory usage reduced by using native JSON parsing
### Technical Details
- Replaced gray-matter YAML parsing with custom JSON parser
- Updated all repositories to generate JSON metadata
- Test cases updated to work with new format
## [0.0.5] - 2025-07-25
### Added
- `is_closed` flag to status management for distinguishing terminal states
- "Cancelled" as a default status with `is_closed=true`
- Status filtering options for issue/plan lists
- Default behavior excludes closed statuses
- Optional `includeClosedStatuses` parameter
- Optional `statusIds` parameter for specific status filtering
- Commit guidelines documentation for consistent commit practices
- Development warning in README.md
### Changed
- **BREAKING**: Status storage now uses names instead of IDs in markdown files
- More resilient to database rebuilds
- Status IDs no longer stored in markdown frontmatter
- Improved session manager to use `getSessionDetail` for robust lookups
- Updated `rebuild-db` to handle status names instead of IDs
- Renamed "unified" terminology throughout the codebase:
- `unified-handlers.ts` → `item-handlers.ts`
- `unified-schemas.ts` → `item-schemas.ts`
- `unified-tool-definitions.ts` → `tool-definitions.ts`
- Moved session and summary schemas to `session-schemas.ts`
### Removed
- Status modification tools (create_status, update_status, delete_status)
- Status management is now done through database initialization only
- Migration system in favor of initialization-only approach
### Fixed
- Session tests now correctly find sessions regardless of date parsing
- Test expectations updated for 7 default statuses (was 6)
- Import paths updated after file renaming
## [0.0.4] - 2025-07-24
### Added
- Daily summary validation tests to ensure data integrity
- Comprehensive test cases documentation (docs/test-cases.md) for systematic validation
- updateDailySummary method in SessionRepository for proper file updates
### Fixed
- Daily summary update functionality now works correctly
- Fixed issue where empty strings couldn't be used to update summary fields
- Corrected expected default statuses in test cases (6 statuses instead of 3)
### Changed
- Improved update logic to use `!== undefined` instead of `||` operator for better field updates
- Enhanced error handling in summary update operations
## [0.0.3] - 2025-07-24
### Changed
- **BREAKING**: Changed default data directory from `database` to `.shirokuma/data`
- Avoids naming conflicts with project directories
- Uses hidden directory for cleaner project structure
- All data files are now stored under `.shirokuma/data/`
- Centralized all path configurations in `src/config.ts`
- All components now use config for path resolution
- Removed hardcoded paths from individual modules
- Improved configuration management
- Environment variable `MCP_DATABASE_PATH` to customize data directory
- Environment variable `MCP_SQLITE_PATH` to customize SQLite location
### Added
- Comprehensive path configuration in config module
- `issuesPath`, `plansPath`, `docsPath`, `knowledgePath`, `sessionsPath`
- All paths derived from base data directory
### Fixed
- Path resolution consistency across all modules
- Session manager now uses centralized config
## [0.0.2] - 2025-07-24
### Added
- Comprehensive test coverage for session management
- Database rebuild functionality with `npm run rebuild-db`
- Migration support for legacy field names
- Full-text content support for all entity types
### Changed
- **BREAKING**: Unified field naming across all entity types
- Replaced `description` field with `content` for Issues and Plans
- Made `content` field required for Issues and Plans
- All entity types now consistently use `content` field
- Session content now includes complete markdown body (everything after frontmatter)
- Improved session markdown formatter to handle legacy formats
### Fixed
- Session content parsing to include full markdown content
- SQLite table schema to use `content` instead of `description`
- Search functionality to properly query `content` field
### Migration Guide
- Existing data with `description` fields will be automatically migrated
- Run `npm run rebuild-db` to update database schema and migrate existing data
- No manual intervention required for markdown files
## [0.0.1] - 2025-07-23
### Added
- Initial release of Shirokuma MCP Knowledge Base
- Support for Issues, Plans, Documents, and Knowledge management
- Work session tracking and daily summaries
- Tag-based organization and search
- SQLite-based search index
- MCP (Model Context Protocol) server implementation
- Dual storage: Markdown files + SQLite index
### Features
- Create, read, update, and delete operations for all entity types
- Full-text search across all content
- Tag-based categorization and filtering
- Custom status management for Issues and Plans
- Date-based organization for sessions
- Automatic tag registration