Skip to content

Commit dc78231

Browse files
chore(vault): bump version to 1.6.0
Knowledge graph subpackage release: GraphEngine, dual-backend storage, intelligence services, membrane sanitization, 213 graph tests, 100/100 security audit score. Made-with: Cursor
1 parent b5a9ffb commit dc78231

File tree

4 files changed

+32
-3
lines changed

4 files changed

+32
-3
lines changed

CHANGELOG.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,35 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [1.6.0] - 2026-04-10
11+
12+
### Added
13+
- **Knowledge Graph**: New `qp_vault.graph` subpackage. Access via `vault.graph` on any AsyncVault or Vault instance.
14+
- **GraphEngine**: Typed async CRUD for nodes, edges, mentions, traversal, merge, and scan. Every mutation fires a VaultEvent for capsule audit.
15+
- **GraphStorageBackend Protocol**: 20-method storage contract. PostgreSQL (pg_trgm similarity, recursive CTE traversal) and SQLite (FTS5 search, Python BFS traversal) backends.
16+
- **KnowledgeExtractor**: LLM-based entity/relationship extraction with membrane sanitization (NFKC normalization, HTML escaping, XML wrapping). Validation caps: 200 entities, 500 relationships.
17+
- **EntityResolver**: Three-stage dedup cascade (exact match, FTS/trigram search, create-on-miss).
18+
- **EntityDetector**: In-memory name matching (10k entity index, 50k text cap). Optional fuzzy mode via EntityResolver.
19+
- **EntityMaterializer**: Generates `profile.md` (wikilinks, properties, relationships, mentions) and `manifest.json` per entity.
20+
- **WikilinkResolver**: Parse and resolve `[[Entity Name]]` and `[[Entity Name|Display Text]]` syntax. Code fence exclusion. Case-insensitive dedup.
21+
- **Graph-Augmented Search**: `vault.search(query, graph_boost=True)` detects entities in queries and boosts matching documents (15% relevance boost).
22+
- **Membrane Sanitization**: `sanitize_for_extraction()` for LLM extraction input.
23+
- **10 Graph EventTypes**: `ENTITY_CREATE`, `ENTITY_UPDATE`, `ENTITY_DELETE`, `EDGE_CREATE`, `EDGE_DELETE`, `ENTITY_MERGE`, `MENTION_TRACK`, `SCAN_START`, `SCAN_COMPLETE`, `SCAN_FAIL`.
24+
- **`graph` optional extra** in pyproject.toml (no additional deps required).
25+
- 213 new graph tests (storage, capsule, intelligence, models, edge cases, materialization, extraction errors, security).
26+
27+
### Security
28+
- Input validation at every boundary: name (500 chars), entity_type (50 chars), relation_type (100 chars), properties (50KB, 2000 chars/value), tags (50 max, 100 chars each), weight (0.0-1.0), null byte stripping.
29+
- Self-edge rejection, self-merge rejection, direction enum validation, limit capping (10,000), context_for ID cap (50).
30+
- `graph_schema` parameter validated as SQL identifier (`^[a-zA-Z_][a-zA-Z0-9_]*$`).
31+
- `source_label` in sanitization validated as alpha-only.
32+
- LLM extraction output: property key cap (20/entity, 100 chars), property value cap (500 chars).
33+
34+
### Changed
35+
- `PostgresBackend.__init__()` accepts `graph_schema` parameter (default `"qp_vault"`, set to `"quantumpipes"` for Core migration compatibility).
36+
- `vault.search()` accepts `graph_boost: bool = False` parameter.
37+
- `__init__.py` exports `GraphStorageBackend`, `GraphEngine`, `GraphNode`, `GraphEdge` (lazy-loaded).
38+
1039
## [1.5.2] - 2026-04-09
1140

1241
### Fixed

docs/api-reference.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# API Reference
22

3-
Complete Python SDK for qp-vault v1.5.1.
3+
Complete Python SDK for qp-vault v1.6.0.
44

55
## Constructor
66

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
44

55
[project]
66
name = "qp-vault"
7-
version = "1.5.2"
7+
version = "1.6.0"
88
description = "Governed knowledge store for autonomous organizations. Trust tiers, cryptographic audit trails, content-addressed storage, air-gap native."
99
readme = "README.md"
1010
license = "Apache-2.0"

src/qp_vault/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
Docs: https://github.com/quantumpipes/vault
2727
"""
2828

29-
__version__ = "1.5.2"
29+
__version__ = "1.6.0"
3030
__author__ = "Quantum Pipes Technologies, LLC"
3131
__license__ = "Apache-2.0"
3232

0 commit comments

Comments
 (0)