digua and Claude Sonnet 4.6
c3a5d22a43
fix: enforce data directory compatibility gate at runtime boundaries
...
MCP server checks the gate at startup and exits before opening stdio if
the data directory requires a newer runtime. Desktop HTTP API maps
DataDirCompatibilityError (including wrapped causes) to a 409 response
so the renderer can surface a clear upgrade prompt.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-08 10:14:42 +08:00
digua and Claude Sonnet 4.6
e7561e224e
fix: write data directory compatibility gate on migration and import
...
Harden the startup migration path: fail fast and show an error dialog if
schema migration cannot complete. Repair the gate retroactively for
databases that were already migrated before the gate system existed.
Raise the gate after every import path (full import, incremental import,
stream import) and after opening any database that already carries a
current-segment schema. Centralise gate-raising inside DatabaseManager so
call sites cannot accidentally skip it.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-08 10:14:42 +08:00
digua and Claude Sonnet 4.6
1c7781d85b
fix: establish runtime identity for data directory gates
...
Use the packaged app version (not Electron's dev-mode 0.0.0) across all
compatibility checks. Make DatabaseManager require a RuntimeIdentity so
every gate write carries a verified version and kind.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-08 10:14:42 +08:00
digua
3f96d31819
docs: document data directory compatibility gate
2026-06-08 10:14:42 +08:00
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