[AEP][high] AEP-20260924-BE001: restore corpus vectors after a failed upsert - #335
Conversation
A failed Qdrant chunk stops the sync and upserts the original vectors for ids already stored. The sedimentation logs no longer say the cycle rolled back, and the collision log stays until every chunk succeeds.
|
Review of
Tier B on this SHA: 44, severity critical. This commit does not merge. Parent reading note: |
|
Fix pushed as Offline distillation snapshots adapter bytes before either trained save and writes those bytes back with Parent re-ran |
Description
A failed Qdrant chunk during sedimentation stops later chunks and upserts the pre-cycle vectors for ids already written. The collision log is cleared only when every chunk succeeds. Offline distillation and a cycle that started with no adapter file reload the pre-cycle adapter after a failed corpus commit.
Follow-up
a9d1225is the commit this score covers.cf8aab1did not.Type of Change
Testing
Spark Python
unittest test_sedimentation_corpus_rollback.py test_sedimentation_trainer.py: 29 passed ona9d1225. Ruff passed on the seven touched files. Reviewgrok-tierb-335b-20260924re-ran that suite. No live Qdrant server and no browser.Brutal Honesty
cf8aab1scored 44 because the offline snapshot was taken after the trained save. This score is fora9d1225.176e1f4was not pushed.EVIDENCE: 29 sedimentation tests passed on a9d1225; review grok-tierb-335b-20260924
SMOKE: targeted unittest only; bash scripts/smoke.sh was not run on this branch
BHS_SELF_DRAFT: 100
BHS_SELF_DRAFT_AGENT: grok-aep-fix-20260924
BHS_TIER_B: 100
BHS_TIER_B_AGENT: grok-tierb-335b-20260924
BHS_TIER_B_SEVERITY: none
BHS_OFFICIAL: 100
CARRY_FORWARD: none
DEFERRED_SCOPE: none
LOOP_ITERATIONS: 2
OPERATOR_OVERRIDE: none