feat(sync): tombstone, pull dall'export, ritocchi flush e fallback su 404
Prepara il client al gateway 2.12.0 (export + soft delete), mantenendo la compatibilità con la 2.11.0 in produzione fino al redeploy. - tombstone: colonna `deleted_at` (+ migrazione), monotona nel merge, esclusa dalle ricerche locali di default; `--deleted` in CLI e /qmem:local find; conteggio nel report/status; marker 🗑 nei risultati di qmem_get - `pull` usa `include_deleted=true` e mappa l'intero payload dell'export (incluso deleted_at), così il mirror impara le cancellazioni - rate limit: pace del flush 600 ms (100 req/min < 120/min del gateway) e messaggio dedicato su 429 (prima 300-400 ms → possibile 429 con code grandi) - `qmem_get`: fallback sull'indice locale anche sul 404 (un id in coda non è ancora sul gateway) con etichetta "non presente sul gateway" - test: 27 controlli (nuovi: pull con tombstone, esclusione/visibilità tombstone, ricerca del record esportato) Verificato con la suite locale completa: 27/27.
This commit is contained in:
@@ -60,7 +60,7 @@ export function registerQmemLocal(pi: ExtensionAPI) {
|
||||
if (sub === "find") {
|
||||
const query = rest.filter((a) => !a.startsWith("--")).join(" ").trim();
|
||||
if (!query) {
|
||||
ctx.ui.notify("Uso: /qmem:local find <query> [--all] [--kind K] [--project P]", "warning");
|
||||
ctx.ui.notify("Uso: /qmem:local find <query> [--all] [--deleted] [--kind K] [--project P]", "warning");
|
||||
return;
|
||||
}
|
||||
const has = (f: string) => rest.includes(`--${f}`);
|
||||
@@ -76,6 +76,7 @@ export function registerQmemLocal(pi: ExtensionAPI) {
|
||||
scope: val("scope"),
|
||||
include_superseded: has("all"),
|
||||
include_private: has("private"),
|
||||
include_deleted: has("deleted"),
|
||||
top_k: Number(val("top")) || 5,
|
||||
},
|
||||
{ dbFile },
|
||||
|
||||
Reference in New Issue
Block a user