Commit Graph

248 Commits

Author SHA1 Message Date
Youzini-afk
3d077a54e8 fix(history): pause recovery for render-limited chat slices 2026-04-25 17:23:26 +08:00
Youzini-afk
8c489bf1c7 feat(ui): show hidden floor count and render limit 2026-04-25 16:37:50 +08:00
Hao19911125
d50263e3d9 Merge branch 'Youzini-afk:main' into main 2026-04-23 23:00:45 +08:00
Youzini-afk
0daf723fd1 fix: auto-repair malformed memory scope regions 2026-04-23 18:48:30 +08:00
Youzini-afk
13ccc33f0d fix: allow extraction with recoverable pending persist 2026-04-23 02:34:06 +08:00
Youzini-afk
aa3ee1e408 fix: reroll 时复用已有召回记录而非重新触发召回
- rebindRecallRecordToNewUserMessage: 从 frozenRecallOptions 补全 recallInput/boundUserFloorText/authoritativeInputUsed
- ensurePersistedRecallRecordForGeneration: already-up-to-date 守卫增加 recallInput 非空检查
- 新增 tests/recall-reroll-reuse.mjs 回归测试
2026-04-23 01:19:29 +08:00
Youzini-afk
fb4dabeaf1 perf: add dirty persist and hydrate/layout optimizations 2026-04-22 22:27:51 +08:00
Youzini-afk
4ab2e0c3c9 perf: add native hydrate wasm path 2026-04-22 20:09:48 +08:00
Youzini-afk
cfc122244a perf: optimize persist/load P1 hot paths 2026-04-22 18:34:56 +08:00
Youzini-afk
b849117646 Add persistence load and commit attribution diagnostics 2026-04-22 17:12:09 +08:00
Youzini-afk
d2c3d1f5dd Add persistence and retrieval observability with native delta gating 2026-04-21 20:32:20 +08:00
Youzini-afk
50ab967d7b Optimize IndexedDB save snapshot reuse 2026-04-21 18:46:26 +08:00
Youzini-afk
6ddf3a7386 Optimize detached graph save path 2026-04-21 17:44:59 +08:00
Youzini-afk
4fd4786983 perf: reduce graph load memory and clone overhead 2026-04-21 16:57:42 +08:00
Hao19911125
5e238423d6 Fix cloud backup restore runtime refresh 2026-04-21 14:47:03 +08:00
Youzini-afk
37bada37b6 feat: add recall card editing and ENA preview UI 2026-04-20 16:39:29 +08:00
Youzini-afk
fb60502b55 Add cognition owner management flows 2026-04-20 15:35:49 +08:00
Youzini-afk
fbaadddae3 fix: surface rerun preparation failures 2026-04-16 01:27:23 +08:00
Youzini-afk
e3b268bb04 fix: surface rerun extraction progress 2026-04-16 00:14:17 +08:00
Youzini-afk
e2e51c9508 fix: harden opfs capability recovery 2026-04-15 22:47:34 +08:00
Youzini-afk
359a2a07b7 feat: deepen luker host integration 2026-04-15 21:20:08 +08:00
Youzini-afk
04aa79bcc3 chore: trim trailing newline in index 2026-04-15 17:36:36 +08:00
Youzini-afk
dc4eac4ced fix: harden luker sidecar persistence consistency 2026-04-15 17:36:36 +08:00
Youzini-afk
13d2b04e73 fix: fallback persistence chat identity on mobile 2026-04-15 16:20:11 +08:00
Youzini-afk
22bf3cf588 fix: clear stale recovery sources during graph cleanup 2026-04-15 15:43:12 +08:00
Youzini-afk
1f2cddb2a3 fix: settle mobile local persistence loading state 2026-04-15 15:02:28 +08:00
Youzini-afk
360dfe3f19 feat: harden Luker sidecar persistence flow 2026-04-15 13:46:27 +08:00
Youzini-afk
05d3fe3fbd fix: harden mobile local store recovery flow 2026-04-15 12:43:43 +08:00
Youzini-afk
4b19e978c7 fix: guard luker panel graph load retries 2026-04-14 22:03:07 +08:00
Youzini-afk
1867662653 fix: align cleanup actions with opfs storage 2026-04-14 19:55:30 +08:00
Youzini-afk
c12956f674 feat: promote opfs v2 as default local store 2026-04-14 19:34:44 +08:00
Youzini-afk
77b77cfa64 fix: remove duplicate identity helper declarations 2026-04-14 17:16:23 +08:00
Youzini-afk
33b8d298f7 fix: harden persistence tiers and opfs durability 2026-04-14 15:44:21 +08:00
Youzini-afk
d39c16d8ff fix: restore missing runtime persistence helpers 2026-04-14 12:41:10 +08:00
Youzini-afk
40bf65f5a4 fix: restore chat identity helpers for graph load 2026-04-14 00:34:35 +08:00
Youzini-afk
74d661e433 Harden local store cache invalidation for storage mode switching 2026-04-13 23:03:43 +08:00
Youzini-afk
a7ded12350 feat: wire OPFS local store migration 2026-04-13 22:45:14 +08:00
Youzini-afk
e4ab3ac41d perf: optimize persist-delta snapshot reuse and diagnostics 2026-04-13 18:21:32 +08:00
Youzini-afk
67cf5fe7fa perf: add hash compact persist-delta bridge mode 2026-04-13 16:37:59 +08:00
Youzini-afk
b16785e56f perf: optimize persist delta gating and diagnostics 2026-04-13 16:11:43 +08:00
Youzini-afk
29f21857e7 perf(graph): add adaptive layout degrade and defer persist clone 2026-04-13 12:46:52 +08:00
Youzini-afk
5bd29c99d5 fix: orphan accepted commit marker self-healing — auto-clear stale marker when no recoverable graph source exists
- Add maybeResolveOrphanAcceptedCommitMarker() for conservative orphan detection:
  - Chat-state sidecar rescue first (preserves marker, keeps mismatch diagnostic)
  - Only clears marker when ALL local sources confirmed absent
  - Guards: shadow-available, migration-failed, chat-switched all block clearing
