Releases: thrialectics/threadlinking
Releases · thrialectics/threadlinking
v3.1.0
What's New
- threadlinking_reindex MCP tool — rebuild semantic index without dropping to CLI (13 tools now)
Fixes
- Lock ordering fix — updateThread no longer holds two locks simultaneously, eliminating deadlock risk under concurrent writes
- Deterministic lock ordering in relate — threads locked alphabetically to prevent A-B vs B-A deadlock
Performance
- Meta index carries counts — threadlinking list reads one small file instead of loading every thread from disk
- Semantic search optimization — loads only matched thread files instead of all threads
Improvements
- CLI contextual error tips — "thread not found" now suggests threadlinking list, etc.
- Duplicate snippet detection — warns on exact-match duplicates within last 10 snippets
- Thread relationships — threadlinking relate / unrelate to link related threads
- Track error logging — hook errors written to ~/.threadlinking/debug.log instead of silently swallowed
- README rewrite — stronger opening hook, MCP tools table
- Plugin version synced to 3.1.0
v3.0.1 — Windows fixes & maintenance
What's Changed
- Fixed plugin and skills implementation
- Windows path normalization for
.threadlinkingignorematching - Windows CI fixes (
USERPROFILEforhomedir(), skip Unix-only permission tests) - Security audit fixes (
.envand IDE patterns in.gitignore) - Updated test harness for cross-platform path handling
v3.0.0 — File-per-thread architecture
What's New
Architecture overhaul
- File-per-thread storage — each thread gets its own JSON file instead of one monolithic
thread_index.json - Per-thread locking — different threads can be written concurrently without conflicts
- Atomic writes — temp file + rename pattern prevents corruption on crash
- Corruption recovery — automatic detection and recovery from corrupted thread files
- Auto-migration — seamlessly upgrades from v2 format on first run
Quality
- 194 tests across 7 test files
- Cross-platform CI: Ubuntu, macOS, Windows (Node 20 + 22)
- Concurrency and corruption edge cases covered
Other improvements
.threadlinkingignoresupport for filtering noise from pending filesprunecommand to clean ignored files from pending list- Structured
OperationResult<T>pattern across all operations - Input sanitization (null bytes, control chars, length limits)
- Path traversal protection via
safeThreadPath() - Shared
prompt()helper extracted to utils
Breaking changes
- Storage format changed from single file to file-per-thread (migration is automatic)