Semantica v0.6.8
Released: 2026-09-05
Tag: v0.6.8 · Compare: v0.6.7...v0.6.8 · PyPI: semantica 0.6.8
Highlights
Every release from here on is cryptographically signed — the build now runs SLSA build-provenance attestation plus Sigstore signing, and .sigstore.json bundles ship alongside the wheel/sdist on every GitHub Release, closing the OpenSSF Scorecard Signed-Releases gap. This is also the release that actually exercises that pipeline for the first time: it surfaced a latent bug where the Sigstore output broke PyPI publishing, now fixed by running publish before signing writes into dist/.
Ships: real vector-store enumeration (scan_vectors()/iter_vectors()) across FAISS, SQLiteVec, PgVector, Qdrant, Weaviate, Pinecone, and Milvus, making semantica store migrate functional between backends for the first time; first-class Anthropic, Gemini, Ollama, DeepSeek, and Novita LLM provider wrappers in semantica.llms; a deterministic, CI-friendly ontology quality gate; first-class Google ADK integration; a Salesforce ingestor; ErasureCoordinator (completing the erasure workflow purge_node() only started, so a purged entity no longer survives verbatim in AgentMemory or as an embedding); and Explorer's read-only Markdown viewer becoming a full editor for live ContextGraph nodes and host-supplied AgentMemory items.
Also fixes: 35 correctness bugs (Python 3.9 install breakage, FAISS save/load metadata loss, semantica ingest's silent no-op against a configured graph store, MCP persistence, Explorer graph rendering, ontology property-collision handling, and more) and closes 12 Dependabot aiohttp alerts, 5 HIGH-severity Trivy container findings, and 2 npm advisories — see CHANGELOG.md for the full breakdown.
What's Changed
- #1231 ·
56d9e9a8· fix(ontology): coalesce normalized property collisions · @T1mn - #1241 ·
5376f046· fix(explorer): dedupe temporal snapshot requests and apply latest-wins · @ALDRIN121 - #1236 ·
da642f12· fix(export): @vocab mints into the shipped ns# namespace · @pkupt - #1041 ·
d3183d0a· feat(explorer): add deterministic rendering E2E example and test (#1037) · @alexsmolya - #1240 ·
4bf525d4· feat(ingest): add production-ready Salesforce ingestor · @Sameer6305 - #1024 ·
85d6ccd0· fix(memory): find_by_entity returns all matches by default · @yzxcj797 - #1249 ·
e13c953b· ci: resync github/codeql-action pin to current v4 · @ZohaibHassan16 - #1245 ·
30592b12· fix(split): validate sliding window progress · @HsienW - #1232 ·
a5aac7e2· test: guard fastapi-dependent modules so collection succeeds without the explorer extra · @dex0shubham - #1077 ·
0384a8de· fix(reasoning): implement RETE alpha/beta matching with Token model (#300) · @cxzg007 - #1255 ·
8b0ac61a· feat(llms): add first class Anthropic provider wrapper · @ZohaibHassan16 - #1254 ·
80e97375· fix(utils): write console progress to stderr instead of stdout · @dex0shubham - #1260 ·
cac6dfbe· fix(explorer): surface server error detail in graph loading failures · @wanglin1111111 - #1252 ·
f6cd6241· test(integrations): make crewai and langchain test dirs packages · @dex0shubham - #1262 ·
ea0dd17b· feat(llms): add Gemini, Ollama, DeepSeek, Novita provider wrappers · @ZohaibHassan16 - #1264 ·
dfda4c56· feat(vector_store): add scan_vectors enumeration and wire up store mi… · @ZohaibHassan16 - #1266 ·
56b17478· ci: reusable install action, install-matrix, and release hardening · @KaifAhmad1 - #1280 ·
08c78bfb· fix(security): resolve Scorecard vulnerability and token-permission alerts · @KaifAhmad1 - #1286 ·
fa87a1a9· ci: add npm Dependabot ecosystem and container image scanning · @KaifAhmad1 - #1329 ·
a4aa71ad· fix(ci): unblock py3.9 install matrix and raise Scorecard pinning/signing · @KaifAhmad1 - #1334 ·
1d62217c· fix(docker): resolve Trivy-flagged CVEs in the built image · @KaifAhmad1 - #1153 ·
c111277a· fix(context): make auto_generate_id a real InitVar in decision models · @cxzg007 - #1338 ·
832412cc· fix(ci): hash-pin every pip install for Scorecard Pinned-Dependencies · @KaifAhmad1 - #1341 ·
d4cd44e7· fix(docker): split explorer-extra.txt by Python version, fix broken build · @KaifAhmad1 - #1342 ·
96dbd3f0· fix(security): bump checkov to 3.3.16, fix aiohttp CVEs in its lockfile · @KaifAhmad1 - #1345 ·
d135ad18· fix(ci): drop unpinnable benchmarks/requirements.txt install · @KaifAhmad1 - #1346 ·
b0679d4f· fix(ci): stop checkov's suppressed checks from reopening as new alerts · @KaifAhmad1 - #1340 ·
46b18fbe· fix(docs): use GraphStore facade in Neo4j quickstart · @Sameer6305 - #1348 ·
f3c540cf· docs(readme): reposition Semantica as the semantic/context layer · @KaifAhmad1 - #1277 ·
8b125d64· fix(explorer): keep small Full Graph relationships readable · @taoche - #1230 ·
dc81acae· fix(ontology): reject normalized class name collisions · @T1mn - #1157 ·
3254b9be· Serve the RDF export formats the MCP tool already offers (#1131) · @13g4d0 - #1332 ·
635f6e52· Pin facade contract gaps for cloud backends · @ZohaibHassan16 - #1363 ·
7300fb41· fix(plugins): declare agents as an array of file paths in plugin.json · @7487 - #1357 ·
e6409217· docs(cookbook): correct graph mapping and deduplication in notebook 07 · @taoche - #1370 ·
d8822198· fix(ci): ignore CVE-2025-33228 in cuda-toolkit - unfixable transitive pin, unreachable code path · @KaifAhmad1 - #1371 ·
2eab7ab8· fix(ci): drop --ignore from Safety check, filter accepted CVEs in jq instead · @KaifAhmad1 - #1027 ·
e040d84d· feat(context): add ErasureCoordinator for cross-store entity erasure · @pravit-amp - #1344 ·
8e7aaee4· fix(vector-store): validate collection schema in MilvusStore.get_collection · @pkupt - #1382 ·
f9a661a4· security(deps-dev): bump browserslist from 4.28.2 to 4.28.8 in /explorer · @KaifAhmad1 - #1359 ·
114641b3· docs(cookbook): make notebook 08 a real rerunnable KG workflow · @taoche - #1361 ·
3acf8012· docs(cookbook): rewrite Semantic Layer Basics as an introductory workflow · @taoche - #1385 ·
5f600a3f· fix(ci): ignore torchvision GIF-decoder CVE, transitive and unreachable · @ZohaibHassan16 - #1314 ·
170b4215· fix(vector_store): persist vector_ids and metadata across FAISS index save/load (#1272) · @AhmadBilalDSA - #1387 ·
28c96c25· fix(ci): update actions/deploy-pages pin to current v5 · @ZohaibHassan16 - #1366 ·
c10090dc· fix(ci): fail closed on malformed Safety reports · @T1mn - #1229 ·
fb69b033· fix(ontology): resolve endpoints in direct property inference · @T1mn - #1337 ·
909ccf0d· test: install extractor dispatch mocks per test, not at module scope · @dex0shubham - #1390 ·
3d32254b· fix(ci): migrate security-scan from Safety to pip-audit · @ZohaibHassan16 - #1316 ·
110f6deb· feat(vector_store): add iter_all enumeration for cursor-based backends · @ZohaibHassan16 - #1317 ·
23126106· feat(vector_store): add weaviate iter_all · @ZohaibHassan16 - #1092 ·
30a91a3a· feat(evals): add per-metric objective support to runner (closes #1091) · @pkupt - #1326 ·
fc899c69· feat(vector_store): add milvus iter_all · @ZohaibHassan16 - #1328 ·
1bc873cb· feat(vector_store): add pinecone iter_all · @ZohaibHassan16 - #1396 ·
a4500f5b· docs: tighten README audience list, add SAP connector mentions, log Salesforce ingestor · @KaifAhmad1 - #1394 ·
798a7455· fix(mcp): complete persistence and setup fixes · @Sameer6305 - #1399 ·
3c68cd12· docs(mcp): document all 15 MCP tools · @ZohaibHassan16 - #1400 ·
25d2ea5f· docs: update stale latest-version references to v0.6.7 · @ZohaibHassan16 - #1401 ·
b7b60d4a· docs(quickstart): fix broken examples against current APIs · @ZohaibHassan16 - #1395 ·
45915e50· fix(context): vector_store=False must suppress AgentMemory's internal vector cascade in ErasureCoordinator · @Harsh4r0ra - #1402 ·
279fdbf1· docs(quickstart): qodo findings addressed · @ZohaibHassan16 - #1403 ·
38ae5b58· docs: fix two broken cookbook notebook links · @ZohaibHassan16 - #1410 ·
d54d74c8· ci: report required checks for docs-only PRs · @Sameer6305 - #1407 ·
4559ac65· docs: convert relative page links to root paths to fix 404s on the live site · @Duansg - #1068 ·
b177fa75· fix: replace mutable default arguments with None + in-body defaults · @yzxcj797 - #1398 ·
2d776b73· docs(evals): update docs for the current evals API · @ZohaibHassan16 - #1414 ·
865aad54· docs(getting-started): fix broken APIs in the Knowledge Graph and GraphRAG tabs · @ZohaibHassan16 - #1415 ·
9e8db764· docs(quickstart): read parsed full_text · @ZohaibHassan16 - #1417 ·
b872b296· docs(concepts): rewrite code examples to match the actual API · @ZohaibHassan16 - #1392 ·
9321b9d2· feat(weaviate): add delete_vectors to WeaviateStore · @pkupt - #1418 ·
2daa9378· docs: simplify custom.css to a static, professional style · @KaifAhmad1 - #1419 ·
837654fc· docs: restructure nav — drop FAQ/Changelog tabs, add API Reference tab · @KaifAhmad1 - #1421 ·
40efab67· docs(index): cut marketing copy, remove em dashes, make crisp · @KaifAhmad1 - #1422 ·
58094184· docs: tighten prose in concepts.md, guides/graphrag.md, reference/context.md · @KaifAhmad1 - #1431 ·
ba85215a· docs(graphrag): fix broken string literals and clarifymax_hops· @ZohaibHassan16 - #1420 ·
6b843778· fix(ontology): stop inferring framework entity fields as datatype properties · @pkupt - #1278 ·
dd1e6540· fix(explorer): load registered schemas in Ontology Editor · @taoche - #1432 ·
064f0ecc· docs(langchain): tighten integration prose · @taljeon - #1443 ·
6a07ad29· docs(modules): fix code examples to match the current API · @ZohaibHassan16 - #1444 ·
f6a0e4a3· docs(pipeline): wire the configured FailureHandler into the engine · @ZohaibHassan16 - #1446 ·
6ba433fe· docs(index): rewrite landing page as a crisp developer welcome · @KaifAhmad1 - #1447 ·
a85cf913· docs(reasoning): clarify Datalog query result ordering · @ZohaibHassan16 - #1448 ·
c04adcd1· docs(semantic-extraction): fix summary output and model ID · @ZohaibHassan16 - #1445 ·
f45499b5· fix(deps): unblock python 3.9 core install · @ZohaibHassan16 - #1449 ·
88a57b39· docs: replace retired claude-sonnet-4-20250514 model id · @ZohaibHassan16 - #1397 ·
4c6eab63· feat(ontology): add a CI-friendly quality gate · @T1mn - #1450 ·
8910d2c9· docs(ontology): document quality gate threshold semantics · @KaifAhmad1 - #1349 ·
b92fed2d· feat(explorer): add Markdown editor write path · @genni613 - #1452 ·
dc99b11d· docs(contributing): tighten prose and use developer-first guidance · @Deep070203 - #1312 ·
6b8122d7· This is resubmit of the pr for issue feat(integrations): add Google ADK support · @Hitesh-XS - #1453 ·
c2edf7e7· docs(modules): tighten prose, remove chained colons, and use develope… · @Deep070203 - #1454 ·
66cf9520· docs(glossary): tighten prose and remove colon pauses in glossary · @Deep070203 - #1456 ·
478b0024· docs(resources): tighten prose across FAQ, learning paths, citation, … · @Deep070203 - #1458 ·
6c40dea0· docs(architecture): tighten core principles and scalability prose · @Deep070203 - #1457 ·
08d6ec62· docs(cookbook): tighten prose across notebook catalogue · @Deep070203 - #1442 ·
4568aeba· docs: tighten prose in top-level and community pages · @Deep070203 - #1459 ·
b82ae984· docs(setup): tighten prose across quickstart, installation, and CLI s… · @Deep070203 - #1437 ·
97ae95c3· explorer: name SHACL limit env vars in error messages · @pkupt - #1466 ·
820f7257· docs(decision-intelligence): fix broken add_decision pattern and hybr… · @ZohaibHassan16 - #1473 ·
a5994497· fix: correct production env var to SEMANTICA_API_KEY (fixes #1429) · @v01dst - #1455 ·
ce0ae1cb· refactor(context): expose public temporal normalizer · @Saket7002 - #1381 ·
754fe5fd· fix(context): deep-copy store results in ErasureReceipt.to_dict() · @BinarySpecter - #1465 ·
ebd659a9· Closes #1351: [BUG] semantica ingest reports "✓ Ingested" but persists nothing to a configured Neo4j backend (silent no-op) · @evgenyponomarev - #1476 ·
a65874e4· chore(release): prepare v0.6.8 · @KaifAhmad1
104 pull requests merged from 27 contributors.