Releases: ZengLiangYi/ChatCrystal
Releases · ZengLiangYi/ChatCrystal
ChatCrystal v0.4.10
Release v0.4.10
ChatCrystal v0.4.9
Experience Quality Gate
- Hybrid experience filtering — Added lexical signal extraction, deterministic prefilters, and an LLM-scored rubric to keep reusable problem-solving experience while rejecting low-signal transcripts before note creation.
- Reviewable filter metadata — Conversations can now persist
experience_score,experience_gate_reason, andexperience_gate_details; rejected summaries are markedfilteredinstead of creating notes. - Writeback quality validation —
write_task_memorynow rejects sparse structured memories in automatic mode and records idempotent receipts with low-signal reasons.
Calibration
- Offline gate evaluation — Added
npm run eval:experience -w serverwith 37 synthetic calibration samples, false accept/reject reporting, and sample provenance/privacy checks.
Documentation
- Bilingual docs split — Slimmed the root READMEs and moved user guide, MCP, development, experience gate, and agent skills content into paired English and Simplified Chinese docs.
ChatCrystal v0.4.7
Release v0.4.7
ChatCrystal v0.4.6
Memory Loop
- Task memory recall + writeback APIs — Added
/api/memory/recalland/api/memory/writebackwith shared request/response contracts for project-first recall, global supplement recall, and agent/manual memory writeback. - MCP memory tools — Added
recall_for_taskandwrite_task_memoryto the MCP server so external agents can retrieve and persist task memories through the same server-side contract. - Conservative writeback semantics — Automatic writeback now supports idempotent receipts, pending/completed indexing status, conservative merge decisions, and supplemental relations for strongly related memories.
Memory Metadata
- Project-scoped memory model — Notes now store
project_key,scope,source_type,source_agent,task_kind,error_signatures,files_touched, andoutcome_type, with DB bootstrap/backfill for legacy imported notes. - Synthetic memory origins — Added synthetic origin conversations for writeback-created memories while hiding them from the default conversations list.
- Project identity stability — Added canonical project-key derivation plus alias support so moved repos and upgraded project identifiers can still recall the same project memories.
Quality
- Coverage for memory services and routes — Added regression tests across schemas, project-key derivation, recall, writeback, backfill, origin creation, decision logic, and HTTP route behavior.
- Real HTTP + MCP smoke coverage — Verified the full writeback/recall loop through a real Fastify process and MCP stdio server with a mock embedding backend.
Client Performance
- Route-level lazy loading — Switched the main client routes to lazy-loaded page bundles with a shared suspense fallback so the initial app payload is smaller.
- Relation graph canvas split — Moved the force-graph implementation into a lazily loaded
RelationGraphCanvascomponent so the graph runtime is only loaded when the graph page is opened. - Lighter markdown code blocks — Replaced
react-syntax-highlighterwith native<pre><code>rendering and removed the related client dependencies from the bundle.
ChatCrystal v0.4.5
Release v0.4.5
ChatCrystal v0.4.3
Release v0.4.3
ChatCrystal v0.4.2
Release v0.4.2
ChatCrystal v0.4.1
Release v0.4.1
ChatCrystal v0.4.0
New Data Sources
- Trae adapter — Imports conversations from Trae IDE. Reads
memento/icube-ai-agent-storagefrom workspacestate.vscdb. Extracts assistant responses fromagentTaskContent.guideline.planItems, reasoning content as thinking, and handles unreliable timestamps viaturnIndexordering. - GitHub Copilot adapter — Imports conversations from VS Code's GitHub Copilot Chat. Supports both
.jsonl(session snapshots) and.json(older format) fromworkspaceStorage/chatSessions/andglobalStorage/emptyWindowChatSessions/. Extracts thinking blocks, tool invocations, andcustomTitleas slug.
Improvements
- Shared sql.js module — Extracted
openVscdb()intoparser/vscdb.ts, shared by Cursor and Trae adapters. Single sql.js instance across the process. - Cursor orphan bubble discovery — Scans
cursorDiskKVfor composers with bubble data not listed in any workspace'scomposerData. Filters out empty shells (no text content) to avoid noise. - Codex scan 65x faster — Replaced serial
readFirstLine()(97ms/file) with filename-based sessionId extraction + parallelstat()in batches of 20. Scan time: 40s → 0.6s for 337 files. - Scan caching — All adapters with expensive detect→scan cycles (Cursor, Codex, Copilot) now use 5-second TTL caches to avoid redundant filesystem traversal.
- Config migration — Existing
config.jsonfiles automatically gain newtraeandcopilotentries inenabledSourceson upgrade. - Frontend source badges — Added Trae (indigo) and Copilot (GitHub blue) to
SOURCE_CONFIGandSOURCE_COLORSmaps. - Platform path robustness — All adapters now use
homedir()fromnode:osinstead ofprocess.env.HOMEfor macOS/Linux paths.
ChatCrystal v0.3.0
Full Changelog: electron-v0.2.5...electron-v0.3.0