Skip to content

πŸš€ Release v2.1.6 (Force Replace) - #2

Merged
ukkit merged 1 commit into
mainfrom
release/v2.1.6
Jul 24, 2025
Merged

πŸš€ Release v2.1.6 (Force Replace)#2
ukkit merged 1 commit into
mainfrom
release/v2.1.6

Conversation

@ukkit

@ukkit ukkit commented Jul 24, 2025

Copy link
Copy Markdown
Owner

Release Sync: v2.1.6

This PR contains the synchronized files from the development repository for release v2.1.6.

⚠️ WARNING: This release used FORCE REPLACE mode - all files were replaced regardless of modification status.

πŸ“‹ Sync Details

  • Source Repository: ukkit/memcord-dev
  • Target Branch: main
  • Release Version: v2.1.6
  • Sync Method: Pull Request (⚠️ Force Replace)
  • Triggered By: @ukkit

πŸ”„ Changes

Please review the changes carefully before merging.

βœ… Pre-merge Checklist

  • Review all file changes
  • Verify version numbers are correct
  • Check that no sensitive files were included
  • Confirm all tests pass
  • Update release notes if needed

πŸ”— Links


This PR was created automatically by the Release Sync workflow.

    Synced from ukkit/memcord-dev @ 0956e87869afddeb98bc27350529cd305892ff69

    ⚠️  FORCE REPLACE - All files replaced regardless of modification status
    πŸ“Š Summary: 9 files changed

    Release notes: https://github.com/ukkit/memcord-dev/releases/tag/v2.1.6

    Co-authored-by: Release Bot <release-bot@memcord.dev>
@ukkit
ukkit merged commit 8926029 into main Jul 24, 2025
@ukkit
ukkit deleted the release/v2.1.6 branch July 24, 2025 10:38
ukkit pushed a commit that referenced this pull request Nov 10, 2025
**Bug #1: Acronym Tokenization (CRITICAL)**
- Problem: Search tokenizer filtered words with len <= 2
- Impact: CI, CD, UI, UX, DB, API, AWS and other acronyms were unsearchable
- Fix: Changed tokenizer from 'len > 2' to 'len > 1' (src/memcord/search.py:178)
- Result: All 2-letter acronyms now searchable

**Bug #2: Search Index Staleness (CRITICAL)**
- Problem: Search index never refreshed across MCP instances
- Impact: Content saved in one session was not searchable in another session
- Root Cause: Per-instance index initialized once, never checked for disk changes
- Fix: Added modification time (mtime) tracking and staleness detection
- Implementation:
  - Added _index_mtime_snapshot dict to track file mtimes
  - Added _is_search_index_stale() to detect changes
  - Updated search_memory() to check staleness before searching
  - Updated _save_slot() to maintain mtime snapshot on saves
  - Added cache invalidation when index refreshes
- Result: Cross-session search now works correctly

**Testing**
- Added comprehensive test suite: tests/test_search_index_staleness.py
- 10 tests covering same-instance, cross-instance, external modifications
- All 260 tests passing (250 existing + 10 new)
- Performance validated: staleness check adds < 50ms overhead

**Impact**
Fixes core search functionality that was completely broken for:
- Cross-session workflows
- Multi-instance collaboration
- External modifications
- Common acronym searches (CI/CD, API, UI, DB, AWS, etc.)

Authored by: Aaron Lippold <lippold@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant