diff --git a/memory/state.template.json b/memory/state.template.json index d20c4f7..febf73a 100644 --- a/memory/state.template.json +++ b/memory/state.template.json @@ -1,6 +1,6 @@ { "version": 2, - "updatedAt": "2026-11-07T06:24:40.735Z", + "updatedAt": "2026-11-07T06:35:38.878Z", "entries": [ { "id": "0f90dcf0-5d43-4ca4-bf86-ad8b3ee20382", @@ -17,8 +17,8 @@ "version": 2, "createdAt": "2026-11-02T23:35:16.258Z", "updatedAt": "2026-11-03T13:09:07.319Z", - "lastRecalled": "2026-11-07T06:13:58.509Z", - "recallCount": 5, + "lastRecalled": "2026-11-07T06:30:49.448Z", + "recallCount": 7, "bytes": 1545 }, { @@ -36,8 +36,8 @@ "version": 3, "createdAt": "2026-11-02T23:35:16.258Z", "updatedAt": "2026-11-07T06:22:42.557Z", - "lastRecalled": "2026-11-07T06:13:58.509Z", - "recallCount": 5, + "lastRecalled": "2026-11-07T06:30:49.448Z", + "recallCount": 7, "bytes": 1506 }, { @@ -55,8 +55,8 @@ "version": 2, "createdAt": "2026-11-02T23:35:16.258Z", "updatedAt": "2026-11-07T06:23:52.855Z", - "lastRecalled": "2026-11-07T06:13:58.509Z", - "recallCount": 5, + "lastRecalled": "2026-11-07T06:30:49.448Z", + "recallCount": 7, "bytes": 2162 }, { @@ -74,8 +74,8 @@ "version": 4, "createdAt": "2026-11-02T23:35:16.258Z", "updatedAt": "2026-11-07T06:23:55.861Z", - "lastRecalled": "2026-11-07T06:13:58.509Z", - "recallCount": 5, + "lastRecalled": "2026-11-07T06:30:49.448Z", + "recallCount": 7, "bytes": 1488 }, { @@ -95,8 +95,8 @@ "version": 7, "createdAt": "2026-11-02T23:35:16.258Z", "updatedAt": "2026-11-07T06:24:09.423Z", - "lastRecalled": "2026-11-07T06:13:58.509Z", - "recallCount": 5, + "lastRecalled": "2026-11-07T06:30:49.448Z", + "recallCount": 7, "bytes": 2823 }, { @@ -114,8 +114,8 @@ "version": 2, "createdAt": "2026-11-02T23:35:16.258Z", "updatedAt": "2026-11-02T23:51:10.669Z", - "lastRecalled": "2026-11-07T06:13:58.509Z", - "recallCount": 5, + "lastRecalled": "2026-11-07T06:30:49.448Z", + "recallCount": 7, "bytes": 1487 }, { @@ -136,8 +136,8 @@ "version": 1, "createdAt": "2026-11-06T14:31:47.706Z", "updatedAt": "2026-11-06T14:31:47.706Z", - "lastRecalled": "2026-11-07T06:13:58.509Z", - "recallCount": 5, + "lastRecalled": "2026-11-07T06:30:49.448Z", + "recallCount": 7, "bytes": 1917 }, { @@ -158,8 +158,8 @@ "version": 1, "createdAt": "2026-11-07T03:58:24.727Z", "updatedAt": "2026-11-07T03:58:24.727Z", - "lastRecalled": "2026-11-07T06:13:58.509Z", - "recallCount": 5, + "lastRecalled": "2026-11-07T06:30:49.448Z", + "recallCount": 7, "bytes": 1706 }, { @@ -517,6 +517,29 @@ "lastRecalled": null, "recallCount": 0, "bytes": 1874 + }, + { + "id": "0b58af8d-6e1d-4803-bba3-6ff7398c7a52", + "track": "agent", + "scope": "user-global", + "workspaceKey": "", + "key": "project_memory_lifecycle", + "text": "Жизненный цикл памяти dsh-memory: архив, контракт протокола, порт из storage. Сделано 07.11.2026, коммиты b7558ea, 70f5f65, e616399, 5995fa1.\n\nПРОБЛЕМА. protocol_*-записи с always инжектились в каждый чат и врали: protocol_tools_and_rules говорил «dsh_bash блокирует метасимволы», а код уже спрашивал confirm. protocol_recovery вёл на несуществующий PART16. Директива описывала состояние на 03.11.2026. Поле state (active|done|archive) было в схеме, но getInjection его игнорировал — заархивировать always-запись было нельзя, только удалить.\n\nЧТО СДЕЛАНО. getInjection пропускает state=archive и state=done (bridge/memory.js). Три старые грабли заархивированы: pitfall_mjs_escaping, pitfall_crlf_mixed, pitfall_double_patch. Три протокола переписаны под текущий код: protocol_tools_and_rules (safe-list+confirm), protocol_pitfalls (большой oldText ломается и в SSE, CRLF нормализовать), protocol_recovery (актуальные файлы вместо PART16). Директива v5 — индекс файлов с датами. В protocol_memory_system v7 добавлено критическое правило: protocol_ с always = контракт с кодом, обновляется в том же коммите, расхождение = критический баг.\n\nПОРТ И CONFIRM. background.js и storage-bridge.js читают порт из chrome.storage (dshmem-bridge-port), дефолт 8766. В панели поле Port, сохраняется по change, требует F5. Health в логе пишет порт. confirm показывает команду dsh_bash (до 200 символов) или путь файлового инструмента, но не content/oldText (данные не показываются).\n\nГРАБЛИ. dsh_edit с большим oldText в README задвоил файл (1396 строк вместо 710) — откат через git checkout, замена скриптом по маркерам. Лимит 10 вызовов: пачки replace свыше 10 молча отбрасываются, версии не растут — проверять version после replace.", + "importance": "called", + "tags": [ + "project", + "memory", + "archive", + "protocol" + ], + "state": null, + "chatId": "", + "version": 1, + "createdAt": "2026-11-07T06:34:10.299Z", + "updatedAt": "2026-11-07T06:34:10.299Z", + "lastRecalled": null, + "recallCount": 0, + "bytes": 2539 } ], "chats": {}