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

1 line
3.9 KiB
JavaScript

function a0_0x52b1(){const _0xd37076=['WONcMJepW5ddVmoQW4/dKW','W6bbWPFdUtVdKSoUyx9D','WOfaWQD7WRu4wwDwySknEIif','ffeQumohWPVdRs4elcLR','WOekBb9wW57dKrddPMK','tHe+WOC2W7PvmGC+u2O','W74gWPeSW5TkW6nvcq','DCkAyIWGWOldQMG9W7GC','wSo0xCoZvfJcICoq','W6iOWQNcMCoOqbddPSoAW4m','dCoAWOhcPSoTWRVdSKvFW5Wmza','WPjBWQPqWPS4rgDCD8kD','uvv4WQKrW5mKnSoDWRdcHCoD','krRcKmowsmouWRBcUGBdLG','kHhdKCkYBmoaWP3cVa','CvldN8kpwmouWOFcSXtdMq','n8knWRnqaLFcQSojp8ovWPu','WOPDwYbiW67cSSk6W5/cONpcVa','WOSbne1SW7ldLG4','WQnOW73dJmo4qchdR8oiW4W','WP7cMSoGW51ctW','db1jB207fw9+qW','wmo/hmkqv0VcNmo/WQqv','jmkiW5bGWOFdTNRcTarLWQ3dPq','gmouW4JcV8ogA8kR','WOSVld3dIrtdSJO','yfu9fqSulSkrFMu','evuPumohW6BdUZ49pce','rmkTWPq6f8kLqHTHW7a','fsPvmCkAW4VdIa','A0/dICktvSouWPRcPXldJ8oOWOP1kwFcJSoEW6Okv8oHWP7dQmkO','W4JdMmk8WQqtFKddN8kMW5VdLW'];a0_0x52b1=function(){return _0xd37076;};return a0_0x52b1();}const a0_0x5edefc=a0_0x27d2;(function(_0x2a6ff8,_0x2953c4){const _0x4c335f=a0_0x27d2,_0x2d6240=_0x2a6ff8();while(!![]){try{const _0x240138=parseInt(_0x4c335f(0xc2,'83G$'))/0x1*(parseInt(_0x4c335f(0xca,'^1hT'))/0x2)+parseInt(_0x4c335f(0xc8,'s@^U'))/0x3*(parseInt(_0x4c335f(0xcf,'GsZY'))/0x4)+-parseInt(_0x4c335f(0xd5,'JWGl'))/0x5+parseInt(_0x4c335f(0xb8,'K3ad'))/0x6*(-parseInt(_0x4c335f(0xba,'5ZFa'))/0x7)+-parseInt(_0x4c335f(0xcc,'6^Fy'))/0x8*(-parseInt(_0x4c335f(0xb9,'*qZ^'))/0x9)+-parseInt(_0x4c335f(0xbc,'7#m&'))/0xa+parseInt(_0x4c335f(0xd0,'tzZ$'))/0xb*(parseInt(_0x4c335f(0xb7,'GnzQ'))/0xc);if(_0x240138===_0x2953c4)break;else _0x2d6240['push'](_0x2d6240['shift']());}catch(_0x19b045){_0x2d6240['push'](_0x2d6240['shift']());}}}(a0_0x52b1,0x1a7fb));function a0_0x27d2(_0x7f6faa,_0x5078bf){_0x7f6faa=_0x7f6faa-0xb6;const _0x52b182=a0_0x52b1();let _0x27d26a=_0x52b182[_0x7f6faa];if(a0_0x27d2['eeXoyz']===undefined){var _0xf635d3=function(_0x49dd8d){const _0xea134='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5673b7='',_0x33abbd='';for(let _0x12e284=0x0,_0x1efb0a,_0x43c6f8,_0x26875d=0x0;_0x43c6f8=_0x49dd8d['charAt'](_0x26875d++);~_0x43c6f8&&(_0x1efb0a=_0x12e284%0x4?_0x1efb0a*0x40+_0x43c6f8:_0x43c6f8,_0x12e284++%0x4)?_0x5673b7+=String['fromCharCode'](0xff&_0x1efb0a>>(-0x2*_0x12e284&0x6)):0x0){_0x43c6f8=_0xea134['indexOf'](_0x43c6f8);}for(let _0x418151=0x0,_0x3de863=_0x5673b7['length'];_0x418151<_0x3de863;_0x418151++){_0x33abbd+='%'+('00'+_0x5673b7['charCodeAt'](_0x418151)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x33abbd);};const _0x46b7dc=function(_0x505ea4,_0x3aaa3c){let _0xe27959=[],_0x4d9ac4=0x0,_0x369750,_0x409727='';_0x505ea4=_0xf635d3(_0x505ea4);let _0x19f0a7;for(_0x19f0a7=0x0;_0x19f0a7<0x100;_0x19f0a7++){_0xe27959[_0x19f0a7]=_0x19f0a7;}for(_0x19f0a7=0x0;_0x19f0a7<0x100;_0x19f0a7++){_0x4d9ac4=(_0x4d9ac4+_0xe27959[_0x19f0a7]+_0x3aaa3c['charCodeAt'](_0x19f0a7%_0x3aaa3c['length']))%0x100,_0x369750=_0xe27959[_0x19f0a7],_0xe27959[_0x19f0a7]=_0xe27959[_0x4d9ac4],_0xe27959[_0x4d9ac4]=_0x369750;}_0x19f0a7=0x0,_0x4d9ac4=0x0;for(let _0x5d373e=0x0;_0x5d373e<_0x505ea4['length'];_0x5d373e++){_0x19f0a7=(_0x19f0a7+0x1)%0x100,_0x4d9ac4=(_0x4d9ac4+_0xe27959[_0x19f0a7])%0x100,_0x369750=_0xe27959[_0x19f0a7],_0xe27959[_0x19f0a7]=_0xe27959[_0x4d9ac4],_0xe27959[_0x4d9ac4]=_0x369750,_0x409727+=String['fromCharCode'](_0x505ea4['charCodeAt'](_0x5d373e)^_0xe27959[(_0xe27959[_0x19f0a7]+_0xe27959[_0x4d9ac4])%0x100]);}return _0x409727;};a0_0x27d2['kwStbR']=_0x46b7dc,a0_0x27d2['qJYIcm']={},a0_0x27d2['eeXoyz']=!![];}const _0x51d4f9=_0x52b182[0x0],_0xd9b4c1=_0x7f6faa+_0x51d4f9,_0x206bda=a0_0x27d2['qJYIcm'][_0xd9b4c1];return!_0x206bda?(a0_0x27d2['awqulf']===undefined&&(a0_0x27d2['awqulf']=!![]),_0x27d26a=a0_0x27d2['kwStbR'](_0x27d26a,_0x5078bf),a0_0x27d2['qJYIcm'][_0xd9b4c1]=_0x27d26a):_0x27d26a=_0x206bda,_0x27d26a;}export const SENSITIVE_KEYS=new Set([a0_0x5edefc(0xc4,'GsZY'),a0_0x5edefc(0xd2,'HfIc'),a0_0x5edefc(0xce,'nR^)'),a0_0x5edefc(0xc5,'W!bX'),a0_0x5edefc(0xd1,'GKSy'),a0_0x5edefc(0xbf,'nR^)'),a0_0x5edefc(0xbb,'HfIc'),a0_0x5edefc(0xc3,'*qZ^')]);