daftari 1.30.0 → 1.31.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/CHANGELOG.md +106 -0
- package/README.md +139 -4
- package/dist/access/rbac.d.ts +1 -0
- package/dist/access/rbac.d.ts.map +1 -1
- package/dist/access/rbac.js +7 -0
- package/dist/access/rbac.js.map +1 -1
- package/dist/audit/checks/broken_refs.d.ts +1 -1
- package/dist/audit/checks/broken_refs.d.ts.map +1 -1
- package/dist/audit/checks/broken_refs.js +77 -22
- package/dist/audit/checks/broken_refs.js.map +1 -1
- package/dist/audit/collect.d.ts +1 -0
- package/dist/audit/collect.d.ts.map +1 -1
- package/dist/audit/collect.js +22 -2
- package/dist/audit/collect.js.map +1 -1
- package/dist/audit/index.d.ts.map +1 -1
- package/dist/audit/index.js +9 -3
- package/dist/audit/index.js.map +1 -1
- package/dist/audit/links.d.ts.map +1 -1
- package/dist/audit/links.js +9 -3
- package/dist/audit/links.js.map +1 -1
- package/dist/audit/report.d.ts.map +1 -1
- package/dist/audit/report.js +2 -0
- package/dist/audit/report.js.map +1 -1
- package/dist/audit/types.d.ts +4 -1
- package/dist/audit/types.d.ts.map +1 -1
- package/dist/audit/types.js.map +1 -1
- package/dist/backfill/derive.d.ts.map +1 -1
- package/dist/backfill/derive.js +1 -0
- package/dist/backfill/derive.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +18 -0
- package/dist/cli.js.map +1 -1
- package/dist/court/precedent.d.ts.map +1 -1
- package/dist/court/precedent.js +6 -1
- package/dist/court/precedent.js.map +1 -1
- package/dist/curation/consumes.d.ts +24 -0
- package/dist/curation/consumes.d.ts.map +1 -0
- package/dist/curation/consumes.js +122 -0
- package/dist/curation/consumes.js.map +1 -0
- package/dist/curation/edge-staleness.d.ts +47 -0
- package/dist/curation/edge-staleness.d.ts.map +1 -0
- package/dist/curation/edge-staleness.js +258 -0
- package/dist/curation/edge-staleness.js.map +1 -0
- package/dist/curation/edges.d.ts.map +1 -1
- package/dist/curation/edges.js +164 -10
- package/dist/curation/edges.js.map +1 -1
- package/dist/curation/lint.d.ts +4 -1
- package/dist/curation/lint.d.ts.map +1 -1
- package/dist/curation/lint.js +61 -6
- package/dist/curation/lint.js.map +1 -1
- package/dist/curation/provenance.d.ts +2 -0
- package/dist/curation/provenance.d.ts.map +1 -1
- package/dist/curation/provenance.js +2 -0
- package/dist/curation/provenance.js.map +1 -1
- package/dist/curation/read-log.d.ts +19 -0
- package/dist/curation/read-log.d.ts.map +1 -0
- package/dist/curation/read-log.js +120 -0
- package/dist/curation/read-log.js.map +1 -0
- package/dist/curation/review-throughput.d.ts +24 -0
- package/dist/curation/review-throughput.d.ts.map +1 -0
- package/dist/curation/review-throughput.js +102 -0
- package/dist/curation/review-throughput.js.map +1 -0
- package/dist/curation/staged-actions.d.ts +11 -1
- package/dist/curation/staged-actions.d.ts.map +1 -1
- package/dist/curation/staged-actions.js +102 -24
- package/dist/curation/staged-actions.js.map +1 -1
- package/dist/curation/structural.d.ts +16 -0
- package/dist/curation/structural.d.ts.map +1 -0
- package/dist/curation/structural.js +64 -0
- package/dist/curation/structural.js.map +1 -0
- package/dist/curation/tension-blast.d.ts +4 -0
- package/dist/curation/tension-blast.d.ts.map +1 -1
- package/dist/curation/tension-blast.js +9 -0
- package/dist/curation/tension-blast.js.map +1 -1
- package/dist/curation/tension.d.ts +5 -2
- package/dist/curation/tension.d.ts.map +1 -1
- package/dist/curation/tension.js +68 -25
- package/dist/curation/tension.js.map +1 -1
- package/dist/curation/tier0.d.ts +27 -0
- package/dist/curation/tier0.d.ts.map +1 -0
- package/dist/curation/tier0.js +196 -0
- package/dist/curation/tier0.js.map +1 -0
- package/dist/curation/tier1.d.ts +30 -0
- package/dist/curation/tier1.d.ts.map +1 -0
- package/dist/curation/tier1.js +142 -0
- package/dist/curation/tier1.js.map +1 -0
- package/dist/curation/tier2.d.ts +43 -0
- package/dist/curation/tier2.d.ts.map +1 -0
- package/dist/curation/tier2.js +182 -0
- package/dist/curation/tier2.js.map +1 -0
- package/dist/curation/vault-docs.d.ts +5 -1
- package/dist/curation/vault-docs.d.ts.map +1 -1
- package/dist/curation/vault-docs.js +14 -0
- package/dist/curation/vault-docs.js.map +1 -1
- package/dist/eval/generate.js +22 -5
- package/dist/eval/generate.js.map +1 -1
- package/dist/eval/index.d.ts.map +1 -1
- package/dist/eval/index.js +173 -25
- package/dist/eval/index.js.map +1 -1
- package/dist/eval/llm.js +1 -1
- package/dist/eval/llm.js.map +1 -1
- package/dist/eval/prune.d.ts +24 -0
- package/dist/eval/prune.d.ts.map +1 -0
- package/dist/eval/prune.js +83 -0
- package/dist/eval/prune.js.map +1 -0
- package/dist/eval/storage.d.ts +3 -0
- package/dist/eval/storage.d.ts.map +1 -1
- package/dist/eval/storage.js +14 -0
- package/dist/eval/storage.js.map +1 -1
- package/dist/frontmatter/schema.d.ts.map +1 -1
- package/dist/frontmatter/schema.js +19 -1
- package/dist/frontmatter/schema.js.map +1 -1
- package/dist/frontmatter/types.d.ts +4 -1
- package/dist/frontmatter/types.d.ts.map +1 -1
- package/dist/frontmatter/types.js +8 -0
- package/dist/frontmatter/types.js.map +1 -1
- package/dist/import/index.d.ts.map +1 -1
- package/dist/import/index.js +44 -9
- package/dist/import/index.js.map +1 -1
- package/dist/import/langgraph-store.d.ts +53 -0
- package/dist/import/langgraph-store.d.ts.map +1 -0
- package/dist/import/langgraph-store.js +292 -0
- package/dist/import/langgraph-store.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +56 -18
- package/dist/index.js.map +1 -1
- package/dist/lifecycle/lock.d.ts +9 -1
- package/dist/lifecycle/lock.d.ts.map +1 -1
- package/dist/lifecycle/lock.js +34 -9
- package/dist/lifecycle/lock.js.map +1 -1
- package/dist/okf/export.d.ts +12 -0
- package/dist/okf/export.d.ts.map +1 -0
- package/dist/okf/export.js +115 -0
- package/dist/okf/export.js.map +1 -0
- package/dist/okf/import.d.ts +24 -0
- package/dist/okf/import.d.ts.map +1 -0
- package/dist/okf/import.js +107 -0
- package/dist/okf/import.js.map +1 -0
- package/dist/okf/index.d.ts +2 -0
- package/dist/okf/index.d.ts.map +1 -0
- package/dist/okf/index.js +147 -0
- package/dist/okf/index.js.map +1 -0
- package/dist/okf/map.d.ts +16 -0
- package/dist/okf/map.d.ts.map +1 -0
- package/dist/okf/map.js +149 -0
- package/dist/okf/map.js.map +1 -0
- package/dist/okf/types.d.ts +9 -0
- package/dist/okf/types.d.ts.map +1 -0
- package/dist/okf/types.js +48 -0
- package/dist/okf/types.js.map +1 -0
- package/dist/search/coverage.d.ts.map +1 -1
- package/dist/search/coverage.js +1 -1
- package/dist/search/coverage.js.map +1 -1
- package/dist/search/hybrid.d.ts +19 -0
- package/dist/search/hybrid.d.ts.map +1 -1
- package/dist/search/hybrid.js +58 -10
- package/dist/search/hybrid.js.map +1 -1
- package/dist/search/reindex.d.ts +1 -0
- package/dist/search/reindex.d.ts.map +1 -1
- package/dist/search/reindex.js +41 -11
- package/dist/search/reindex.js.map +1 -1
- package/dist/search/watcher.d.ts +2 -0
- package/dist/search/watcher.d.ts.map +1 -1
- package/dist/search/watcher.js +21 -10
- package/dist/search/watcher.js.map +1 -1
- package/dist/serve/index.d.ts +36 -0
- package/dist/serve/index.d.ts.map +1 -0
- package/dist/serve/index.js +507 -0
- package/dist/serve/index.js.map +1 -0
- package/dist/server.d.ts +10 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +89 -14
- package/dist/server.js.map +1 -1
- package/dist/sleep/index.d.ts +2 -0
- package/dist/sleep/index.d.ts.map +1 -1
- package/dist/sleep/index.js +212 -21
- package/dist/sleep/index.js.map +1 -1
- package/dist/sleep/report.d.ts +3 -0
- package/dist/sleep/report.d.ts.map +1 -1
- package/dist/sleep/report.js +52 -0
- package/dist/sleep/report.js.map +1 -1
- package/dist/sleep/tension-scan-state.d.ts +19 -0
- package/dist/sleep/tension-scan-state.d.ts.map +1 -0
- package/dist/sleep/tension-scan-state.js +0 -0
- package/dist/sleep/tension-scan-state.js.map +1 -0
- package/dist/sleep/tension-scan.d.ts +44 -0
- package/dist/sleep/tension-scan.d.ts.map +1 -0
- package/dist/sleep/tension-scan.js +0 -0
- package/dist/sleep/tension-scan.js.map +1 -0
- package/dist/storage/backend.d.ts +12 -0
- package/dist/storage/backend.d.ts.map +1 -0
- package/dist/storage/backend.js +231 -0
- package/dist/storage/backend.js.map +1 -0
- package/dist/storage/backends/fs.d.ts +4 -0
- package/dist/storage/backends/fs.d.ts.map +1 -0
- package/dist/storage/backends/fs.js +99 -0
- package/dist/storage/backends/fs.js.map +1 -0
- package/dist/storage/fs-walk.d.ts +5 -0
- package/dist/storage/fs-walk.d.ts.map +1 -0
- package/dist/storage/fs-walk.js +28 -0
- package/dist/storage/fs-walk.js.map +1 -0
- package/dist/storage/index-db.d.ts +16 -0
- package/dist/storage/index-db.d.ts.map +1 -1
- package/dist/storage/index-db.js +94 -5
- package/dist/storage/index-db.js.map +1 -1
- package/dist/storage/local.d.ts +1 -0
- package/dist/storage/local.d.ts.map +1 -1
- package/dist/storage/local.js +12 -0
- package/dist/storage/local.js.map +1 -1
- package/dist/storage/sync.d.ts +25 -0
- package/dist/storage/sync.d.ts.map +1 -0
- package/dist/storage/sync.js +308 -0
- package/dist/storage/sync.js.map +1 -0
- package/dist/sync/index.d.ts +2 -0
- package/dist/sync/index.d.ts.map +1 -0
- package/dist/sync/index.js +136 -0
- package/dist/sync/index.js.map +1 -0
- package/dist/themes/clustering.d.ts +6 -11
- package/dist/themes/clustering.d.ts.map +1 -1
- package/dist/themes/clustering.js +76 -84
- package/dist/themes/clustering.js.map +1 -1
- package/dist/tools/consumes.d.ts +14 -0
- package/dist/tools/consumes.d.ts.map +1 -0
- package/dist/tools/consumes.js +99 -0
- package/dist/tools/consumes.js.map +1 -0
- package/dist/tools/curation.d.ts +2 -0
- package/dist/tools/curation.d.ts.map +1 -1
- package/dist/tools/curation.js +53 -15
- package/dist/tools/curation.js.map +1 -1
- package/dist/tools/edge-staleness.d.ts +28 -0
- package/dist/tools/edge-staleness.d.ts.map +1 -0
- package/dist/tools/edge-staleness.js +205 -0
- package/dist/tools/edge-staleness.js.map +1 -0
- package/dist/tools/edges.d.ts.map +1 -1
- package/dist/tools/edges.js +27 -21
- package/dist/tools/edges.js.map +1 -1
- package/dist/tools/read.d.ts +15 -1
- package/dist/tools/read.d.ts.map +1 -1
- package/dist/tools/read.js +142 -29
- package/dist/tools/read.js.map +1 -1
- package/dist/tools/receipt.d.ts.map +1 -1
- package/dist/tools/receipt.js +16 -7
- package/dist/tools/receipt.js.map +1 -1
- package/dist/tools/search.d.ts +1 -0
- package/dist/tools/search.d.ts.map +1 -1
- package/dist/tools/search.js +147 -5
- package/dist/tools/search.js.map +1 -1
- package/dist/tools/staged-actions.d.ts +3 -0
- package/dist/tools/staged-actions.d.ts.map +1 -1
- package/dist/tools/staged-actions.js +227 -22
- package/dist/tools/staged-actions.js.map +1 -1
- package/dist/tools/themes.d.ts +8 -0
- package/dist/tools/themes.d.ts.map +1 -1
- package/dist/tools/themes.js +208 -122
- package/dist/tools/themes.js.map +1 -1
- package/dist/tools/tier1.d.ts +14 -0
- package/dist/tools/tier1.d.ts.map +1 -0
- package/dist/tools/tier1.js +169 -0
- package/dist/tools/tier1.js.map +1 -0
- package/dist/tools/tier2.d.ts +27 -0
- package/dist/tools/tier2.d.ts.map +1 -0
- package/dist/tools/tier2.js +344 -0
- package/dist/tools/tier2.js.map +1 -0
- package/dist/tools/write.d.ts +9 -1
- package/dist/tools/write.d.ts.map +1 -1
- package/dist/tools/write.js +492 -6
- package/dist/tools/write.js.map +1 -1
- package/dist/utils/config.d.ts +52 -0
- package/dist/utils/config.d.ts.map +1 -1
- package/dist/utils/config.js +372 -2
- package/dist/utils/config.js.map +1 -1
- package/dist/utils/run-id.d.ts +3 -0
- package/dist/utils/run-id.d.ts.map +1 -0
- package/dist/utils/run-id.js +19 -0
- package/dist/utils/run-id.js.map +1 -0
- package/dist/utils/vault-gitignore.d.ts +1 -1
- package/dist/utils/vault-gitignore.d.ts.map +1 -1
- package/dist/utils/vault-gitignore.js +4 -1
- package/dist/utils/vault-gitignore.js.map +1 -1
- package/package.json +21 -1
- package/templates/config.yaml +8 -0
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
// Edge staleness (#234) — per-edge upstream-change compatibility, derived
|
|
2
|
+
// from tier-1 verdicts (#232) over the edge provenance classes (#233).
|
|
3
|
+
//
|
|
4
|
+
// This is deliberately the THIRD staleness vocabulary in the tree, scoped
|
|
5
|
+
// against the two that already exist rather than replacing them:
|
|
6
|
+
//
|
|
7
|
+
// - TTL decay (staleness.ts): time-based confidence of the DOCUMENT
|
|
8
|
+
// ITSELF — "this doc is old", regardless of what it depends on.
|
|
9
|
+
// - Audit staleness (audit/checks/staleness.ts): mtime ordering along the
|
|
10
|
+
// link graph, CI-gated — "this doc is older than something it links to".
|
|
11
|
+
// - Edge staleness (this module): "this ARTIFACT is stale WITH RESPECT TO
|
|
12
|
+
// a specific upstream unit, and here is what the tiers say about the
|
|
13
|
+
// pending change." Never a global freshness score.
|
|
14
|
+
//
|
|
15
|
+
// Classes, not a boolean (#234's core design point):
|
|
16
|
+
//
|
|
17
|
+
// current — upstream unchanged since the edge's baseline.
|
|
18
|
+
// pending-compatible — upstream changed, tier 1 certified the change
|
|
19
|
+
// misses this dependent (cosmetic staleness).
|
|
20
|
+
// pending-broken — upstream changed and tier 1 issued a hard hit;
|
|
21
|
+
// reads of the artifact serve known-wrong context.
|
|
22
|
+
// Only this class is an incident.
|
|
23
|
+
// pending-unchecked — upstream changed but the structure cannot decide
|
|
24
|
+
// (declared claim / earned inference — the tier-2
|
|
25
|
+
// residual), or the edge has no baseline to measure
|
|
26
|
+
// from. Awaiting a judgment no cheap tier can give.
|
|
27
|
+
//
|
|
28
|
+
// Tier-2 verdicts refine the residual (#232 tier 2): when a recorded
|
|
29
|
+
// semantic verdict covers the pair's CURRENT change (judged_change_ts not
|
|
30
|
+
// older than the unit's latest landed write), pending-unchecked resolves to
|
|
31
|
+
// pending-compatible (still-valid) or pending-broken (broken, with the
|
|
32
|
+
// logged tension named in the reason). A stale verdict — the unit changed
|
|
33
|
+
// again after the judgment — covers nothing and the pair re-queues.
|
|
34
|
+
// Compiled edges never consult verdicts: mechanical certainty is not
|
|
35
|
+
// overridable by a semantic opinion.
|
|
36
|
+
//
|
|
37
|
+
// Because tier 1 is deterministic and free, classification RUNS AT QUERY
|
|
38
|
+
// TIME — there is no verdict store that can itself go stale. "Reading tier
|
|
39
|
+
// verdicts" (the issue's phrasing) means running the SAME dispatch the
|
|
40
|
+
// vault_tier1 tool runs — classifyEdge delegates to tier1Dispatch, so the
|
|
41
|
+
// verdict semantics (field overlap, bookkeeping, class ceilings) cannot
|
|
42
|
+
// drift between the two surfaces. The dispatch rule carries over exactly:
|
|
43
|
+
// only a compiled edge can make pending-broken (a hard verdict needs
|
|
44
|
+
// mechanical certainty); declared and earned changes park in
|
|
45
|
+
// pending-unchecked until tier 2 exists.
|
|
46
|
+
//
|
|
47
|
+
// Baselines per class:
|
|
48
|
+
// compiled — the edge's compile_ts: the instant the run's snapshot of the
|
|
49
|
+
// unit became the artifact's input.
|
|
50
|
+
// declared — the artifact's own latest logged write: the last moment the
|
|
51
|
+
// author could have seen the cited unit. No provenance for the
|
|
52
|
+
// artifact → no baseline → pending-unchecked (never checked).
|
|
53
|
+
// earned — the edge's lastRederived: the last time the derivation
|
|
54
|
+
// survived a re-test.
|
|
55
|
+
import { forwardConsumes, listConsumesEdges } from "./consumes.js";
|
|
56
|
+
import { readProvenanceLog } from "./provenance.js";
|
|
57
|
+
import { bucketHiddenDownstream } from "./tension-blast.js";
|
|
58
|
+
import { changedFieldsFromProvenance, contentChangedFields, tier1Dispatch, } from "./tier1.js";
|
|
59
|
+
import { coveringVerdict, latestUnitChangeTs, NO_CHANGE_TS } from "./tier2.js";
|
|
60
|
+
// The unit's content writes since the baseline, folded to one changed-field
|
|
61
|
+
// set. `writes` distinguishes "nothing happened" (current) from "only
|
|
62
|
+
// bookkeeping churn" (compatible): both have empty changed fields.
|
|
63
|
+
export function changedFieldsSince(provenance, unit, baseline) {
|
|
64
|
+
const fields = [];
|
|
65
|
+
let writes = 0;
|
|
66
|
+
for (const e of provenance) {
|
|
67
|
+
if (e.file !== unit || e.action === "rejected_stale" || e.timestamp <= baseline)
|
|
68
|
+
continue;
|
|
69
|
+
writes += 1;
|
|
70
|
+
fields.push(...changedFieldsFromProvenance(e));
|
|
71
|
+
}
|
|
72
|
+
return { changed: contentChangedFields(fields), writes };
|
|
73
|
+
}
|
|
74
|
+
// Classifies one upstream edge by running the tier-1 dispatch on it and
|
|
75
|
+
// mapping the verdict: unaffected → pending-compatible (the change certifiably
|
|
76
|
+
// misses), affected → pending-broken (hard hit — compiled edges only, by the
|
|
77
|
+
// class ceiling), possibly-affected / semantic-review → pending-unchecked.
|
|
78
|
+
function classifyEdge(input) {
|
|
79
|
+
const base = {
|
|
80
|
+
unit: input.unit,
|
|
81
|
+
edge_class: input.edgeClass,
|
|
82
|
+
baseline: input.baseline,
|
|
83
|
+
};
|
|
84
|
+
// The tier-2 residual: a covering semantic verdict decides what structure
|
|
85
|
+
// could not. Consulted on BOTH pending-unchecked paths (no-baseline and
|
|
86
|
+
// structurally-undecidable) — only the unit's CURRENT change counts; a
|
|
87
|
+
// verdict from before the latest landed write covers nothing.
|
|
88
|
+
const tier2Resolved = (changedFields) => {
|
|
89
|
+
if (!input.verdicts || input.verdicts.length === 0)
|
|
90
|
+
return null;
|
|
91
|
+
const covering = coveringVerdict(input.verdicts, {
|
|
92
|
+
artifact: input.artifact,
|
|
93
|
+
unit: input.unit,
|
|
94
|
+
edgeClass: input.edgeClass,
|
|
95
|
+
latestChangeTs: latestUnitChangeTs(input.provenance, input.unit) ?? NO_CHANGE_TS,
|
|
96
|
+
});
|
|
97
|
+
if (!covering)
|
|
98
|
+
return null;
|
|
99
|
+
return covering.verdict === "still-valid"
|
|
100
|
+
? {
|
|
101
|
+
...base,
|
|
102
|
+
staleness: "pending-compatible",
|
|
103
|
+
changed_fields: changedFields,
|
|
104
|
+
reason: `tier-2 semantic verdict: still valid as of ${covering.judged_change_ts}`,
|
|
105
|
+
}
|
|
106
|
+
: {
|
|
107
|
+
...base,
|
|
108
|
+
staleness: "pending-broken",
|
|
109
|
+
changed_fields: changedFields,
|
|
110
|
+
reason: `tier-2 semantic verdict: broken${covering.tension_id ? ` — tension ${covering.tension_id}` : ""}`,
|
|
111
|
+
};
|
|
112
|
+
};
|
|
113
|
+
if (input.baseline === null) {
|
|
114
|
+
return (tier2Resolved([]) ?? {
|
|
115
|
+
...base,
|
|
116
|
+
staleness: "pending-unchecked",
|
|
117
|
+
changed_fields: [],
|
|
118
|
+
reason: "no baseline — the dependency predates provenance instrumentation, never checked",
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
const { changed, writes } = changedFieldsSince(input.provenance, input.unit, input.baseline);
|
|
122
|
+
if (writes === 0) {
|
|
123
|
+
return {
|
|
124
|
+
...base,
|
|
125
|
+
staleness: "current",
|
|
126
|
+
changed_fields: [],
|
|
127
|
+
reason: "unchanged since baseline",
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
const verdict = tier1Dispatch({
|
|
131
|
+
unit: input.unit,
|
|
132
|
+
changedFields: changed,
|
|
133
|
+
compiled: input.compiledEdge ? [input.compiledEdge] : [],
|
|
134
|
+
declaredDependents: input.edgeClass === "declared" ? [input.artifact] : [],
|
|
135
|
+
earnedDependents: input.edgeClass === "earned" ? [input.artifact] : [],
|
|
136
|
+
})[0];
|
|
137
|
+
if (!verdict) {
|
|
138
|
+
// Unreachable: every class above supplies exactly one dependent.
|
|
139
|
+
return { ...base, staleness: "pending-unchecked", changed_fields: changed, reason: "" };
|
|
140
|
+
}
|
|
141
|
+
const staleness = verdict.verdict === "unaffected"
|
|
142
|
+
? "pending-compatible"
|
|
143
|
+
: verdict.verdict === "affected"
|
|
144
|
+
? "pending-broken"
|
|
145
|
+
: "pending-unchecked";
|
|
146
|
+
if (staleness === "pending-unchecked") {
|
|
147
|
+
const resolved = tier2Resolved(changed);
|
|
148
|
+
if (resolved)
|
|
149
|
+
return resolved;
|
|
150
|
+
}
|
|
151
|
+
return { ...base, staleness, changed_fields: changed, reason: verdict.reason };
|
|
152
|
+
}
|
|
153
|
+
// Loads the two logs that back compiled-edge classification, with the
|
|
154
|
+
// uninstrumented fast path: an absent or empty consumes log resolves to an
|
|
155
|
+
// empty context WITHOUT touching the provenance log — zero compiled edges
|
|
156
|
+
// means every broken count is provably zero, so the hottest tools pay ~one
|
|
157
|
+
// ENOENT check on vaults that never opted into run correlation. Returns
|
|
158
|
+
// null on a log-read error; serve-path callers treat that as
|
|
159
|
+
// "uninstrumented" (telemetry is best-effort), never as a failed request.
|
|
160
|
+
export async function loadCompiledStaleContext(vaultRoot) {
|
|
161
|
+
const consumes = await listConsumesEdges(vaultRoot);
|
|
162
|
+
if (!consumes.ok)
|
|
163
|
+
return null;
|
|
164
|
+
if (consumes.value.length === 0)
|
|
165
|
+
return { consumes: [], provenance: [] };
|
|
166
|
+
const provenance = await readProvenanceLog(vaultRoot);
|
|
167
|
+
if (!provenance.ok)
|
|
168
|
+
return null;
|
|
169
|
+
return { consumes: consumes.value, provenance: provenance.value };
|
|
170
|
+
}
|
|
171
|
+
// Compiled-edge staleness for one artifact — the read/search hot path. Only
|
|
172
|
+
// compiled edges can be pending-broken, so this is the complete broken set.
|
|
173
|
+
// `consumes` may be the full log or an already-collapsed current set: the
|
|
174
|
+
// newest-compile-group collapse is idempotent, so batch callers (search)
|
|
175
|
+
// collapse once and pass the result through per hit.
|
|
176
|
+
export function compiledUpstreamStaleness(artifact, consumes, provenance) {
|
|
177
|
+
return forwardConsumes(consumes, artifact)
|
|
178
|
+
.filter((e) => e.unit !== artifact)
|
|
179
|
+
.map((e) => classifyEdge({
|
|
180
|
+
artifact,
|
|
181
|
+
unit: e.unit,
|
|
182
|
+
edgeClass: "compiled",
|
|
183
|
+
baseline: e.compile_ts,
|
|
184
|
+
provenance,
|
|
185
|
+
compiledEdge: e,
|
|
186
|
+
}));
|
|
187
|
+
}
|
|
188
|
+
// Full three-class report for one artifact. Declared and earned rows extend
|
|
189
|
+
// the compiled set; a unit reachable through several classes keeps one row
|
|
190
|
+
// per class — the baselines (and therefore the verdicts) genuinely differ.
|
|
191
|
+
export function upstreamStaleness(input) {
|
|
192
|
+
const rows = compiledUpstreamStaleness(input.artifact, input.consumes, input.provenance);
|
|
193
|
+
// Declared baseline: the artifact's own latest landed write.
|
|
194
|
+
const artifactWrites = input.provenance.filter((e) => e.file === input.artifact && e.action !== "rejected_stale");
|
|
195
|
+
const declaredBaseline = artifactWrites[artifactWrites.length - 1]?.timestamp ?? null;
|
|
196
|
+
for (const unit of input.declaredUnits) {
|
|
197
|
+
if (unit === input.artifact)
|
|
198
|
+
continue;
|
|
199
|
+
rows.push(classifyEdge({
|
|
200
|
+
artifact: input.artifact,
|
|
201
|
+
unit,
|
|
202
|
+
edgeClass: "declared",
|
|
203
|
+
baseline: declaredBaseline,
|
|
204
|
+
provenance: input.provenance,
|
|
205
|
+
verdicts: input.verdicts,
|
|
206
|
+
}));
|
|
207
|
+
}
|
|
208
|
+
for (const e of input.earned) {
|
|
209
|
+
if (e.unit === input.artifact)
|
|
210
|
+
continue;
|
|
211
|
+
rows.push(classifyEdge({
|
|
212
|
+
artifact: input.artifact,
|
|
213
|
+
unit: e.unit,
|
|
214
|
+
edgeClass: "earned",
|
|
215
|
+
baseline: e.lastRederived,
|
|
216
|
+
provenance: input.provenance,
|
|
217
|
+
verdicts: input.verdicts,
|
|
218
|
+
}));
|
|
219
|
+
}
|
|
220
|
+
return rows.sort((a, b) => a.unit.localeCompare(b.unit) || a.edge_class.localeCompare(b.edge_class));
|
|
221
|
+
}
|
|
222
|
+
// THE disclosure split for every reader-facing staleness surface (#217):
|
|
223
|
+
// edges whose upstream unit the caller can read are disclosed in full (by
|
|
224
|
+
// omission of the rest); unreadable units surface ONLY as a coarse
|
|
225
|
+
// none/some/many bucket over their pending edges — never an exact count,
|
|
226
|
+
// never a severity class. vault_read, vault_search, and vault_staleness all
|
|
227
|
+
// call this one helper so the invariant cannot drift between surfaces.
|
|
228
|
+
export function splitUpstreamVisibility(rows, isReadable) {
|
|
229
|
+
const visible = [];
|
|
230
|
+
let hiddenPendingCount = 0;
|
|
231
|
+
for (const r of rows) {
|
|
232
|
+
if (isReadable(r.unit))
|
|
233
|
+
visible.push(r);
|
|
234
|
+
else if (r.staleness !== "current")
|
|
235
|
+
hiddenPendingCount += 1;
|
|
236
|
+
}
|
|
237
|
+
return { visible, hiddenPending: bucketHiddenDownstream(hiddenPendingCount) };
|
|
238
|
+
}
|
|
239
|
+
export function summarizeUpstream(rows) {
|
|
240
|
+
const summary = {
|
|
241
|
+
current: 0,
|
|
242
|
+
pending_unchecked: 0,
|
|
243
|
+
pending_compatible: 0,
|
|
244
|
+
pending_broken: 0,
|
|
245
|
+
};
|
|
246
|
+
for (const r of rows) {
|
|
247
|
+
if (r.staleness === "current")
|
|
248
|
+
summary.current += 1;
|
|
249
|
+
else if (r.staleness === "pending-unchecked")
|
|
250
|
+
summary.pending_unchecked += 1;
|
|
251
|
+
else if (r.staleness === "pending-compatible")
|
|
252
|
+
summary.pending_compatible += 1;
|
|
253
|
+
else
|
|
254
|
+
summary.pending_broken += 1;
|
|
255
|
+
}
|
|
256
|
+
return summary;
|
|
257
|
+
}
|
|
258
|
+
//# sourceMappingURL=edge-staleness.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"edge-staleness.js","sourceRoot":"","sources":["../../src/curation/edge-staleness.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edges.d.ts","sourceRoot":"","sources":["../../src/curation/edges.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"edges.d.ts","sourceRoot":"","sources":["../../src/curation/edges.ts"],"names":[],"mappings":"AAkDA,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAE/D,OAAO,EAKL,KAAK,OAAO,EAKb,MAAM,wBAAwB,CAAC;AAWhC,eAAO,MAAM,UAAU,IAAI,CAAC;AAK5B,eAAO,MAAM,mBAAmB,KAAK,CAAC;AAKtC,eAAO,MAAM,qBAAqB,MAAM,CAAC;AAOzC,eAAO,MAAM,oBAAoB,IAAI,CAAC;AAGtC,eAAO,MAAM,SAAS,oDAAqD,CAAC;AAC5E,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;AAElD,eAAO,MAAM,aAAa,sDAAuD,CAAC;AAClF,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAKxD,eAAO,MAAM,aAAa,sCAAuC,CAAC;AAClE,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAMzD,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,WAAW,CAAC;AAOxD,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,UAAU,CAAC;IAGnB,gBAAgB,EAAE,gBAAgB,CAAC;IAEnC,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IAGd,WAAW,CAAC,EAAE,WAAW,CAAC;IAE1B,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IAEf,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEnD;AA2BD,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AASD,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,GAAG,MAAM,CAKxF;AA6RD,wBAAsB,WAAW,CAC/B,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,gBAAgB,GACtB,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC,CAqDzC;AAMD,wBAAsB,WAAW,CAC/B,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,gBAAgB,GACtB,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC,CA2CzC;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,UAAU,CAAC;CACrB;AAoED,wBAAsB,SAAS,CAC7B,SAAS,EAAE,MAAM,EACjB,MAAM,GAAE,eAAoB,EAC5B,GAAG,GAAE,IAAiB,GACrB,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,EAAE,KAAK,CAAC,CAAC,CAoC3C;AAED,wBAAsB,OAAO,CAC3B,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,GAAG,GAAE,IAAiB,GACrB,OAAO,CAAC,MAAM,CAAC,eAAe,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC,CA0BhD;AASD,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,OAAO,EACX,SAAS,EAAE,MAAM,EACjB,GAAG,GAAE,IAAiB,GACrB,MAAM,CAAC;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,KAAK,CAAC,CAiClC;AAKD,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,KAAK,CAAC,CASpF"}
|
package/dist/curation/edges.js
CHANGED
|
@@ -17,9 +17,16 @@
|
|
|
17
17
|
//
|
|
18
18
|
// - Index: the `derives_from_edges` table in .daftari/index.db — a derived
|
|
19
19
|
// cache rebuilt from the jsonl on reindex (rebuildEdgesIndex /
|
|
20
|
-
// materializeEdges)
|
|
21
|
-
//
|
|
22
|
-
//
|
|
20
|
+
// materializeEdges) and, since #236, the AUTHORITATIVE read path:
|
|
21
|
+
// listEdges/getEdge query the table, never the jsonl. Coherence is kept
|
|
22
|
+
// two ways: every edge write re-materializes the table (write-through),
|
|
23
|
+
// and every read first compares a stat marker of the jsonl against the
|
|
24
|
+
// one recorded at the last materialization, rebuilding on mismatch — so
|
|
25
|
+
// an external append (or a lost write-through) self-heals on the next
|
|
26
|
+
// read. Live strength/status are ALWAYS recomputed from the row's
|
|
27
|
+
// (k_survived, last_rederived) at read time; the stored status is at most
|
|
28
|
+
// a conservative prefilter (see listEdges), because it is frozen at
|
|
29
|
+
// `last_age_decay` while real strength keeps aging.
|
|
23
30
|
//
|
|
24
31
|
// Collapse rules (the strength model, locked Q1–Q4 + §5.3.1):
|
|
25
32
|
// - The first observe in a cycle SEEDS the edge: k_survived = 0. Birth is
|
|
@@ -38,11 +45,11 @@
|
|
|
38
45
|
// All file I/O is synchronous on purpose, like staged-actions: append runs in
|
|
39
46
|
// one critical section with no intervening await. The guarantee is
|
|
40
47
|
// per-process, which suffices under the one-daftari-per-vault process lock.
|
|
41
|
-
import { appendFileSync, mkdirSync, readFileSync } from "node:fs";
|
|
48
|
+
import { appendFileSync, mkdirSync, readFileSync, statSync } from "node:fs";
|
|
42
49
|
import { join } from "node:path";
|
|
43
50
|
import { err, ok } from "../frontmatter/types.js";
|
|
44
51
|
import { getProvider } from "../search/vector.js";
|
|
45
|
-
import { clearDerivesFromEdges, openIndexDb, upsertDerivesFromEdge, } from "../storage/index-db.js";
|
|
52
|
+
import { clearDerivesFromEdges, getDerivesFromEdgePair, getMeta, listDerivesFromEdgeRows, openIndexDb, setMeta, upsertDerivesFromEdge, } from "../storage/index-db.js";
|
|
46
53
|
// --- calibration constants (provisional — open decision §12/#8) -------------
|
|
47
54
|
//
|
|
48
55
|
// These three numbers are the v1 defaults of the strength model, exported so
|
|
@@ -76,6 +83,23 @@ export const PREMISE_VOTES = ["from", "to", "symmetric"];
|
|
|
76
83
|
export function edgesPath(vaultRoot) {
|
|
77
84
|
return join(vaultRoot, ".daftari", "edges.jsonl");
|
|
78
85
|
}
|
|
86
|
+
// --- jsonl freshness marker ---------------------------------------------------
|
|
87
|
+
// Meta key recording the stat of edges.jsonl at the last materialization. A
|
|
88
|
+
// read whose current stat differs knows the table is stale and rebuilds first.
|
|
89
|
+
const EDGES_LOG_STAT_META_KEY = "edges_log_stat";
|
|
90
|
+
// Size + mtime identify the jsonl version cheaply. The log is append-only, so
|
|
91
|
+
// size alone almost suffices; mtime guards a same-size replacement.
|
|
92
|
+
function edgesLogStatMarker(vaultRoot) {
|
|
93
|
+
try {
|
|
94
|
+
const st = statSync(edgesPath(vaultRoot));
|
|
95
|
+
return `${st.size}:${st.mtimeMs}`;
|
|
96
|
+
}
|
|
97
|
+
catch (e) {
|
|
98
|
+
if (e.code === "ENOENT")
|
|
99
|
+
return "absent";
|
|
100
|
+
throw e;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
79
103
|
// --- time helpers ------------------------------------------------------------
|
|
80
104
|
// Second-resolution ISO, the same record format staged-actions uses.
|
|
81
105
|
function toSecondISO(d) {
|
|
@@ -307,6 +331,29 @@ function deriveEdge(state, now) {
|
|
|
307
331
|
};
|
|
308
332
|
}
|
|
309
333
|
// --- producer / consumer -----------------------------------------------------
|
|
334
|
+
// Write-through: re-materialize the table after a jsonl append. A full rebuild
|
|
335
|
+
// rather than a row upsert because a new observation can FLIP the stored
|
|
336
|
+
// output orientation (premise votes), which a keyed upsert would leave as a
|
|
337
|
+
// stale twin. Best-effort by design: the append above is the canonical write,
|
|
338
|
+
// and a failure here leaves the marker stale, so the next read self-heals via
|
|
339
|
+
// ensureFreshEdgesIndex — the cache can be behind, never wrong.
|
|
340
|
+
function writeThroughEdgesIndex(vaultRoot) {
|
|
341
|
+
try {
|
|
342
|
+
const opened = openIndexDb(vaultRoot, getProvider().dim);
|
|
343
|
+
if (!opened.ok)
|
|
344
|
+
return;
|
|
345
|
+
const db = opened.value;
|
|
346
|
+
try {
|
|
347
|
+
rebuildEdgesIndex(db, vaultRoot);
|
|
348
|
+
}
|
|
349
|
+
finally {
|
|
350
|
+
db.close();
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
catch {
|
|
354
|
+
// Self-heal on the next read.
|
|
355
|
+
}
|
|
356
|
+
}
|
|
310
357
|
// Records a (re-)derivation observation. Validation is defensive — the tool
|
|
311
358
|
// layer validates too — but this is the durable boundary, so it re-checks.
|
|
312
359
|
export async function observeEdge(vaultRoot, input) {
|
|
@@ -351,6 +398,7 @@ export async function observeEdge(vaultRoot, input) {
|
|
|
351
398
|
const reason = e instanceof Error ? e.message : String(e);
|
|
352
399
|
return err(new Error(`cannot record edge observation: ${reason}`));
|
|
353
400
|
}
|
|
401
|
+
writeThroughEdgesIndex(vaultRoot);
|
|
354
402
|
const after = collapse(readRawRecords(vaultRoot)).get(edgeKey(...canonPair(record.from, record.to)));
|
|
355
403
|
if (!after)
|
|
356
404
|
return err(new Error("edge not found after write"));
|
|
@@ -395,14 +443,53 @@ export async function contestEdge(vaultRoot, input) {
|
|
|
395
443
|
const reason = e instanceof Error ? e.message : String(e);
|
|
396
444
|
return err(new Error(`cannot record edge contest: ${reason}`));
|
|
397
445
|
}
|
|
446
|
+
writeThroughEdgesIndex(vaultRoot);
|
|
398
447
|
const after = collapse(readRawRecords(vaultRoot)).get(edgeKey(...canonPair(from, to)));
|
|
399
448
|
if (!after)
|
|
400
449
|
return err(new Error("edge not found after write"));
|
|
401
450
|
return ok(deriveEdge(after, new Date()));
|
|
402
451
|
}
|
|
403
|
-
//
|
|
404
|
-
//
|
|
405
|
-
|
|
452
|
+
// Rehydrates the public edge shape from a materialized row, recomputing live
|
|
453
|
+
// strength/status at `now`. The stored strength/status are frozen at
|
|
454
|
+
// `last_age_decay`; only (k_survived, last_rederived) — which no amount of
|
|
455
|
+
// aging changes — plus the revoked flag are trusted from the row.
|
|
456
|
+
function deriveEdgeFromRow(row, now) {
|
|
457
|
+
const revoked = row.status === "revoked";
|
|
458
|
+
const strength = revoked ? 0 : agedStrength(row.k_survived, row.last_rederived, now);
|
|
459
|
+
const status = revoked
|
|
460
|
+
? "revoked"
|
|
461
|
+
: strength >= EDGE_TRIGGER_STRENGTH
|
|
462
|
+
? "trigger-bearing"
|
|
463
|
+
: "candidate";
|
|
464
|
+
return {
|
|
465
|
+
fromPath: row.from_path,
|
|
466
|
+
toPath: row.to_path,
|
|
467
|
+
strength,
|
|
468
|
+
kSurvived: row.k_survived,
|
|
469
|
+
firstObserved: row.first_observed,
|
|
470
|
+
lastRederived: row.last_rederived,
|
|
471
|
+
status,
|
|
472
|
+
directionVerdict: row.direction_verdict,
|
|
473
|
+
observations: row.observations,
|
|
474
|
+
contestedAt: row.contested_at,
|
|
475
|
+
contestReason: row.contest_reason,
|
|
476
|
+
};
|
|
477
|
+
}
|
|
478
|
+
// Rebuilds the table iff the jsonl's stat no longer matches the marker stored
|
|
479
|
+
// at the last materialization. This is what lets reads trust the table: an
|
|
480
|
+
// external append, a manual log edit, or a lost write-through all surface as
|
|
481
|
+
// a marker mismatch and heal here before the query runs.
|
|
482
|
+
function ensureFreshEdgesIndex(db, vaultRoot) {
|
|
483
|
+
if (getMeta(db, EDGES_LOG_STAT_META_KEY) === edgesLogStatMarker(vaultRoot))
|
|
484
|
+
return ok(undefined);
|
|
485
|
+
const rebuilt = rebuildEdgesIndex(db, vaultRoot);
|
|
486
|
+
return rebuilt.ok ? ok(undefined) : rebuilt;
|
|
487
|
+
}
|
|
488
|
+
// Degraded read path: collapse the canonical jsonl directly. Used only when
|
|
489
|
+
// the index db cannot be OPENED (e.g. a read-only .daftari, where sqlite
|
|
490
|
+
// cannot create WAL sidecars) — the jsonl is the canonical store, so falling
|
|
491
|
+
// back costs performance, never correctness.
|
|
492
|
+
function listEdgesFromLog(vaultRoot, filter, now) {
|
|
406
493
|
try {
|
|
407
494
|
let edges = [...collapse(readRawRecords(vaultRoot)).values()].map((s) => deriveEdge(s, now));
|
|
408
495
|
if (filter.fromPath)
|
|
@@ -421,15 +508,74 @@ export async function listEdges(vaultRoot, filter = {}, now = new Date()) {
|
|
|
421
508
|
return err(new Error(`cannot read edges: ${reason}`));
|
|
422
509
|
}
|
|
423
510
|
}
|
|
511
|
+
// Materialized edges with live aged strength, strongest first (ties by key for
|
|
512
|
+
// a stable order). An empty/missing log is not an error — nothing observed.
|
|
513
|
+
export async function listEdges(vaultRoot, filter = {}, now = new Date()) {
|
|
514
|
+
const opened = openIndexDb(vaultRoot, getProvider().dim);
|
|
515
|
+
if (!opened.ok)
|
|
516
|
+
return listEdgesFromLog(vaultRoot, filter, now);
|
|
517
|
+
const db = opened.value;
|
|
518
|
+
try {
|
|
519
|
+
const fresh = ensureFreshEdgesIndex(db, vaultRoot);
|
|
520
|
+
if (!fresh.ok)
|
|
521
|
+
return err(new Error(`cannot read edges: ${fresh.error.message}`));
|
|
522
|
+
// Status PREFILTER on the stored column. "revoked" is exact (a write-only
|
|
523
|
+
// flag, and writes re-materialize). The two live statuses are a function
|
|
524
|
+
// of aging strength, so either may have drifted since materialization —
|
|
525
|
+
// fetch both and let the recomputed status decide.
|
|
526
|
+
const statusIn = filter.status === undefined
|
|
527
|
+
? undefined
|
|
528
|
+
: filter.status === "revoked"
|
|
529
|
+
? ["revoked"]
|
|
530
|
+
: ["candidate", "trigger-bearing"];
|
|
531
|
+
let edges = listDerivesFromEdgeRows(db, {
|
|
532
|
+
fromPath: filter.fromPath,
|
|
533
|
+
toPath: filter.toPath,
|
|
534
|
+
statusIn,
|
|
535
|
+
}).map((row) => deriveEdgeFromRow(row, now));
|
|
536
|
+
if (filter.status)
|
|
537
|
+
edges = edges.filter((e) => e.status === filter.status);
|
|
538
|
+
edges.sort((a, b) => b.strength - a.strength ||
|
|
539
|
+
a.fromPath.localeCompare(b.fromPath) ||
|
|
540
|
+
a.toPath.localeCompare(b.toPath));
|
|
541
|
+
return ok(edges);
|
|
542
|
+
}
|
|
543
|
+
catch (e) {
|
|
544
|
+
const reason = e instanceof Error ? e.message : String(e);
|
|
545
|
+
return err(new Error(`cannot read edges: ${reason}`));
|
|
546
|
+
}
|
|
547
|
+
finally {
|
|
548
|
+
db.close();
|
|
549
|
+
}
|
|
550
|
+
}
|
|
424
551
|
export async function getEdge(vaultRoot, fromPath, toPath, now = new Date()) {
|
|
552
|
+
const opened = openIndexDb(vaultRoot, getProvider().dim);
|
|
553
|
+
if (!opened.ok) {
|
|
554
|
+
// Same degraded posture as listEdgesFromLog: canonical store, no cache.
|
|
555
|
+
try {
|
|
556
|
+
const state = collapse(readRawRecords(vaultRoot)).get(edgeKey(...canonPair(fromPath, toPath)));
|
|
557
|
+
return ok(state ? deriveEdge(state, now) : null);
|
|
558
|
+
}
|
|
559
|
+
catch (e) {
|
|
560
|
+
const reason = e instanceof Error ? e.message : String(e);
|
|
561
|
+
return err(new Error(`cannot read edge: ${reason}`));
|
|
562
|
+
}
|
|
563
|
+
}
|
|
564
|
+
const db = opened.value;
|
|
425
565
|
try {
|
|
426
|
-
const
|
|
427
|
-
|
|
566
|
+
const fresh = ensureFreshEdgesIndex(db, vaultRoot);
|
|
567
|
+
if (!fresh.ok)
|
|
568
|
+
return err(new Error(`cannot read edge: ${fresh.error.message}`));
|
|
569
|
+
const row = getDerivesFromEdgePair(db, fromPath, toPath);
|
|
570
|
+
return ok(row ? deriveEdgeFromRow(row, now) : null);
|
|
428
571
|
}
|
|
429
572
|
catch (e) {
|
|
430
573
|
const reason = e instanceof Error ? e.message : String(e);
|
|
431
574
|
return err(new Error(`cannot read edge: ${reason}`));
|
|
432
575
|
}
|
|
576
|
+
finally {
|
|
577
|
+
db.close();
|
|
578
|
+
}
|
|
433
579
|
}
|
|
434
580
|
// --- sqlite index rebuild ----------------------------------------------------
|
|
435
581
|
// Collapses the jsonl and repopulates the `derives_from_edges` table from
|
|
@@ -439,6 +585,10 @@ export async function getEdge(vaultRoot, fromPath, toPath, now = new Date()) {
|
|
|
439
585
|
// agedStrength). One transaction, so a mid-rebuild failure rolls back.
|
|
440
586
|
export function rebuildEdgesIndex(db, vaultRoot, now = new Date()) {
|
|
441
587
|
try {
|
|
588
|
+
// Stat BEFORE reading: if the log grows between the stat and the read, the
|
|
589
|
+
// marker undercounts and the next read harmlessly rebuilds again. Statting
|
|
590
|
+
// after would risk marking content the collapse never saw as fresh.
|
|
591
|
+
const marker = edgesLogStatMarker(vaultRoot);
|
|
442
592
|
const edges = [...collapse(readRawRecords(vaultRoot)).values()].map((s) => deriveEdge(s, now));
|
|
443
593
|
const at = toSecondISO(now);
|
|
444
594
|
const rows = edges.map((e) => ({
|
|
@@ -451,11 +601,15 @@ export function rebuildEdgesIndex(db, vaultRoot, now = new Date()) {
|
|
|
451
601
|
last_age_decay: at,
|
|
452
602
|
status: e.status,
|
|
453
603
|
direction_verdict: e.directionVerdict,
|
|
604
|
+
observations: e.observations,
|
|
605
|
+
contested_at: e.contestedAt,
|
|
606
|
+
contest_reason: e.contestReason,
|
|
454
607
|
}));
|
|
455
608
|
const write = db.transaction(() => {
|
|
456
609
|
clearDerivesFromEdges(db);
|
|
457
610
|
for (const row of rows)
|
|
458
611
|
upsertDerivesFromEdge(db, row);
|
|
612
|
+
setMeta(db, EDGES_LOG_STAT_META_KEY, marker);
|
|
459
613
|
});
|
|
460
614
|
write();
|
|
461
615
|
return ok({ count: rows.length });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edges.js","sourceRoot":"","sources":["../../src/curation/edges.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"edges.js","sourceRoot":"","sources":["../../src/curation/edges.ts"],"names":[],"mappings":"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"}
|