自动压缩周期
- 按提取次数计数;到周期点时才尝试自动压缩。填 0 表示关闭。
+ 按提取次数计数;只有到周期点时才会尝试自动压缩。
+
+ 在“功能开关”中启用后生效。
+
diff --git a/panel.js b/panel.js
index efcab69..b68439a 100644
--- a/panel.js
+++ b/panel.js
@@ -1620,6 +1620,10 @@ function _refreshConfigTab() {
"bme-setting-sleep-cycle-enabled",
settings.enableSleepCycle ?? false,
);
+ _setCheckboxValue(
+ "bme-setting-auto-compression-enabled",
+ settings.enableAutoCompression ?? true,
+ );
_setCheckboxValue(
"bme-setting-prob-recall-enabled",
settings.enableProbRecall ?? false,
@@ -1944,6 +1948,10 @@ function _bindConfigControls() {
_patchSettings({ enableSleepCycle: checked });
_refreshGuardedConfigStates();
});
+ bindCheckbox("bme-setting-auto-compression-enabled", (checked) => {
+ _patchSettings({ enableAutoCompression: checked });
+ _refreshGuardedConfigStates();
+ });
bindCheckbox("bme-setting-prob-recall-enabled", (checked) => {
_patchSettings({ enableProbRecall: checked });
_refreshGuardedConfigStates();
diff --git a/tests/default-settings.mjs b/tests/default-settings.mjs
index f02f371..88f84fc 100644
--- a/tests/default-settings.mjs
+++ b/tests/default-settings.mjs
@@ -126,6 +126,7 @@ assert.equal(defaultSettings.injectDepth, 9999);
assert.equal(defaultSettings.enabled, true);
assert.equal(defaultSettings.enableReflection, true);
assert.equal(defaultSettings.consolidationAutoMinNewNodes, 2);
+assert.equal(defaultSettings.enableAutoCompression, true);
assert.equal(defaultSettings.compressionEveryN, 10);
assert.equal("maintenanceAutoMinNewNodes" in defaultSettings, false);
assert.equal(defaultSettings.embeddingTransportMode, "direct");
@@ -138,7 +139,17 @@ const migratedSettings = mergePersistedSettings({
maintenanceAutoMinNewNodes: 7,
});
assert.equal(migratedSettings.consolidationAutoMinNewNodes, 7);
+assert.equal(migratedSettings.enableAutoCompression, true);
assert.equal(migratedSettings.compressionEveryN, 10);
assert.equal("maintenanceAutoMinNewNodes" in migratedSettings, false);
+const migratedLegacyCompressionDisabled = mergePersistedSettings({
+ compressionEveryN: 0,
+});
+assert.equal(migratedLegacyCompressionDisabled.enableAutoCompression, false);
+assert.equal(
+ migratedLegacyCompressionDisabled.compressionEveryN,
+ defaultSettings.compressionEveryN,
+);
+
console.log("default-settings tests passed");
diff --git a/tests/p0-regressions.mjs b/tests/p0-regressions.mjs
index 6fec55d..6349604 100644
--- a/tests/p0-regressions.mjs
+++ b/tests/p0-regressions.mjs
@@ -2679,7 +2679,8 @@ async function testAutoConsolidationRunsOnHighDuplicateRiskSingleNode() {
enableConsolidation: true,
consolidationAutoMinNewNodes: 2,
consolidationThreshold: 0.85,
- compressionEveryN: 0,
+ enableAutoCompression: false,
+ compressionEveryN: 10,
enableSynopsis: false,
enableReflection: false,
enableSleepCycle: false,
@@ -2706,7 +2707,7 @@ async function testAutoConsolidationRunsOnHighDuplicateRiskSingleNode() {
assert.equal(effects.batchStatus.autoCompressionScheduled, false);
assert.match(
effects.batchStatus.autoCompressionSkippedReason,
- /自动压缩已关闭/,
+ /自动压缩.*已关闭/,
);
}
@@ -2756,7 +2757,8 @@ async function testAutoConsolidationSkipsLowRiskSingleNode() {
enableConsolidation: true,
consolidationAutoMinNewNodes: 2,
consolidationThreshold: 0.85,
- compressionEveryN: 0,
+ enableAutoCompression: false,
+ compressionEveryN: 10,
enableSynopsis: false,
enableReflection: false,
enableSleepCycle: false,
@@ -2822,6 +2824,7 @@ async function testAutoCompressionRunsOnlyOnConfiguredInterval() {
8,
{
enableConsolidation: false,
+ enableAutoCompression: true,
compressionEveryN: 10,
enableSynopsis: false,
enableReflection: false,
@@ -2873,6 +2876,7 @@ async function testAutoCompressionSkipsWhenNotScheduledOrNoCandidates() {
9,
{
enableConsolidation: false,
+ enableAutoCompression: true,
compressionEveryN: 10,
enableSynopsis: false,
enableReflection: false,
@@ -2930,6 +2934,7 @@ async function testAutoCompressionSkipsWhenNotScheduledOrNoCandidates() {
10,
{
enableConsolidation: false,
+ enableAutoCompression: true,
compressionEveryN: 10,
enableSynopsis: false,
enableReflection: false,