- Enhance clearCurrentChatCommitMarker() with resetAcceptedRevision option
  - Resets lastAcceptedRevision and acceptedStorageTier when marker is orphan
- Integrate orphan resolution into loadGraphFromIndexedDb() empty+mismatch branch
- Update onDeleteCurrentIdbController/onDeleteAllIdbController to resetAcceptedRevision
- Update graph-persistence regressions:
  - Orphan marker scenario now auto-heals to EMPTY_CONFIRMED (was: permanently BLOCKED)
  - Add chat-state rescue guard test: sidecar data prevents marker clearing
2026-04-12 20:36:03 +08:00
Youzini-afk
05083ef5f0 fix: clear stale accepted commit marker after deleting local IndexedDB caches
When users delete local BME IndexedDB via UI actions (delete current/all
IDB), the chat metadata's st_bme_commit_marker was not cleared. This left
an accepted high-revision promise with no local DB backing, causing
persist-mismatch:indexeddb-behind-commit-marker and blocking graph load
indefinitely.

- index.js: add clearCurrentChatCommitMarker() helper and expose via runtime
- ui-actions-controller.js: call clearCurrentChatCommitMarker before
  syncGraphLoadFromLiveContext after IDB deletion
- p0-regressions.mjs: regression test asserting marker is cleared before
  reload after current-IDB deletion
2026-04-12 20:07:05 +08:00
Youzini-afk
de7e598490 fix: graph load stuck in LOADING after IndexedDB cache deletion or commit-marker mismatch
- reconcileIndexedDbProbeFailureState now handles persist-mismatch:indexeddb-* reasons, ensuring bounded retries and transition to BLOCKED instead of hanging forever in LOADING
- expose clearCachedIndexedDbSnapshot, clearAllCachedIndexedDbSnapshots, closeBmeDb, closeAllBmeDbs, syncGraphLoadFromLiveContext in runtime context for UI actions
- onDeleteCurrentIdbController / onDeleteAllIdbController now clear in-memory caches, close DB handles, and force a fresh graph load sync after deletion
- humanize persist-mismatch:indexeddb-behind-commit-marker panel messages into user-friendly Chinese text
- add regression test for empty IndexedDB + accepted commit marker mismatch fallback-to-blocked scenario
2026-04-12 19:00:30 +08:00
Youzini-afk
47ffd5413d refactor(terminology): 层级总结为主路径,synopsis 标记为旧式全局概要
- README: 明确 summaryState 为主总结体系,legacy synopsis 为兼容兜底
- prompt-profiles: synopsis 任务标签改为「小总结」
- schema/task-graph-stats/panel: synopsis 节点显示为「全局概要(旧)」
- index.js: fallback 状态文案改为「旧式全局概要生成/更新中」
- p0-regressions: 同步更新断言字符串
2026-04-12 17:58:05 +08:00
Youzini-afk
b31088cc35 fix: IndexedDB probe 失败后不再永久卡在 loading,重试耗尽后回退到 blocked
- index.js: 新增 reconcileIndexedDbProbeFailureState,后台 probe 失败时先有限重试,耗尽后切到 blocked
- index.js: scheduleIndexedDbGraphProbe 的 .then/.catch 均接入 reconcile 逻辑
- index.js: createGraphLoadUiStatus blocked 文案更新
- ui/panel.js: _getGraphLoadLabel blocked 文案更新,不再误导为元数据未就绪
- tests/graph-persistence.mjs: 新增 manager-unavailable / read-failed 回归
- tests/graph-persistence.mjs: harness 支持 __indexedDbExportSnapshotShouldThrow / __indexedDbGetCurrentDbShouldThrow
2026-04-12 16:50:02 +08:00
Youzini-afk
96b43c7860 feat: migrate compress/consolidation/reflection graphStats to shared ranking core + prompt node refs
- New maintenance/task-graph-stats.js: shared helper wrapping rankNodesForTaskContext + createPromptNodeReferenceMap
- extractor.js: extract and reflection graphStats now use buildTaskGraphStats
- compressor.js: compression graphStats uses shared helper, excludes current batch from relevant ranking
- consolidator.js: consolidation graphStats uses shared helper, excludes new nodes from relevant ranking
- index.js: passes schema + embeddingConfig into generateReflection
- p0-regressions.mjs: added graphStats assertions for compress/consolidation/reflection (prompt-facing refs, no raw UUIDs)
2026-04-12 15:27:22 +08:00
Hao19911125
943c398fb9 Guard against Tavern Helper prompt viewer fake generations 2026-04-11 22:09:40 +08:00
Hao19911125
fb7f59c44e Skip BME on trivial user sends 2026-04-11 21:47:22 +08:00
Hao19911125
ffcad87a90 Merge branch 'Youzini-afk:main' into main 2026-04-11 21:03:40 +08:00