Introduces experimental WAL (Write-Ahead Logging) incremental sync for WeChat database decryption, allowing real-time monitoring and incremental updates to the working directory database. Adds UI and config options to enable WAL support and configure auto-decrypt debounce interval. Updates related services, context, and data source logic to support WAL file handling, incremental decryption, and improved process detection. Also improves single-instance process checks and updates documentation for these new features.
Introduces ZSTD decompression for the message_content field in the message table when retrieving data, allowing compressed messages to be displayed as plain text. Also improves error handling for invalid time arguments in chatlog route and updates CSS for table list view layout.
Updated SNS media parsing functions to automatically unescape HTML entities in URLs and related fields, ensuring correct URL formatting. Also added documentation in README about this URL format optimization.
Features:
- Add sns.db database integration and auto-detection
- Implement XML content parser for moments data (internal/model/sns.go)
- Extract basic info: create time, nickname, content description
- Parse location data: city, coordinates, POI name, address
- Recognize media types: image, video, article, finder (video account)
- Extract structured data: image count, video duration, article info
- Add "朋友圈检索" (Moments Search) page in HTTP UI
- Support multiple output formats:
- JSON: Structured data for programmatic access
- Plain text: Human-readable format with emoji icons
- Raw XML: Original XML content for debugging
- CSV/Excel: Export for data analysis
- Support query features: filter by username, limit, offset pagination
- Database browser integration: SNS database visible in decrypted DB list
Technical changes:
- internal/wechatdb/datasource/v4/datasource.go: Add SNS group config and query methods
- internal/wechatdb/datasource/datasource.go: Add SNS interface methods
- internal/wechatdb/wechatdb.go: Add GetSNSTimeline and GetSNSCount
- internal/chatlog/database/service.go: Add SNS service layer methods
- internal/chatlog/http/route.go: Add /api/v1/sns endpoint with format support
- internal/chatlog/http/static/index.htm: Add moments search tab and UI
- .gitignore: Ignore tmpclaude directories and sns.md test file
- README.md: Update changelog for 2026-01-14
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Improved image file access by supporting files in Rec subdirectories using the extra_buffer field, and enhanced decryption logic to handle files without extensions as .dat files, with fallback to serving as-is if decryption fails. Updated MediaV4 model and datasource to extract and use extra_buffer, and revised README to document these changes.
Introduces an MD5-to-path cache for media files, improving image access reliability. The /image/{md5} endpoint now uses a three-level fallback: hardlink table, cache-based path with suffix matching, and directory recursion. This addresses issues with image retrieval, especially for WeChat v4 packed_info_data cases, and updates the README with details of the new mechanism.
Introduces support for exporting chat logs in the ChatLab standardized JSON format. Adds a new export option in the UI, implements format conversion in the backend, and provides a download feature for the exported data. Also includes the initial ChatLab format specification and related model conversion logic.
Removed dashboard, sidebar, layout, and logs components, consolidating status and account information into a new infobar component. Updated app structure to use tabbed pages and the infobar for displaying key information. Simplified menu and settings handling, and removed legacy UI code for a more streamlined interface.
Replaces the infobar with a new dashboard component, introduces a sidebar for navigation, and adds a logs view for runtime messages. Refactors the main app layout to use a sidebar and content pages, updates menu handling, and improves modularity of UI components. Removes infobar and related code, and adds new files for dashboard, layout, logs, and sidebar.
Major MCP extension: adds tools for media content retrieval, OCR, real-time message subscription with webhook push, chat activity analysis, user profile, and shared file search. Implements persistent subscription management, new prompt templates, and real-time resource endpoints. Updates UI to display active MCP subscriptions, enhances CSV export with MessageID, and documents all new features in the changelog. Removes Dockerfile and docker-compose.yml.
Dropped all code, documentation, and models related to macOS and WeChat 3.x (darwinv3) support, including command-line tools, model definitions, and documentation files. Updated README to clarify that only Windows and WeChat 4.x are supported, and improved instructions for image key acquisition. Enhanced restart-and-get-key logic with status callbacks and retry handling for more robust key extraction after WeChat restarts.
Added pre-check and error handler for auto decryption: the system now tests decryption before enabling auto mode and stops with a popup if errors occur during operation. The footer UI now displays a real-time preview of the latest message, including sender, time, and content summary, with improved fallback for missing nicknames. Also fixed a bug where batch decryption incorrectly reported success when all files failed.
Removed all code and logic related to WeChat V3 key extraction, including darwin and windows V3 extractors. Updated extractor selection to return an error for V3. Refactored Windows DLL extractor to run DLL and native (Dart-style) memory scan in parallel for V4, reporting keys as soon as found. Improved image key acquisition flow in the TUI and updated documentation to reflect the new focus on V4, parallel key extraction, and the deprecation of V3 support.
Introduces a new menu item and Manager method to restart WeChat and automatically retrieve the data key. Refactors menu indices, improves context key synchronization, and allows key extraction attempts even if WeChat is offline. Also ensures saved keys are loaded for accounts and enhances robustness in command-line key retrieval.