Skip to content

Commit 74af79d

Browse files
committed
patch
1 parent 10aa2fa commit 74af79d

5 files changed

Lines changed: 772 additions & 2 deletions

File tree

TODO.md

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,33 @@ worker-testbed 2→3). До исправлений тест-сьют падал
123123
появлялись литеральные строки "undefined: ".
124124
- Исправление: пустой ключ рендерится пустой строкой-разделителем.
125125

126-
## Найденные и исправленные баги (17 итого)
126+
## 8-й заход: policy/навигационные гарды/адаптеры (+15 тестов, +1 баг)
127+
128+
### Новые тесты (15), сьют вырос до 124/124
129+
- test/spec/policy.test.mjs (7): бан/разбан через Policy utils (banClient/hasBan/
130+
unbanClient) с banMessage при complete; validateOutput с кастомным getBanMessage;
131+
MergePolicy отдаёт сообщение именно упавшей политики; повторный changeToAgent в одном
132+
выполнении кидает recursion-ошибку при CC_THROW_WHEN_NAVIGATION_RECURSION;
133+
changeToAgent на агента вне свармы возвращает false без смены; дубль session() на
134+
один clientId кидает "already exist"; swarm-колбэки onInit/onExecute/onAgentChanged/
135+
onDispose за жизненный цикл сессии
136+
- test/spec/adapters.test.mjs (8): Operator.useOperatorAdapter (кастомный
137+
OperatorInstance) + useOperatorCallbacks — полный цикл operator-агента; кастомный
138+
PersistState-адаптер (usePersistStateAdapter) с persist:true; кэш эмбеддингов
139+
поисковой строки между двумя take() — регрессионный тест бага №18;
140+
session.rate ограничивает повторный complete (возврат ""); Storage.createNumericIndex
141+
1→2; getPayload + getSessionContext внутри tool call; getAgentHistory содержит
142+
prompt/user/assistant; commitAssistantMessageForce виден в messages следующего
143+
комплишена
144+
145+
### Баг №18: ClientStorage.take не кэшировал эмбеддинг поисковой строки
146+
Файл: `src/client/ClientStorage.ts` (найден тестом AD3 в repro)
147+
- Для item'ов кэш эмбеддингов писался, а для search-текста — только читался: на промахе
148+
эмбеддинг пересчитывался при каждом take() с тем же запросом (created=["aa","zz","zz"]).
149+
- Исправление: на промахе после createEmbedding вызывается writeEmbeddingCache для
150+
hash поисковой строки.
151+
152+
## Найденные и исправленные баги (18 итого)
127153

128154
### 1. Дедлок waitForOutput при functools-kit v4 (причина 39 упавших тестов)
129155
Файл: `src/client/ClientSwarm.ts`

src/client/ClientStorage.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -397,15 +397,21 @@ export class ClientStorage<T extends IStorageData = IStorageData>
397397
}
398398
);
399399
const indexed = new SortedArray<T>();
400+
const searchHash = createSHA256Hash(search);
400401
let searchEmbeddings = await this.params.readEmbeddingCache(
401402
this.params.embedding,
402-
createSHA256Hash(search)
403+
searchHash
403404
);
404405
if (!searchEmbeddings) {
405406
searchEmbeddings = await this.params.createEmbedding(
406407
search,
407408
this.params.embedding
408409
);
410+
await this.params.writeEmbeddingCache(
411+
searchEmbeddings,
412+
this.params.embedding,
413+
searchHash
414+
);
409415
}
410416
if (this.params.onCreate) {
411417
this.params.onCreate(

test/index.mjs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ import "./spec/commit.test.mjs";
1818
import "./spec/orchestration.test.mjs";
1919
import "./spec/compute.test.mjs";
2020
import "./spec/infra.test.mjs";
21+
import "./spec/policy.test.mjs";
22+
import "./spec/adapters.test.mjs";
2123

2224
run(import.meta.url, () => {
2325
console.log("All tests are finished");

0 commit comments

Comments
 (0)