release: v2.2.8 [2026-06-16 15:53:20]

### 新功能
- **填表记录 · 版本恢复**(填表设置面板「回退重填」旁新增「填表记录」按钮):针对"模型填表前把整张表删空 / 误删大量内容"的反馈,提供一键找回。
  - **零新存储**:直接复用各楼层 `extra.amily2_tables_data` 里逐轮继承的表格快照——历史本就在聊天中,无需另建存储或元数据
  - 点开列出所有带快照的楼层(最新在上),可**展开预览**每一版的表格内容(CSV)后再决定
  - **恢复某版本**:把该楼层快照设为当前状态,并清除其**之后**所有楼层的快照与填表标记 hash——使该版本成为最新有效状态,后续楼层下轮自动重填会从恢复点往前重建(赌模型不再抽风)
  - 「回退重填」按钮保留,但版本恢复是更安全的找回路径
### 重构
- 抽出 `_normalizeTableState` 共用旧存档字段归一逻辑,`loadTables` 与"恢复快照"复用,消除重复
---
This commit is contained in:
Jenkins CI
2026-06-16 15:53:20 +08:00
parent cc6618a493
commit 4b2229f0f4
14 changed files with 213 additions and 329 deletions

View File

@@ -1,6 +1,6 @@
import { extensionName } from "../../utils/settings.js";
import { extension_settings } from "/scripts/extensions.js";
import { saveSettingsDebounced } from "/script.js";
import { saveSettingsDebounced, eventSource, event_types } from "/script.js";
import { initializeSuperMemory, purgeSuperMemory, forceSyncAll } from "./manager.js";
import { defaultSettings as ragDefaultSettings } from "../rag-settings.js";
import { getMemoryState } from "../table-system/manager.js";
@@ -131,10 +131,29 @@ export function bindSuperMemoryEvents() {
});
loadSuperMemorySettings();
// 切聊天后面板内容刷新:面板的表格列表只在挂载时渲染一次、之后仅靠手动「刷新表格列表」按钮,
// 无 CHAT_CHANGED 监听 → 切换同卡不同聊天后列表停在旧聊天。这里补上:
// 仅当面板可见时刷新;延后到表格系统的 loadTablesindex.js 中 CHAT_CHANGED 后 100ms之后
// 否则会渲染出尚未更新的旧 state同 super-memory 同步那处规避的竞态)。
eventSource.on(event_types.CHAT_CHANGED, () => {
if (!panel.is(':visible')) return;
setTimeout(refreshSuperMemoryPanel, 300);
});
console.log('[Amily2-SuperMemory] Events bound successfully.');
}
/**
* 刷新超级记忆面板的动态内容(表格列表)。供「打开面板」与「切聊天」复用。
* 仅重渲染随聊天变化的部分;全局开关/阈值等设置不随聊天变,无需重读。
*/
export function refreshSuperMemoryPanel() {
const panel = $('#amily2_super_memory_panel');
if (panel.length === 0) return;
renderTableSettingsList();
}
function renderTableSettingsList() {
const container = $('#sm-table-settings-list');
container.html('<div style="text-align: center; color: #888; padding: 20px;">正在加载...</div>');