mirror of
https://github.com/hellodigua/ChatLab.git
synced 2026-10-26 02:04:37 +08:00
- Reject path-traversal sessionIds (SAFE_SESSION_ID_RE) - Reject X-Dry-Run header with 400 instead of silently writing - Propagate DataDirCompatibilityError as 409 instead of swallowing to 500 - Scope concurrency lock to session instead of process-wide boolean - Fix hash dedup hole: load hashes for ALL existing messages, not just those without platformMessageId - Fix backfill segment index: detect when written timestamps predate the existing tail and use full generateSessionIndex rebuild instead of incremental; apply same fix to shared incremental-importer used by Desktop and pull sync - Validate member platformId, message content/platformMessageId types, and option enum values in validatePayload before any writes - Use writeParseResultToDb in fullImport to populate member_name_history; pre-deduplicate messages before delegating and auto-create minimal members for senders absent from the members list - Add content-hash to existingKeys when accepting a pmid-keyed row so a same-content no-pmid copy later in the same batch is caught Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>