@fortemi/core 2026.9.6 → 2026.9.7
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 +1 -1
- package/dist/index.d.ts +101 -25
- package/dist/index.js +879 -258
- package/dist/index.js.map +1 -1
- package/package.json +4 -1
- package/schemas/lifecycle-purge/contract.receipt.json +15 -0
- package/schemas/lifecycle-purge/v1.conformance.json +73 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fortemi/core",
|
|
3
|
-
"version": "2026.9.
|
|
3
|
+
"version": "2026.9.7",
|
|
4
4
|
"description": "Browser-only knowledge management core: PGlite (PostgreSQL WASM), MCP tools, hybrid search, and profile-scoped Knowledge Shard interchange.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"fortemi",
|
|
@@ -58,6 +58,8 @@
|
|
|
58
58
|
"./schemas/dataset-lineage/v1": "./schemas/dataset-lineage/v1.schema.json",
|
|
59
59
|
"./schemas/dataset-materialization/v1": "./schemas/dataset-materialization/v1.schema.json",
|
|
60
60
|
"./schemas/source-note-upsert/v1-conformance": "./schemas/source-note-upsert/v1.conformance.json",
|
|
61
|
+
"./schemas/lifecycle-purge/v1-conformance": "./schemas/lifecycle-purge/v1.conformance.json",
|
|
62
|
+
"./schemas/lifecycle-purge/contract-receipt": "./schemas/lifecycle-purge/contract.receipt.json",
|
|
61
63
|
"./worker/pglite-worker": "./dist/worker/pglite-worker.js",
|
|
62
64
|
"./service-worker/sw": "./dist/service-worker/sw.js",
|
|
63
65
|
"./package.json": "./package.json"
|
|
@@ -69,6 +71,7 @@
|
|
|
69
71
|
"schemas/dataset-lineage",
|
|
70
72
|
"schemas/dataset-materialization",
|
|
71
73
|
"schemas/source-note-upsert",
|
|
74
|
+
"schemas/lifecycle-purge",
|
|
72
75
|
"schemas/metadata-search/candidate",
|
|
73
76
|
"benchmarks/dataset-materialization",
|
|
74
77
|
"tools",
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"contract": "lifecycle-purge/1.0.0",
|
|
3
|
+
"authority": {
|
|
4
|
+
"repository": "Fortemi/fortemi",
|
|
5
|
+
"issue": 1092,
|
|
6
|
+
"revision": "fd41d8165368f25495ed16f78c3b9a17778432c8",
|
|
7
|
+
"path": "contracts/lifecycle-purge/conformance/v1.json",
|
|
8
|
+
"sha256": "59327e3aad39d644a00d7f8fc6ece8689afcba0de027763a55ff68b38060ac7f"
|
|
9
|
+
},
|
|
10
|
+
"consumer": {
|
|
11
|
+
"repository": "Fortemi/fortemi-react",
|
|
12
|
+
"issue": 406,
|
|
13
|
+
"path": "packages/core/schemas/lifecycle-purge/v1.conformance.json"
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
{
|
|
2
|
+
"contract_version": "1.0.0",
|
|
3
|
+
"authority": "Fortemi/fortemi#1092",
|
|
4
|
+
"selector_semantics": "intersection",
|
|
5
|
+
"preview_ttl_seconds": 900,
|
|
6
|
+
"max_note_ids": 500,
|
|
7
|
+
"count_fields": [
|
|
8
|
+
"notes", "revisions", "links", "tags", "embeddings",
|
|
9
|
+
"attachments", "blobs", "graph_edges", "provenance_edges", "source_identities"
|
|
10
|
+
],
|
|
11
|
+
"receipt_allowed_fields": [
|
|
12
|
+
"contract_version", "operation_id", "outcome", "counts", "completed_at", "policy"
|
|
13
|
+
],
|
|
14
|
+
"receipt_forbidden_fields": [
|
|
15
|
+
"selector", "selector_hash", "selector_fingerprint", "tenant_id", "archive_id",
|
|
16
|
+
"note_ids", "source", "external_id", "operation_key", "storage_path",
|
|
17
|
+
"provider_payload", "content_digest"
|
|
18
|
+
],
|
|
19
|
+
"cases": [
|
|
20
|
+
{
|
|
21
|
+
"id": "shared-blob",
|
|
22
|
+
"expectation": "Only blobs with no surviving primary or preview attachment reference are counted and deleted.",
|
|
23
|
+
"expected_counts": {
|
|
24
|
+
"notes": 1,
|
|
25
|
+
"revisions": 0,
|
|
26
|
+
"links": 0,
|
|
27
|
+
"tags": 0,
|
|
28
|
+
"embeddings": 1,
|
|
29
|
+
"attachments": 2,
|
|
30
|
+
"blobs": 1,
|
|
31
|
+
"graph_edges": 0,
|
|
32
|
+
"provenance_edges": 0,
|
|
33
|
+
"source_identities": 0
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"id": "stale-preview",
|
|
38
|
+
"expectation": "A changed selected graph rejects execution and leaves all selected records intact."
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"id": "exact-replay",
|
|
42
|
+
"expectation": "Repeating an operation ID with the same preview returns status without another relational delete or receipt."
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"id": "cleanup-crash",
|
|
46
|
+
"expectation": "Repeating an external delete after a crash before acknowledgement converges to one terminal receipt."
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"id": "restore-reerasure",
|
|
50
|
+
"expectation": "A restored retained target is re-erased before indexing and returns the operation to cleanup_pending until external cleanup completes."
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"id": "source-intersection",
|
|
54
|
+
"expectation": "Combined note and source selectors intersect; a partial source purge retains shared journals and a whole-source purge removes them after the final identity is erased.",
|
|
55
|
+
"expected_counts": {
|
|
56
|
+
"notes": 1,
|
|
57
|
+
"revisions": 0,
|
|
58
|
+
"links": 0,
|
|
59
|
+
"tags": 0,
|
|
60
|
+
"embeddings": 1,
|
|
61
|
+
"attachments": 0,
|
|
62
|
+
"blobs": 0,
|
|
63
|
+
"graph_edges": 0,
|
|
64
|
+
"provenance_edges": 0,
|
|
65
|
+
"source_identities": 1
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"id": "expired-preview-cleanup",
|
|
70
|
+
"expectation": "Creating a new preview removes expired unconsumed selector snapshots within the same tenant and memory."
|
|
71
|
+
}
|
|
72
|
+
]
|
|
73
|
+
}
|