@neuralis/brain-core 0.2.1 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -3
- package/app/filesystem/api/README.md +1 -1
- package/app/filesystem/api/index.ts +24 -24
- package/app/filesystem/store/README.md +1 -1
- package/app/filesystem/store/filesystemStore.ts +11 -3
- package/app/filesystem/store/listSlice.ts +1 -0
- package/app/filesystem/ui/FileEditor.tsx +42 -4
- package/app/filesystem/ui/GitControlPanel.tsx +0 -1
- package/app/filesystem/ui/GitDiffView.tsx +12 -5
- package/app/filesystem/ui/GitFileDiff.tsx +15 -9
- package/app/filesystem/ui/PendingChangesPanel.tsx +95 -34
- package/app/filesystem/ui/README.md +9 -9
- package/app/filesystem/ui/SourcesPanel.tsx +1 -3
- package/app/filesystem/ui/Toolbar.tsx +5 -4
- package/app/filesystem/ui/VectorHealthPanel.tsx +43 -14
- package/dist/app/host.js +40 -40
- package/dist/src/config/env.d.ts +4 -0
- package/dist/src/config/env.d.ts.map +1 -1
- package/dist/src/config/env.js +13 -0
- package/dist/src/config/env.js.map +1 -1
- package/dist/src/connectors/LocalDiskConnector.d.ts +9 -1
- package/dist/src/connectors/LocalDiskConnector.d.ts.map +1 -1
- package/dist/src/connectors/LocalDiskConnector.js +51 -2
- package/dist/src/connectors/LocalDiskConnector.js.map +1 -1
- package/dist/src/domain/healthTypes.d.ts +1 -7
- package/dist/src/domain/healthTypes.d.ts.map +1 -1
- package/dist/src/domain/pendingChange.d.ts +31 -0
- package/dist/src/domain/pendingChange.d.ts.map +1 -1
- package/dist/src/domain/pendingChange.js.map +1 -1
- package/dist/src/routes/health.js +2 -3
- package/dist/src/routes/health.js.map +1 -1
- package/dist/src/routes/pending.d.ts +7 -7
- package/dist/src/routes/pending.d.ts.map +1 -1
- package/dist/src/routes/pending.js +21 -21
- package/dist/src/routes/pending.js.map +1 -1
- package/dist/src/services/FilesystemService.d.ts +13 -61
- package/dist/src/services/FilesystemService.d.ts.map +1 -1
- package/dist/src/services/FilesystemService.js +47 -189
- package/dist/src/services/FilesystemService.js.map +1 -1
- package/dist/src/services/FilesystemUiService.d.ts +33 -1
- package/dist/src/services/FilesystemUiService.d.ts.map +1 -1
- package/dist/src/services/FilesystemUiService.js +50 -1
- package/dist/src/services/FilesystemUiService.js.map +1 -1
- package/dist/src/store/PendingChangeStore.d.ts +3 -0
- package/dist/src/store/PendingChangeStore.d.ts.map +1 -1
- package/dist/src/store/PendingChangeStore.js +84 -25
- package/dist/src/store/PendingChangeStore.js.map +1 -1
- package/dist/src/usecases/orphanedPending.d.ts +2 -2
- package/dist/src/usecases/orphanedPending.d.ts.map +1 -1
- package/dist/src/usecases/orphanedPending.js +5 -3
- package/dist/src/usecases/orphanedPending.js.map +1 -1
- package/dist/src/usecases/pendingListing.d.ts +34 -0
- package/dist/src/usecases/pendingListing.d.ts.map +1 -0
- package/dist/src/usecases/pendingListing.js +244 -0
- package/dist/src/usecases/pendingListing.js.map +1 -0
- package/dist/src/usecases/vectorMaintenance.d.ts +6 -9
- package/dist/src/usecases/vectorMaintenance.d.ts.map +1 -1
- package/dist/src/usecases/vectorMaintenance.js +4 -13
- package/dist/src/usecases/vectorMaintenance.js.map +1 -1
- package/dist/src/vector/InMemoryVectorIndex.d.ts.map +1 -1
- package/dist/src/vector/InMemoryVectorIndex.js +30 -9
- package/dist/src/vector/InMemoryVectorIndex.js.map +1 -1
- package/package.json +26 -4
- package/rules/brain-rules.md +1 -1
- package/skills/create-package/SKILL.md +3 -3
- package/skills/create-package/references/config-and-credentials.md +1 -1
- package/skills/create-package/references/runtime-and-build.md +1 -1
- package/skills/create-package/references/skills-and-context.md +25 -12
- package/skills/create-package/references/test-and-ship.md +9 -16
- package/skills/create-package/scripts/verify-loaded.sh +18 -27
- package/skills/git/SKILL.md +27 -29
- package/skills/manage-files/SKILL.md +37 -32
- package/skills/manage-files/scripts/upload.sh +7 -9
- package/skills/manage-files/scripts/write.sh +2 -6
- package/skills/manage-sources/SKILL.md +93 -95
- package/skills/manage-sources/scripts/reembed.sh +2 -6
- package/skills/manage-uri-policy/SKILL.md +30 -58
- package/skills/git/scripts/git.sh +0 -48
- package/skills/manage-files/scripts/approve.sh +0 -9
- package/skills/manage-files/scripts/list.sh +0 -9
- package/skills/manage-files/scripts/pending.sh +0 -23
- package/skills/manage-files/scripts/raw.sh +0 -11
- package/skills/manage-files/scripts/read.sh +0 -9
- package/skills/manage-files/scripts/search.sh +0 -15
- package/skills/manage-sources/scripts/browse.sh +0 -12
- package/skills/manage-sources/scripts/cancel.sh +0 -14
- package/skills/manage-sources/scripts/create.sh +0 -13
- package/skills/manage-sources/scripts/delete.sh +0 -17
- package/skills/manage-sources/scripts/discoverable.sh +0 -6
- package/skills/manage-sources/scripts/get.sh +0 -7
- package/skills/manage-sources/scripts/kind-schema.sh +0 -7
- package/skills/manage-sources/scripts/kinds.sh +0 -6
- package/skills/manage-sources/scripts/list.sh +0 -6
- package/skills/manage-sources/scripts/purge-index.sh +0 -18
- package/skills/manage-sources/scripts/reindex.sh +0 -13
- package/skills/manage-sources/scripts/reset.sh +0 -11
- package/skills/manage-sources/scripts/set-enabled.sh +0 -17
- package/skills/manage-sources/scripts/sync-status.sh +0 -14
- package/skills/manage-sources/scripts/sync.sh +0 -13
- package/skills/manage-sources/scripts/update.sh +0 -18
- package/skills/manage-uri-policy/scripts/manifests.sh +0 -20
- package/skills/manage-uri-policy/scripts/set-uri.sh +0 -66
- package/skills/manage-uri-policy/scripts/show-uri.sh +0 -23
|
@@ -30,6 +30,7 @@
|
|
|
30
30
|
*/
|
|
31
31
|
import type { PendingChangeRecord, PendingPreviewContent } from '../domain/pendingChange.js';
|
|
32
32
|
export type PendingChangeFilter = {
|
|
33
|
+
uri?: string;
|
|
33
34
|
userId?: string;
|
|
34
35
|
agentId?: string;
|
|
35
36
|
sourceSlug?: string;
|
|
@@ -50,6 +51,8 @@ export declare class PendingChangeStore {
|
|
|
50
51
|
private readonly projectsRoot;
|
|
51
52
|
private readonly jsonl;
|
|
52
53
|
constructor(projectsRoot: string);
|
|
54
|
+
/** A single operation may hold this data snapshot; it contains no permissions. */
|
|
55
|
+
snapshot(projectId: string, uri?: string): Promise<PendingChangeRecord[]>;
|
|
53
56
|
/** Append a new pending-change record (idempotent at the log level — folding
|
|
54
57
|
* by `id` collapses duplicates). Cheap; safe to fire-and-forget off the
|
|
55
58
|
* stream critical path. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PendingChangeStore.d.ts","sourceRoot":"","sources":["../../../src/store/PendingChangeStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAKH,OAAO,KAAK,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAI7F,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IACvC,EAAE,CAAC,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC/B,gFAAgF;IAChF,MAAM,CAAC,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAC;CACxC,CAAC;AAEF;;;8DAG8D;AAC9D,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,mBAAmB,EAAE,MAAM,EAAE,mBAAmB,GAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"PendingChangeStore.d.ts","sourceRoot":"","sources":["../../../src/store/PendingChangeStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,6 +30,7 @@
|
|
|
30
30
|
*/
|
|
31
31
|
import { assertRecordFormat, FORMAT_VERSION_FIELD, JsonlAppender } from '@neuralis/package-system/data';
|
|
32
32
|
import { child, containedOrThrow, ensureDir, parentOf, resolvePackageDataDir } from '@neuralis/package-system/paths';
|
|
33
|
+
import { getPendingJournalCacheBytes } from '../config/env.js';
|
|
33
34
|
import { computeContentHash } from '../domain/contentHash.js';
|
|
34
35
|
import { PENDING_CHANGES_FORMAT } from './dataFormats.js';
|
|
35
36
|
/** Field-level filter shared by the journal fold AND the dual-source merge in
|
|
@@ -37,6 +38,8 @@ import { PENDING_CHANGES_FORMAT } from './dataFormats.js';
|
|
|
37
38
|
* the same caller filters. Does NOT enforce the per-record security floor —
|
|
38
39
|
* that is the service's owner-isolation + uri-policy pass. */
|
|
39
40
|
export function matchesPendingFilter(rec, filter) {
|
|
41
|
+
if (filter.uri && rec.uri !== filter.uri)
|
|
42
|
+
return false;
|
|
40
43
|
if (filter.userId && rec.userId !== filter.userId)
|
|
41
44
|
return false;
|
|
42
45
|
if (filter.agentId && rec.agentId !== filter.agentId)
|
|
@@ -63,9 +66,71 @@ function safeBlobId(id) {
|
|
|
63
66
|
export class PendingChangeStore {
|
|
64
67
|
projectsRoot;
|
|
65
68
|
jsonl = new JsonlAppender();
|
|
69
|
+
#folds = new Map();
|
|
70
|
+
#refreshes = new Map();
|
|
66
71
|
constructor(projectsRoot) {
|
|
67
72
|
this.projectsRoot = projectsRoot;
|
|
68
73
|
}
|
|
74
|
+
/** Data only: every listing and mutation must run its own fresh authority gates. */
|
|
75
|
+
async #acquire(projectId) {
|
|
76
|
+
const active = this.#refreshes.get(projectId);
|
|
77
|
+
if (active)
|
|
78
|
+
return active;
|
|
79
|
+
const budget = getPendingJournalCacheBytes();
|
|
80
|
+
const refresh = this.#refresh(projectId, budget);
|
|
81
|
+
this.#refreshes.set(projectId, refresh);
|
|
82
|
+
try {
|
|
83
|
+
return await refresh;
|
|
84
|
+
}
|
|
85
|
+
finally {
|
|
86
|
+
if (this.#refreshes.get(projectId) === refresh)
|
|
87
|
+
this.#refreshes.delete(projectId);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
async #refresh(projectId, budget) {
|
|
91
|
+
let fold = this.#folds.get(projectId) ?? { byId: new Map(), byUri: new Map(), bytes: 0, receipt: null };
|
|
92
|
+
this.#folds.delete(projectId);
|
|
93
|
+
let resetApplied = false;
|
|
94
|
+
const delta = await this.jsonl.readDelta(this.#changesPath(projectId), fold.receipt, (rec, reset) => {
|
|
95
|
+
if (reset && !resetApplied) {
|
|
96
|
+
fold = { byId: new Map(), byUri: new Map(), bytes: 0, receipt: null };
|
|
97
|
+
resetApplied = true;
|
|
98
|
+
}
|
|
99
|
+
if (!rec || typeof rec.id !== 'string' || rec.projectId !== projectId)
|
|
100
|
+
return;
|
|
101
|
+
const old = fold.byId.get(rec.id);
|
|
102
|
+
if (old) {
|
|
103
|
+
fold.bytes -= Buffer.byteLength(JSON.stringify(old), 'utf8') + 128;
|
|
104
|
+
fold.byUri.get(old.uri)?.delete(old.id);
|
|
105
|
+
if (!fold.byUri.get(old.uri)?.size)
|
|
106
|
+
fold.byUri.delete(old.uri);
|
|
107
|
+
}
|
|
108
|
+
fold.byId.set(rec.id, rec);
|
|
109
|
+
const ids = fold.byUri.get(rec.uri) ?? new Set();
|
|
110
|
+
ids.add(rec.id);
|
|
111
|
+
fold.byUri.set(rec.uri, ids);
|
|
112
|
+
fold.bytes += Buffer.byteLength(JSON.stringify(rec), 'utf8') + 128;
|
|
113
|
+
});
|
|
114
|
+
if (delta.reset && !resetApplied)
|
|
115
|
+
fold = { byId: new Map(), byUri: new Map(), bytes: 0, receipt: null };
|
|
116
|
+
fold.receipt = delta.receipt;
|
|
117
|
+
let retained = [...this.#folds.values()].reduce((sum, entry) => sum + entry.bytes, 0);
|
|
118
|
+
while (retained + Math.min(fold.bytes, budget) > budget && this.#folds.size) {
|
|
119
|
+
const key = this.#folds.keys().next().value;
|
|
120
|
+
if (key === undefined)
|
|
121
|
+
break;
|
|
122
|
+
retained -= this.#folds.get(key).bytes;
|
|
123
|
+
this.#folds.delete(key);
|
|
124
|
+
}
|
|
125
|
+
if (fold.bytes <= budget)
|
|
126
|
+
this.#folds.set(projectId, fold);
|
|
127
|
+
return fold;
|
|
128
|
+
}
|
|
129
|
+
/** A single operation may hold this data snapshot; it contains no permissions. */
|
|
130
|
+
async snapshot(projectId, uri) {
|
|
131
|
+
const fold = await this.#acquire(projectId);
|
|
132
|
+
return uri ? [...(fold.byUri.get(uri) ?? [])].map((id) => fold.byId.get(id)) : [...fold.byId.values()];
|
|
133
|
+
}
|
|
69
134
|
#pendingDir(projectId) {
|
|
70
135
|
return containedOrThrow(resolvePackageDataDir(this.projectsRoot, projectId, 'brain-core'), '_pending', 'pending-change log path');
|
|
71
136
|
}
|
|
@@ -100,20 +165,18 @@ export class PendingChangeStore {
|
|
|
100
165
|
* stream critical path. */
|
|
101
166
|
async record(rec) {
|
|
102
167
|
await this.jsonl.append(this.#changesPath(rec.projectId), rec);
|
|
168
|
+
if (this.#folds.has(rec.projectId) || this.#refreshes.has(rec.projectId)) {
|
|
169
|
+
await this.#refreshes.get(rec.projectId);
|
|
170
|
+
await this.#acquire(rec.projectId);
|
|
171
|
+
}
|
|
103
172
|
}
|
|
104
173
|
/** Fold id → latest record for the project, applying `filter`. Returns only
|
|
105
174
|
* `pending_review` rows unless `filter.status` overrides. Missing file → []. */
|
|
106
175
|
async listPending(projectId, filter = {}) {
|
|
107
|
-
const all = await this.
|
|
108
|
-
const latest = new Map();
|
|
109
|
-
for (const rec of all) {
|
|
110
|
-
if (!rec || typeof rec.id !== 'string')
|
|
111
|
-
continue;
|
|
112
|
-
latest.set(rec.id, rec);
|
|
113
|
-
}
|
|
176
|
+
const all = await this.snapshot(projectId, filter.uri);
|
|
114
177
|
const wantStatus = filter.status ?? 'pending_review';
|
|
115
178
|
const out = [];
|
|
116
|
-
for (const rec of
|
|
179
|
+
for (const rec of all) {
|
|
117
180
|
if (rec.status !== wantStatus)
|
|
118
181
|
continue;
|
|
119
182
|
if (!matchesPendingFilter(rec, filter))
|
|
@@ -125,13 +188,7 @@ export class PendingChangeStore {
|
|
|
125
188
|
}
|
|
126
189
|
/** Read the single latest record for an id (any status), or null. */
|
|
127
190
|
async getLatest(projectId, id) {
|
|
128
|
-
|
|
129
|
-
let found = null;
|
|
130
|
-
for (const rec of all) {
|
|
131
|
-
if (rec?.id === id)
|
|
132
|
-
found = rec;
|
|
133
|
-
}
|
|
134
|
-
return found;
|
|
191
|
+
return (await this.#acquire(projectId)).byId.get(id) ?? null;
|
|
135
192
|
}
|
|
136
193
|
async #transition(projectId, id, status, by, nowIso) {
|
|
137
194
|
const current = await this.getLatest(projectId, id);
|
|
@@ -233,16 +290,18 @@ export class PendingChangeStore {
|
|
|
233
290
|
* whole compaction (kernel `RecordNewerError`, nothing written); reads and
|
|
234
291
|
* appends are unaffected. */
|
|
235
292
|
async compact(projectId) {
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
293
|
+
await this.jsonl.compact(this.#changesPath(projectId), (all) => {
|
|
294
|
+
const latest = new Map();
|
|
295
|
+
for (const rec of all) {
|
|
296
|
+
if (!rec?.id)
|
|
297
|
+
continue;
|
|
298
|
+
const stored = rec[FORMAT_VERSION_FIELD];
|
|
299
|
+
assertRecordFormat(PENDING_CHANGES_FORMAT.kind, typeof stored === 'number' ? stored : undefined, PENDING_CHANGES_FORMAT.version);
|
|
300
|
+
latest.set(rec.id, rec);
|
|
301
|
+
}
|
|
302
|
+
return [...latest.values()];
|
|
303
|
+
});
|
|
304
|
+
this.#folds.delete(projectId);
|
|
246
305
|
}
|
|
247
306
|
}
|
|
248
307
|
//# sourceMappingURL=PendingChangeStore.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PendingChangeStore.js","sourceRoot":"","sources":["../../../src/store/PendingChangeStore.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PendingChangeStore.js","sourceRoot":"","sources":["../../../src/store/PendingChangeStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -63,7 +63,7 @@ export declare function classifyTargetState(deps: OrphanProbeDeps, projectId: st
|
|
|
63
63
|
export declare function baselineUnrecoverable(deps: OrphanProbeDeps, projectId: string, rec: PendingChangeRecord): Promise<boolean>;
|
|
64
64
|
/** The orphan predicate. A probe failure degrades to NOT orphaned (the safe,
|
|
65
65
|
* won't-wrongly-discard direction). */
|
|
66
|
-
export declare function isOrphanedPending(deps: OrphanProbeDeps, projectId: string, rec: PendingChangeRecord): Promise<boolean>;
|
|
66
|
+
export declare function isOrphanedPending(deps: OrphanProbeDeps, projectId: string, rec: PendingChangeRecord, onUnavailable?: () => void): Promise<boolean>;
|
|
67
67
|
/**
|
|
68
68
|
* Which of ALREADY-LISTED records are orphaned, as their ids.
|
|
69
69
|
*
|
|
@@ -74,5 +74,5 @@ export declare function isOrphanedPending(deps: OrphanProbeDeps, projectId: stri
|
|
|
74
74
|
* `pendingOrphanProbeConcurrency` probes run at once and each degrades to NOT-orphaned
|
|
75
75
|
* on failure, so one bad record can never make another look discardable.
|
|
76
76
|
*/
|
|
77
|
-
export declare function selectOrphanedPendingIds(deps: OrphanProbeDeps, projectId: string, records: readonly PendingChangeRecord[]): Promise<string[]>;
|
|
77
|
+
export declare function selectOrphanedPendingIds(deps: OrphanProbeDeps, projectId: string, records: readonly PendingChangeRecord[], signal?: AbortSignal, onUnavailable?: () => void): Promise<string[]>;
|
|
78
78
|
//# sourceMappingURL=orphanedPending.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orphanedPending.d.ts","sourceRoot":"","sources":["../../../src/usecases/orphanedPending.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAExE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAMtE;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAE1C,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,cAAc,GAAG,aAAa,CAAC;AAEjF,MAAM,MAAM,eAAe,GAAG;IAC5B,aAAa,CAAC,EAAE,gBAAgB,CAAC;IACjC;8DAC0D;IAC1D,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,aAAa,CAAC;IAChD,iFAAiF;IACjF,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/F,yFAAyF;IACzF,gBAAgB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC5E;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC,CAAC;CAChD,CAAC;AA0BF;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,eAAe,EACrB,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,mBAAmB,GACvB,OAAO,CAAC,WAAW,CAAC,CA8CtB;AAED;;iBAEiB;AACjB,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,eAAe,EACrB,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,mBAAmB,GACvB,OAAO,CAAC,OAAO,CAAC,CAMlB;AAED;uCACuC;AACvC,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,eAAe,EACrB,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,mBAAmB,
|
|
1
|
+
{"version":3,"file":"orphanedPending.d.ts","sourceRoot":"","sources":["../../../src/usecases/orphanedPending.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAExE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAMtE;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAE1C,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,cAAc,GAAG,aAAa,CAAC;AAEjF,MAAM,MAAM,eAAe,GAAG;IAC5B,aAAa,CAAC,EAAE,gBAAgB,CAAC;IACjC;8DAC0D;IAC1D,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,aAAa,CAAC;IAChD,iFAAiF;IACjF,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/F,yFAAyF;IACzF,gBAAgB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC5E;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC,CAAC;CAChD,CAAC;AA0BF;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,eAAe,EACrB,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,mBAAmB,GACvB,OAAO,CAAC,WAAW,CAAC,CA8CtB;AAED;;iBAEiB;AACjB,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,eAAe,EACrB,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,mBAAmB,GACvB,OAAO,CAAC,OAAO,CAAC,CAMlB;AAED;uCACuC;AACvC,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,eAAe,EACrB,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,mBAAmB,EACxB,aAAa,CAAC,EAAE,MAAM,IAAI,GACzB,OAAO,CAAC,OAAO,CAAC,CAOlB;AAED;;;;;;;;;GASG;AACH,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,eAAe,EACrB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,SAAS,mBAAmB,EAAE,EACvC,MAAM,CAAC,EAAE,WAAW,EACpB,aAAa,CAAC,EAAE,MAAM,IAAI,GACzB,OAAO,CAAC,MAAM,EAAE,CAAC,CAKnB"}
|
|
@@ -130,8 +130,10 @@ export async function baselineUnrecoverable(deps, projectId, rec) {
|
|
|
130
130
|
}
|
|
131
131
|
/** The orphan predicate. A probe failure degrades to NOT orphaned (the safe,
|
|
132
132
|
* won't-wrongly-discard direction). */
|
|
133
|
-
export async function isOrphanedPending(deps, projectId, rec) {
|
|
133
|
+
export async function isOrphanedPending(deps, projectId, rec, onUnavailable) {
|
|
134
134
|
const state = await classifyTargetState(deps, projectId, rec).catch(() => 'unavailable');
|
|
135
|
+
if (state === 'unavailable')
|
|
136
|
+
onUnavailable?.();
|
|
135
137
|
const targetUnreadable = state === 'missing' || state === 'unresolvable';
|
|
136
138
|
if (!targetUnreadable)
|
|
137
139
|
return false;
|
|
@@ -149,9 +151,9 @@ export async function isOrphanedPending(deps, projectId, rec) {
|
|
|
149
151
|
* `pendingOrphanProbeConcurrency` probes run at once and each degrades to NOT-orphaned
|
|
150
152
|
* on failure, so one bad record can never make another look discardable.
|
|
151
153
|
*/
|
|
152
|
-
export async function selectOrphanedPendingIds(deps, projectId, records) {
|
|
154
|
+
export async function selectOrphanedPendingIds(deps, projectId, records, signal, onUnavailable) {
|
|
153
155
|
const concurrency = Math.max(1, Math.floor(getBrainConfigNumber('pendingOrphanProbeConcurrency', undefined, ORPHAN_PROBE_CONCURRENCY)));
|
|
154
|
-
const flags = await mapWithConcurrency(records, concurrency, (rec) => isOrphanedPending(deps, projectId, rec).catch(() => false));
|
|
156
|
+
const flags = await mapWithConcurrency(records, concurrency, (rec) => { signal?.throwIfAborted(); return isOrphanedPending(deps, projectId, rec, onUnavailable).catch(() => { onUnavailable?.(); return false; }); });
|
|
155
157
|
return records.filter((_, i) => flags[i]).map((rec) => rec.id);
|
|
156
158
|
}
|
|
157
159
|
//# sourceMappingURL=orphanedPending.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orphanedPending.js","sourceRoot":"","sources":["../../../src/usecases/orphanedPending.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"orphanedPending.js","sourceRoot":"","sources":["../../../src/usecases/orphanedPending.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { ExecutionContext } from '../domain/ExecutionContext.js';
|
|
2
|
+
import type { FilesystemNode } from '../domain/types.js';
|
|
3
|
+
import { type PendingChangeRecord, type PendingChangePage, type PendingCount, type PendingRepairPage } from '../domain/pendingChange.js';
|
|
4
|
+
import { type PendingChangeFilter, type PendingChangeStore } from '../store/PendingChangeStore.js';
|
|
5
|
+
import type { VectorIndexPort } from '../vector/types.js';
|
|
6
|
+
import { type OrphanProbeDeps } from './orphanedPending.js';
|
|
7
|
+
export type PendingPageFilter = PendingChangeFilter & {
|
|
8
|
+
limit?: number;
|
|
9
|
+
cursor?: string;
|
|
10
|
+
};
|
|
11
|
+
export type PendingListingPorts = {
|
|
12
|
+
store?: PendingChangeStore;
|
|
13
|
+
vector: VectorIndexPort<FilesystemNode>;
|
|
14
|
+
visible(rec: PendingChangeRecord): Promise<boolean>;
|
|
15
|
+
orphan: OrphanProbeDeps;
|
|
16
|
+
discard(id: string): Promise<{
|
|
17
|
+
ok: boolean;
|
|
18
|
+
error?: string;
|
|
19
|
+
discarded?: boolean;
|
|
20
|
+
}>;
|
|
21
|
+
warn(branch: 'journal' | 'vector', error: unknown): void;
|
|
22
|
+
};
|
|
23
|
+
/** Complete current reconstruction before slicing; backend offsets never enter public cursors. */
|
|
24
|
+
export declare function listPendingPage(ports: PendingListingPorts, ctx: ExecutionContext, filter?: PendingPageFilter, options?: {
|
|
25
|
+
orphans?: boolean;
|
|
26
|
+
count?: boolean;
|
|
27
|
+
signal?: AbortSignal;
|
|
28
|
+
}): Promise<PendingChangePage | PendingCount>;
|
|
29
|
+
/** One visible batch, sequential fresh discard gates; a started effect always finishes. */
|
|
30
|
+
export declare function repairPendingPage(ports: PendingListingPorts, ctx: ExecutionContext, filter?: PendingPageFilter, options?: {
|
|
31
|
+
dryRun?: boolean;
|
|
32
|
+
signal?: AbortSignal;
|
|
33
|
+
}): Promise<PendingRepairPage>;
|
|
34
|
+
//# sourceMappingURL=pendingListing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pendingListing.d.ts","sourceRoot":"","sources":["../../../src/usecases/pendingListing.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAc,KAAK,mBAAmB,EAAE,KAAK,iBAAiB,EAAE,KAAK,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACrJ,OAAO,EAAwB,KAAK,mBAAmB,EAAE,KAAK,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACzH,OAAO,KAAK,EAAE,eAAe,EAAe,MAAM,oBAAoB,CAAC;AAGvE,OAAO,EAA4B,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGtF,MAAM,MAAM,iBAAiB,GAAG,mBAAmB,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAC1F,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAC3B,MAAM,EAAE,eAAe,CAAC,cAAc,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACpD,MAAM,EAAE,eAAe,CAAC;IACxB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACnF,IAAI,CAAC,MAAM,EAAE,SAAS,GAAG,QAAQ,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;CAC1D,CAAC;AA0EF,kGAAkG;AAClG,wBAAsB,eAAe,CAAC,KAAK,EAAE,mBAAmB,EAAE,GAAG,EAAE,gBAAgB,EACrF,MAAM,GAAE,iBAAsB,EAAE,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAAO,GAAG,OAAO,CAAC,iBAAiB,GAAG,YAAY,CAAC,CAmEvJ;AAED,2FAA2F;AAC3F,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,mBAAmB,EAAE,GAAG,EAAE,gBAAgB,EACvF,MAAM,GAAE,iBAAsB,EAAE,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAAO,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAwCtH"}
|
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
import { createHash } from 'node:crypto';
|
|
2
|
+
import { ackHintFor } from '../domain/pendingChange.js';
|
|
3
|
+
import { matchesPendingFilter } from '../store/PendingChangeStore.js';
|
|
4
|
+
import { pendingRecordFromNode } from './pendingReview.js';
|
|
5
|
+
import { pickUriNode } from './chunkUpsert.js';
|
|
6
|
+
import { selectOrphanedPendingIds } from './orphanedPending.js';
|
|
7
|
+
import { getPendingRepairBatchSize } from '../config/env.js';
|
|
8
|
+
const FIELDS = ['id', 'uri', 'status', 'version.changedAt', 'version.diff', 'version.baseline.content_hash', 'version.baseline.uri', 'version.baseline.status', 'projectId', 'userId', 'agentId', 'createdAt', 'updatedAt', 'content_hash'];
|
|
9
|
+
function scopeKey(ctx, filter) {
|
|
10
|
+
const { cursor: _cursor, limit: _limit, ...selection } = filter;
|
|
11
|
+
return createHash('sha256').update(JSON.stringify([ctx.projectId, ctx.userId, ctx.agentId,
|
|
12
|
+
ctx.role, ctx.priority, ctx.rolePriorities, ctx.conversationId, [...(ctx.grantedFeatures ?? [])].sort(),
|
|
13
|
+
Object.entries(selection).sort(([a], [b]) => a.localeCompare(b))])).digest('hex');
|
|
14
|
+
}
|
|
15
|
+
function decodeCursor(raw, scope) {
|
|
16
|
+
if (!raw)
|
|
17
|
+
return null;
|
|
18
|
+
if (raw.length > 4096 || !/^[A-Za-z0-9_-]+$/.test(raw))
|
|
19
|
+
return false;
|
|
20
|
+
try {
|
|
21
|
+
const value = JSON.parse(Buffer.from(raw, 'base64url').toString('utf8'));
|
|
22
|
+
if (!value || typeof value !== 'object' || Array.isArray(value))
|
|
23
|
+
return false;
|
|
24
|
+
const item = value;
|
|
25
|
+
if (Object.keys(item).sort().join(',') !== 'after,branches,scope,v' || item.v !== 1
|
|
26
|
+
|| typeof item.after !== 'string' || !item.after || item.after.length > 1024
|
|
27
|
+
|| item.scope !== scope || typeof item.branches !== 'string' || !['jv', 'j', 'v', ''].includes(item.branches))
|
|
28
|
+
return false;
|
|
29
|
+
return { v: 1, after: item.after, scope, branches: item.branches };
|
|
30
|
+
}
|
|
31
|
+
catch {
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
function encodeCursor(after, scope, branches) {
|
|
36
|
+
return Buffer.from(JSON.stringify({ v: 1, after, scope, branches })).toString('base64url');
|
|
37
|
+
}
|
|
38
|
+
function restart() {
|
|
39
|
+
return { changes: [], complete: false, partial: false, restartRequired: true, hasMoreAvailable: false };
|
|
40
|
+
}
|
|
41
|
+
function newer(a, b) {
|
|
42
|
+
return a.updatedAt > b.updatedAt || a.updatedAt === b.updatedAt && a.id > b.id;
|
|
43
|
+
}
|
|
44
|
+
/** Id equality is insufficient: terminal suppression needs positive generation evidence. */
|
|
45
|
+
function shadows(terminal, vector) {
|
|
46
|
+
return terminal.uri === vector.uri && terminal.userId === vector.userId
|
|
47
|
+
&& terminal.agentId === vector.agentId && terminal.createdAt === vector.createdAt
|
|
48
|
+
&& terminal.baselineHash === vector.baselineHash && terminal.baselineUri === vector.baselineUri
|
|
49
|
+
&& !!terminal.snapshotHash && terminal.snapshotHash === vector.snapshotHash;
|
|
50
|
+
}
|
|
51
|
+
async function scanVector(ports, ctx, uri, status = 'pending_review', signal) {
|
|
52
|
+
await ports.vector.ensureAgentCollection(ctx.agentId);
|
|
53
|
+
const must = [{ field: 'projectId', equals: ctx.projectId }, { field: 'status', equals: status }, ...(uri ? [{ field: 'uri', equals: uri }] : [])];
|
|
54
|
+
const out = [];
|
|
55
|
+
let cursor;
|
|
56
|
+
do {
|
|
57
|
+
signal?.throwIfAborted();
|
|
58
|
+
const page = await ports.vector.scroll({ filter: { must, mustNot: [{ field: 'category', equals: 'chunk' }] },
|
|
59
|
+
payloadFields: ['uri', 'projectId'], limit: 1000, ...(cursor ? { cursor } : {}) });
|
|
60
|
+
for (const point of page.points)
|
|
61
|
+
if (point.payload?.projectId === ctx.projectId && point.payload.uri)
|
|
62
|
+
out.push(point);
|
|
63
|
+
if (page.nextCursor && page.nextCursor === cursor)
|
|
64
|
+
throw new Error('Pending vector cursor did not advance');
|
|
65
|
+
cursor = page.nextCursor;
|
|
66
|
+
await new Promise(resolve => setImmediate(resolve));
|
|
67
|
+
} while (cursor);
|
|
68
|
+
const uris = [...new Set(out.map((point) => point.payload.uri))];
|
|
69
|
+
const twins = [];
|
|
70
|
+
for (let start = 0; start < uris.length; start += 1000) {
|
|
71
|
+
let twinCursor;
|
|
72
|
+
do {
|
|
73
|
+
signal?.throwIfAborted();
|
|
74
|
+
const page = await ports.vector.scroll({ filter: {
|
|
75
|
+
must: [{ field: 'projectId', equals: ctx.projectId }],
|
|
76
|
+
mustMatchAny: [{ field: 'uri', values: uris.slice(start, start + 1000) }],
|
|
77
|
+
mustNot: [{ field: 'category', equals: 'chunk' }],
|
|
78
|
+
}, payloadFields: FIELDS, limit: 1000, ...(twinCursor ? { cursor: twinCursor } : {}) });
|
|
79
|
+
for (const point of page.points)
|
|
80
|
+
if (point.payload?.projectId === ctx.projectId && point.payload.uri)
|
|
81
|
+
twins.push(point);
|
|
82
|
+
if (page.nextCursor && page.nextCursor === twinCursor)
|
|
83
|
+
throw new Error('Pending twin cursor did not advance');
|
|
84
|
+
twinCursor = page.nextCursor;
|
|
85
|
+
await new Promise(resolve => setImmediate(resolve));
|
|
86
|
+
} while (twinCursor);
|
|
87
|
+
}
|
|
88
|
+
return twins;
|
|
89
|
+
}
|
|
90
|
+
/** Complete current reconstruction before slicing; backend offsets never enter public cursors. */
|
|
91
|
+
export async function listPendingPage(ports, ctx, filter = {}, options = {}) {
|
|
92
|
+
options.signal?.throwIfAborted();
|
|
93
|
+
const scope = scopeKey(ctx, filter);
|
|
94
|
+
const cursor = decodeCursor(filter.cursor, scope);
|
|
95
|
+
if (cursor === false)
|
|
96
|
+
return options.count ? { ...restart(), count: 0, exact: false } : restart();
|
|
97
|
+
const [journal, vector] = await Promise.allSettled([
|
|
98
|
+
ports.store ? ports.store.snapshot(ctx.projectId, filter.uri) : Promise.resolve([]),
|
|
99
|
+
scanVector(ports, ctx, filter.uri, filter.status ?? 'pending_review', options.signal),
|
|
100
|
+
]);
|
|
101
|
+
options.signal?.throwIfAborted();
|
|
102
|
+
const unavailable = [];
|
|
103
|
+
if (journal.status === 'rejected') {
|
|
104
|
+
unavailable.push('journal');
|
|
105
|
+
ports.warn('journal', journal.reason);
|
|
106
|
+
}
|
|
107
|
+
if (vector.status === 'rejected') {
|
|
108
|
+
unavailable.push('vector');
|
|
109
|
+
ports.warn('vector', vector.reason);
|
|
110
|
+
}
|
|
111
|
+
const visible = async (rec, branch) => {
|
|
112
|
+
try {
|
|
113
|
+
return await ports.visible(rec);
|
|
114
|
+
}
|
|
115
|
+
catch (error) {
|
|
116
|
+
if (!unavailable.includes(branch)) {
|
|
117
|
+
unavailable.push(branch);
|
|
118
|
+
ports.warn(branch, error);
|
|
119
|
+
}
|
|
120
|
+
return false;
|
|
121
|
+
}
|
|
122
|
+
};
|
|
123
|
+
const status = filter.status ?? 'pending_review';
|
|
124
|
+
const allJournal = journal.status === 'fulfilled' ? journal.value : [];
|
|
125
|
+
const byId = new Map(allJournal.map((rec) => [rec.id, rec]));
|
|
126
|
+
const byUri = new Map();
|
|
127
|
+
let visited = 0;
|
|
128
|
+
for (const rec of allJournal) {
|
|
129
|
+
if (++visited % 256 === 0)
|
|
130
|
+
await new Promise(resolve => setImmediate(resolve));
|
|
131
|
+
options.signal?.throwIfAborted();
|
|
132
|
+
if (rec.status !== status || !matchesPendingFilter(rec, filter) || !await visible(rec, 'journal'))
|
|
133
|
+
continue;
|
|
134
|
+
const old = byUri.get(rec.uri);
|
|
135
|
+
if (!old || newer(rec, old))
|
|
136
|
+
byUri.set(rec.uri, rec);
|
|
137
|
+
}
|
|
138
|
+
if (vector.status === 'fulfilled') {
|
|
139
|
+
const groups = new Map();
|
|
140
|
+
for (const point of vector.value) {
|
|
141
|
+
if (++visited % 256 === 0)
|
|
142
|
+
await new Promise(resolve => setImmediate(resolve));
|
|
143
|
+
options.signal?.throwIfAborted();
|
|
144
|
+
const rec = pendingRecordFromNode(point.payload);
|
|
145
|
+
if (!matchesPendingFilter(rec, filter) || !await visible(rec, 'vector'))
|
|
146
|
+
continue;
|
|
147
|
+
const group = groups.get(rec.uri) ?? [];
|
|
148
|
+
group.push(point);
|
|
149
|
+
groups.set(rec.uri, group);
|
|
150
|
+
}
|
|
151
|
+
for (const [uri, points] of groups) {
|
|
152
|
+
const winner = pickUriNode(points.sort((a, b) => a.id < b.id ? -1 : a.id > b.id ? 1 : 0));
|
|
153
|
+
if (!winner || winner.payload.status !== status || byUri.has(uri))
|
|
154
|
+
continue;
|
|
155
|
+
const rec = pendingRecordFromNode(winner.payload);
|
|
156
|
+
const sameId = byId.get(rec.id);
|
|
157
|
+
if (status === 'pending_review' && sameId && sameId.status !== 'pending_review') {
|
|
158
|
+
if (shadows(sameId, rec))
|
|
159
|
+
continue;
|
|
160
|
+
rec.conflict = 'PENDING_GENERATION_CHANGED';
|
|
161
|
+
}
|
|
162
|
+
byUri.set(uri, rec);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
const branches = `${journal.status === 'fulfilled' && !unavailable.includes('journal') ? 'j' : ''}${vector.status === 'fulfilled' && !unavailable.includes('vector') ? 'v' : ''}`;
|
|
166
|
+
if (cursor && cursor.branches !== branches)
|
|
167
|
+
return options.count ? { ...restart(), count: 0, exact: false } : restart();
|
|
168
|
+
const rows = [...byUri.values()].sort((a, b) => a.id < b.id ? -1 : a.id > b.id ? 1 : 0);
|
|
169
|
+
const partial = unavailable.length > 0;
|
|
170
|
+
if (options.count)
|
|
171
|
+
return { count: rows.length, exact: !partial, complete: !partial, partial,
|
|
172
|
+
hasMoreAvailable: false, ...(partial ? { unavailable } : {}) };
|
|
173
|
+
const eligible = cursor ? rows.filter((rec) => rec.id > cursor.after) : rows;
|
|
174
|
+
const limit = Number.isInteger(filter.limit) && (filter.limit ?? 0) > 0 ? Math.min(filter.limit, 1000) : 500;
|
|
175
|
+
const changes = eligible.slice(0, limit);
|
|
176
|
+
const hasMoreAvailable = eligible.length > changes.length;
|
|
177
|
+
const nextCursor = hasMoreAvailable ? encodeCursor(changes[changes.length - 1].id, scope, branches) : undefined;
|
|
178
|
+
let classificationPartial = false;
|
|
179
|
+
const orphanIds = options.orphans ? await selectOrphanedPendingIds(ports.orphan, ctx.projectId, changes.filter((rec) => !rec.conflict), options.signal, () => { classificationPartial = true; }) : undefined;
|
|
180
|
+
return { changes, ...(orphanIds ? { orphanIds } : {}), ...(nextCursor ? { nextCursor } : {}),
|
|
181
|
+
complete: !partial && !classificationPartial && !hasMoreAvailable, partial: partial || classificationPartial, hasMoreAvailable, ...(partial ? { unavailable } : {}) };
|
|
182
|
+
}
|
|
183
|
+
/** One visible batch, sequential fresh discard gates; a started effect always finishes. */
|
|
184
|
+
export async function repairPendingPage(ports, ctx, filter = {}, options = {}) {
|
|
185
|
+
const started = Date.now();
|
|
186
|
+
const limit = getPendingRepairBatchSize();
|
|
187
|
+
const page = await listPendingPage(ports, ctx, { ...filter, limit }, { orphans: true, signal: options.signal });
|
|
188
|
+
const result = { ok: true, scannedVisible: 0, orphaned: 0, attempted: 0, discarded: 0,
|
|
189
|
+
refused: 0, failed: 0, reasons: {}, legacyUnknownDraft: 0, durationMs: 0,
|
|
190
|
+
complete: page.complete, partial: page.partial, hasMoreAvailable: page.hasMoreAvailable,
|
|
191
|
+
...(page.unavailable ? { unavailable: page.unavailable } : {}), ...(page.restartRequired ? { restartRequired: true } : {}) };
|
|
192
|
+
const orphaned = new Set(page.orphanIds);
|
|
193
|
+
let last;
|
|
194
|
+
for (const rec of page.changes) {
|
|
195
|
+
if (options.signal?.aborted) {
|
|
196
|
+
result.stopped = true;
|
|
197
|
+
result.complete = false;
|
|
198
|
+
break;
|
|
199
|
+
}
|
|
200
|
+
result.scannedVisible += 1;
|
|
201
|
+
last = rec.id;
|
|
202
|
+
if (!orphaned.has(rec.id)) {
|
|
203
|
+
if (ackHintFor(rec))
|
|
204
|
+
result.legacyUnknownDraft += 1;
|
|
205
|
+
if (rec.conflict) {
|
|
206
|
+
result.refused += 1;
|
|
207
|
+
result.reasons.PENDING_GENERATION_CHANGED = (result.reasons.PENDING_GENERATION_CHANGED ?? 0) + 1;
|
|
208
|
+
}
|
|
209
|
+
continue;
|
|
210
|
+
}
|
|
211
|
+
result.orphaned += 1;
|
|
212
|
+
if (options.dryRun)
|
|
213
|
+
continue;
|
|
214
|
+
result.attempted += 1;
|
|
215
|
+
try {
|
|
216
|
+
const reply = await ports.discard(rec.id);
|
|
217
|
+
if (reply.ok && reply.discarded !== false)
|
|
218
|
+
result.discarded += 1;
|
|
219
|
+
else if (!reply.ok) {
|
|
220
|
+
result.refused += 1;
|
|
221
|
+
const reason = ['FORBIDDEN', 'NOT_FOUND', 'NOT_ORPHANED', 'PENDING_GENERATION_CHANGED'].includes(reply.error ?? '') ? reply.error : 'REFUSED';
|
|
222
|
+
result.reasons[reason] = (result.reasons[reason] ?? 0) + 1;
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
catch {
|
|
226
|
+
result.failed += 1;
|
|
227
|
+
result.reasons.FAILED = (result.reasons.FAILED ?? 0) + 1;
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
if (result.stopped) {
|
|
231
|
+
result.hasMoreAvailable = true;
|
|
232
|
+
if (last) {
|
|
233
|
+
const branches = page.unavailable?.includes('journal') ? 'v' : page.unavailable?.includes('vector') ? 'j' : 'jv';
|
|
234
|
+
result.nextCursor = encodeCursor(last, scopeKey(ctx, filter), branches);
|
|
235
|
+
}
|
|
236
|
+
else if (filter.cursor)
|
|
237
|
+
result.nextCursor = filter.cursor;
|
|
238
|
+
}
|
|
239
|
+
else if (page.nextCursor)
|
|
240
|
+
result.nextCursor = page.nextCursor;
|
|
241
|
+
result.durationMs = Date.now() - started;
|
|
242
|
+
return result;
|
|
243
|
+
}
|
|
244
|
+
//# sourceMappingURL=pendingListing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pendingListing.js","sourceRoot":"","sources":["../../../src/usecases/pendingListing.ts"],"names":[],"mappings":"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"}
|