digua
6ae32e8b57
feat(http): report incompatible data directories
2026-06-08 10:14:42 +08:00
digua
ad8181d6f4
feat(desktop): enforce data directory compatibility
2026-06-08 10:14:42 +08:00
digua
84b42a68f7
feat(cli): block incompatible data directories at startup
2026-06-08 10:14:42 +08:00
digua
c518a4d968
feat(runtime): gate database access by data dir compatibility
2026-06-08 10:14:42 +08:00
digua
c0885ba053
feat(runtime): add data directory compatibility gate
2026-06-08 10:14:42 +08:00
digua
2111abae5f
docs: refine test maintenance guidance
2026-06-08 10:14:42 +08:00
digua
6b29c07326
test(routes,tools): cover high-risk analysis paths
2026-06-08 10:14:42 +08:00
digua
187268d8a5
test(core,import): rebalance database coverage
2026-06-08 10:14:42 +08:00
digua
2887f1cb73
test(parser,config): cover representative fixtures and migrations
2026-06-08 10:14:42 +08:00
digua
2d88215d63
test: add default test runner
2026-06-08 10:14:42 +08:00
digua and Claude Sonnet 4.6
33353be9e2
docs(agents): expand development guidelines in AGENTS.md
...
Add review/judgment principles, project map, test strategy,
commands/validation guide, code conventions, architecture boundaries,
compatibility/migration rules, and security/release checklist.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-07 20:27:27 +08:00
digua and Claude Sonnet 4.6
62ad3c6248
fix: normalize legacy tool names and harden cli chat command
...
- Add normalizeBuiltinToolNames() to map old session-based tool names
(search_sessions, get_session_messages, get_session_summaries) to
current segment names; applied in assistant parser, agent-stream-runner,
and desktop tool-filter so existing assistant configs keep working
- Propagate agent stream error chunks as thrown Errors in CLI chat command
- Pass assistantId through ResolvedAIChatTarget to agent stream
- Preserve legacy chat_session rows in v6 migration when segment table
already exists (INSERT OR IGNORE + DROP); revert v3/v5 DDL to chat_session
- Rename session_id alias to segment_id in relationship query
- Add tests: assistant-parser normalization, tool-filter legacy names,
agent-stream-runner legacy allowlist, REPL error resilience, migration paths
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-07 20:27:27 +08:00
digua
9b17b09354
feat: add cli ai chat command
2026-06-07 20:27:27 +08:00
digua
c2295e317f
refactor: align ai chat and segment identifiers
2026-06-07 20:27:27 +08:00
digua
82bad3a23a
release: v0.25.0
v0.25.0
2026-06-07 15:21:12 +08:00
digua
093fdd1f2d
chore(skills): remove maintainer skills from public repo
2026-06-07 14:38:50 +08:00
digua
4347c596ca
docs: update iMessage export guide
2026-06-05 11:12:42 +08:00
digua
31f3c610ce
fix(ai): increase default tool rounds
2026-06-05 11:12:42 +08:00
digua
9b1f359699
fix(ai): register chart tool for electron auto skills
2026-06-05 11:12:42 +08:00
digua
f825c0734b
refactor(ai): deduplicate skill menu and manager
2026-06-05 11:12:42 +08:00
digua
953471a514
fix(dev): clean up web backend lifecycle
2026-06-05 11:12:42 +08:00
digua
296573ed5c
refactor(ai): centralize chart runtime policy
2026-06-05 11:12:42 +08:00
CEQ151
15470444e5
feat(ai): improve chart runtime UX
2026-06-05 11:12:42 +08:00
CEQ151
782f67ba63
feat(ai): add slash-activated chart runtime with EChart init fix
...
- Add ChartSpec validation and chart data normalization (bar/line/pie/heatmap)
- Add render_chart analysis tool with SQL safety (readonly check, outer LIMIT wrapper, CTE write rejection)
- Add chart content block type and ChartBlockRenderer for inline chart rendering
- Add slash menu chart capability activation (single-use per message)
- Add chart payload transport through Electron and CLI Web tool adapters
- Add error block handling for render-only chart tool failures
- Add chart payload persistence through content_blocks JSON storage
- Fix EChart.vue init timing: defer initChart() to nextTick so container
layout completes before ECharts reads width (was rendering 92px canvases)
- Add comprehensive test coverage: core, integration, agent flow, frontend, smoke
- Add i18n for render_chart and get_schema in 4 locales
- Add project handoff documentation
2026-06-05 11:12:42 +08:00
digua
dbc377854a
fix(desktop): reset titlebar overlay cache on theme change
2026-06-05 11:12:42 +08:00
CEQ151
8f785ee0a8
fix(desktop): smooth Windows title bar overlay
2026-06-05 11:12:42 +08:00
digua
0bd4d31dd2
fix(ui): adjust preset chip stacking
2026-06-05 11:12:42 +08:00
digua
483907f1ac
release: v0.24.1
v0.24.1
2026-06-04 14:44:48 +08:00
digua
5144c8070a
fix(update): suppress cli dev update badge
2026-06-04 14:37:12 +08:00
digua
8b2e6de479
fix: harden preferences and update notice checks
2026-06-04 14:37:12 +08:00
digua
f4580c55f1
fix(ai): ensure builtin masking rules before preprocessing
2026-06-04 14:37:12 +08:00
digua
cd9f297124
fix(update): harden update notice checks
2026-06-04 14:37:12 +08:00
digua
2a44f8b69e
fix(preferences): preserve legacy builtin masking overrides
2026-06-04 14:37:12 +08:00
digua
9030d6b0c3
feat(update): add in-app update notice
2026-06-04 14:37:12 +08:00
digua
218c3c9ee9
feat(ai): group desensitize rules
2026-06-04 14:37:12 +08:00
digua
0c82a300e8
feat(ai): enable preprocess defaults
2026-06-04 14:37:12 +08:00
digua
a780517539
docs: add contributor development guide
2026-06-04 14:37:12 +08:00
digua
a42c23af15
ci(release): link markdown changelog
2026-06-04 14:37:12 +08:00
digua
fbfe635838
release: v0.24.0
v0.24.0
2026-06-03 13:37:02 +08:00
CEQ151 and Claude Opus 4.8
185e88ba3e
fix(import): refresh sidebar message count after incremental import
...
After incremental import via Electron IPC, the sidebar session list
showed stale message counts. Three contributing gaps:
1. The chat:incrementalImport IPC handler did not notify the renderer
to refresh the session list (unlike the API route which calls
notifySessionListChanged). Added win.webContents.send('api:importCompleted')
to trigger the Sidebar's existing onImportCompleted listener.
2. The postImportHook in worker adapters was async (due to dynamic
import()) but the caller did not await it, causing a race condition
where loadSessions() could read stale overview cache before
computeAndSetOverviewCache() finished. Converted to static import
making the hook synchronous, and updated the type to void | Promise<void>
with await at call sites in both incremental-importer and
streaming-importer.
3. The @imported handlers on group-chat and private-chat pages only
refreshed local analysis data without calling sessionStore.loadSessions().
Added the call so the sidebar updates immediately on the client side.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-03 10:20:28 +08:00
digua
6e016837bc
fix(data): harden directory and database migrations
2026-06-03 00:46:34 +08:00
digua
f234a25ff6
fix(storage): require legacy data before showing migrate hint
2026-06-03 00:46:34 +08:00
digua
42837278fa
fix(data): migrate legacy chat database columns before reads
2026-06-03 00:46:34 +08:00
digua
bb4986d703
fix(storage): reset legacy data hint after directory changes
2026-06-03 00:46:34 +08:00
digua
e68ce77266
feat(data): support CLI web data directory migration
2026-06-03 00:46:34 +08:00
digua
a94986f117
feat(storage): allow ignoring legacy data prompt
2026-06-03 00:46:34 +08:00
digua
04c97ca9cf
fix(data): defer data directory migration until restart
2026-06-03 00:46:34 +08:00
digua and Claude Sonnet 4.6
f978845dde
fix(layout): migrate isSidebarCollapsed persistence from sessionStorage to localStorage
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-03 00:46:34 +08:00
digua and Claude Opus 4.8
f09d40f436
feat(changelog): generate per-language markdown from JSON
...
Add scripts/changelog-to-markdown.mjs that renders changelogs/{cn,en,tw,ja}.json
into readable Markdown files. Runs idempotently; output passes Prettier without
changes.
Wire the script into the sync-changelog skill (step 4, before the release commit)
and update commit_release_changelogs.sh to include the four .md files in the
release: v<version> commit, with a preflight guard that errors if the md files
are missing.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-03 00:46:34 +08:00
digua and Claude Opus 4.8
2f8591fb8c
perf(build): minify main process and lazy-load tiktoken rank table
...
Enable esbuild minification for main/preload (was renderer-only by default),
reducing main process bundle by ~55%. Extract cl100k_base BPE rank table out
of the synchronous startup path via dynamic import — it now lands in its own
chunk and is loaded on first agent run instead of at app startup.
Also fix Windows CI step to use PowerShell syntax for version injection.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-03 00:46:34 +08:00