1"use strict";(globalThis.webpackChunksochdb_docs=globalThis.webpackChunksochdb_docs||[]).push([[3095],{2737(e,n,s){s.r(n),s.d(n,{assets:()=>d,contentTitle:()=>o,default:()=>a,frontMatter:()=>l,metadata:()=>i,toc:()=>c});const i=JSON.parse('{"id":"RELEASE_NOTES_0.3.3","title":"SochDB v0.3.3 Release Notes","description":"SochDB v0.3.3 release notes: a lightweight graph overlay system on KV storage for agent memory management.","source":"@site/docs/RELEASE_NOTES_0.3.3.md","sourceDirName":".","slug":"/RELEASE_NOTES_0.3.3","permalink":"/docs/RELEASE_NOTES_0.3.3","draft":false,"unlisted":false,"editUrl":"https://github.com/sochdb/sochdb-docs/tree/main/docs/RELEASE_NOTES_0.3.3.md","tags":[],"version":"current","lastUpdatedBy":"Sushanth Reddy","lastUpdatedAt":1781390062000,"frontMatter":{"description":"SochDB v0.3.3 release notes: a lightweight graph overlay system on KV storage for agent memory management."}}');var r=s(4848),t=s(8453);const l={description:"SochDB v0.3.3 release notes: a lightweight graph overlay system on KV storage for agent memory management."},o="SochDB v0.3.3 Release Notes",d={},c=[{value:"\ud83c\udf89 New Features",id:"-new-features",level:2},{value:"\ud83d\udd78\ufe0f Graph Overlay System",id:"\ufe0f-graph-overlay-system",level:3},{value:"\ud83d\udcca Context Query Enhancements",id:"-context-query-enhancements",level:3},{value:"\ud83d\udee1\ufe0f Policy & Safety Improvements",id:"\ufe0f-policy--safety-improvements",level:3},{value:"\ud83d\udd00 Tool Routing Enhancements",id:"-tool-routing-enhancements",level:3},{value:"\ud83d\udc1b Bug Fixes",id:"-bug-fixes",level:2},{value:"\ud83d\ude80 Performance Improvements",id:"-performance-improvements",level:2},{value:"\ud83d\udce6 SDK Updates",id:"-sdk-updates",level:2},{value:"Python SDK (sochdb v0.3.3)",id:"python-sdk-sochdb-v033",level:3},{value:"Go SDK (github.com/sochdb/sochdb-go v0.3.3)",id:"go-sdk-githubcomsochdbsochdb-go-v033",level:3},{value:"Node.js SDK (@sochdb/sochdb v0.3.3)",id:"nodejs-sdk-sochdbsochdb-v033",level:3},{value:"\ud83d\udcda Documentation",id:"-documentation",level:2},{value:"New Guides",id:"new-guides",level:3},{value:"Updated Documentation",id:"updated-documentation",level:3},{value:"\ud83d\udd04 Breaking Changes",id:"-breaking-changes",level:2},{value:"\ud83d\udcdd Migration Guide",id:"-migration-guide",level:2},{value:"\ud83d\ude4f Acknowledgments",id:"-acknowledgments",level:2},{value:"\ud83d\udccb Full Changelog",id:"-full-changelog",level:2},{value:"\ud83d\udd17 Links",id:"-links",level:2},{value:"\ud83d\udcca Stats",id:"-stats",level:2}];function h(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",hr:"hr",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,t.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.header,{children:(0,r.jsx)(n.h1,{id:"sochdb-v033-release-notes",children:"SochDB v0.3.3 Release Notes"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Release Date:"})," January 5, 2026"]}),"\n",(0,r.jsx)(n.h2,{id:"-new-features",children:"\ud83c\udf89 New Features"}),"\n",(0,r.jsx)(n.h3,{id:"\ufe0f-graph-overlay-system",children:"\ud83d\udd78\ufe0f Graph Overlay System"}),"\n",(0,r.jsx)(n.p,{children:"A lightweight graph layer built on top of SochDB's KV storage for agent memory management:"}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Features:"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Node operations: Add, Get, Update, Delete with typed nodes"}),"\n",(0,r.jsx)(n.li,{children:"Edge operations: Add, Get, Delete with relationship tracking"}),"\n",(0,r.jsx)(n.li,{children:"Graph traversal: BFS, DFS, Shortest Path algorithms"}),"\n",(0,r.jsx)(n.li,{children:"Neighbor queries: Get incoming/outgoing neighbors with filters"}),"\n",(0,r.jsx)(n.li,{children:"Subgraph extraction: Extract connected components"}),"\n",(0,r.jsx)(n.li,{children:"Namespace isolation: Multi-tenant graph support"}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Use Cases:"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Agent conversation history with causal chains"}),"\n",(0,r.jsx)(n.li,{children:"Entity relationship tracking across sessions"}),"\n",(0,r.jsx)(n.li,{children:"Action dependency graphs for planning"}),"\n",(0,r.jsx)(n.li,{children:"Knowledge graph construction"}),"\n"]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"SDKs:"})," Python, Go, Node.js/TypeScript"]}),"\n",(0,r.jsx)(n.h3,{id:"-context-query-enhancements",children:"\ud83d\udcca Context Query Enhancements"}),"\n",(0,r.jsx)(n.p,{children:"Improved token-aware context retrieval:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Better token estimation for GPT-4, Claude models"}),"\n",(0,r.jsx)(n.li,{children:"Enhanced deduplication strategies"}),"\n",(0,r.jsx)(n.li,{children:"Multi-format support (text, JSON, markdown)"}),"\n",(0,r.jsx)(n.li,{children:"Relevance scoring improvements"}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"\ufe0f-policy--safety-improvements",children:"\ud83d\udee1\ufe0f Policy & Safety Improvements"}),"\n",(0,r.jsx)(n.p,{children:"Enhanced agent safety controls:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Additional pre-built policy templates"}),"\n",(0,r.jsx)(n.li,{children:"Better audit trail generation"}),"\n",(0,r.jsx)(n.li,{children:"Performance optimizations for high-throughput scenarios"}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"-tool-routing-enhancements",children:"\ud83d\udd00 Tool Routing Enhancements"}),"\n",(0,r.jsx)(n.p,{children:"Multi-agent coordination improvements:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Dynamic agent discovery"}),"\n",(0,r.jsx)(n.li,{children:"Better load balancing strategies"}),"\n",(0,r.jsx)(n.li,{children:"Failover improvements"}),"\n",(0,r.jsx)(n.li,{children:"Agent health monitoring"}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"-bug-fixes",children:"\ud83d\udc1b Bug Fixes"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Fixed edge c
1ase in BFS traversal with cyclic graphs"}),"\n",(0,r.jsx)(n.li,{children:"Resolved context query token counting for very long documents"}),"\n",(0,r.jsx)(n.li,{children:"Fixed policy hook execution order in nested transactions"}),"\n",(0,r.jsx)(n.li,{children:"Corrected tool routing priority when multiple agents match"}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"-performance-improvements",children:"\ud83d\ude80 Performance Improvements"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"15% faster graph traversal algorithms"}),"\n",(0,r.jsx)(n.li,{children:"Reduced memory usage for large graph structures"}),"\n",(0,r.jsx)(n.li,{children:"Optimized prefix scanning for graph edges"}),"\n",(0,r.jsx)(n.li,{children:"Improved context query compilation time"}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"-sdk-updates",children:"\ud83d\udce6 SDK Updates"}),"\n",(0,r.jsx)(n.h3,{id:"python-sdk-sochdb-v033",children:"Python SDK (sochdb v0.3.3)"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["Added ",(0,r.jsx)(n.code,{children:"GraphOverlay"})," class with full API"]}),"\n",(0,r.jsxs)(n.li,{children:["Enhanced ",(0,r.jsx)(n.code,{children:"ContextQuery"})," with better token estimation"]}),"\n",(0,r.jsxs)(n.li,{children:["Updated examples in ",(0,r.jsx)(n.code,{children:"sochdb-python-examples/new_features/"})]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"go-sdk-githubcomsochdbsochdb-go-v033",children:"Go SDK (github.com/sochdb/sochdb-go v0.3.3)"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["Added ",(0,r.jsx)(n.code,{children:"GraphOverlay"})," struct with 660 lines of implementation"]}),"\n",(0,r.jsxs)(n.li,{children:["Added ",(0,r.jsx)(n.code,{children:"ContextQuery"})," struct with 545 lines of implementation"]}),"\n",(0,r.jsx)(n.li,{children:"Full API parity with Python SDK"}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"nodejs-sdk-sochdbsochdb-v033",children:"Node.js SDK (@sochdb/sochdb v0.3.3)"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["Added ",(0,r.jsx)(n.code,{children:"GraphOverlay"})," class with TypeScript types"]}),"\n",(0,r.jsxs)(n.li,{children:["Added ",(0,r.jsx)(n.code,{children:"ContextQuery"})," class with async/await support"]}),"\n",(0,r.jsx)(n.li,{children:"Updated TypeScript definitions"}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"-documentation",children:"\ud83d\udcda Documentation"}),"\n",(0,r.jsx)(n.h3,{id:"new-guides",children:"New Guides"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.a,{href:"/docs/guides/graph-overlay",children:"Graph Overlay Guide"})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.a,{href:"/docs/guides/context-query",children:"Context Query Guide"})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.a,{href:"/docs/guides/policy-hooks",children:"Policy Hooks Guide"})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.a,{href:"/docs/guides/tool-routing",children:"Tool Routing Guide"})}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"updated-documentation",children:"Updated Documentation"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"API Reference updated with Graph Overlay methods"}),"\n",(0,r.jsx)(n.li,{children:"Architecture docs updated with graph storage model"}),"\n",(0,r.jsx)(n.li,{children:"Examples added for all new features"}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"-breaking-changes",children:"\ud83d\udd04 Breaking Changes"}),"\n",(0,r.jsx)(n.p,{children:"None. This is a fully backward-compatible release."}),"\n",(0,r.jsx)(n.h2,{id:"-migration-guide",children:"\ud83d\udcdd Migration Guide"}),"\n",(0,r.jsx)(n.p,{children:"No migration needed. All existing code continues to work."}),"\n",(0,r.jsx)(n.p,{children:"To use new features:"}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Python:"})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-python",children:'from sochdb import Database, GraphOverlay\ndb = Database.open("./db")\ngraph = GraphOverlay(db, namespace="demo")\n'})}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Go:"})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-go",children:'import sochdb "github.com/sochdb/sochdb-go"\ndb, _ := sochdb.Open("./db")\ngraph := sochdb.NewGraphOverlay(db, "demo")\n'})}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Node.js:"})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-typescript",children:"import { Database, GraphOverlay } from '@sochdb/sochdb';\nconst db = await Database.open('./db');\nconst graph = new GraphOverlay(db, 'demo');\n"})}),"\n",(0,r.jsx)(n.h2,{id:"-acknowledgments",children:"\ud83d\ude4f Acknowledgments"}),"\n",(0,r.jsx)(n.p,{children:"Special thanks to all contributors who helped make this release possible!"}),"\n",(0,r.jsx)(n.h2,{id:"-full-changelog",children:"\ud83d\udccb Full Changelog"}),"\n",(0,r.jsxs)(n.p,{children:["See the ",(0,r.jsx)(n.a,{href:"https://github.com/sochdb/sochdb",children:"main repository"})," for complete details."]}),"\n",(0,r.jsx)(n.h2,{id:"-links",children:"\ud83d\udd17 Links"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.a,{href:"https://github.com/sochdb/sochdb",children:"Main Repository"})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.a,{href:"https://github.com/sochdb/sochdb-python-sdk",children:"Python SDK"})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.a,{href:"https://github.com/sochdb/sochdb-go",children:"Go SDK"})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.a,{href:"https://github.com/sochdb/sochdb-nodejs-sdk",children:"Node.js SDK"})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.a,{href:"https://sochdb.dev",children:"Documentation"})}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"-stats",children:"\ud83d\udcca Stats"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Total Features Added:"})," 4 major features"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Lines of Code:"})," +2,500 across all SDKs"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Test Coverage:"})," 95%+"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"SDK Parity:"})," 100% feature parity across Python, Go, Node.js"]}),"\n"]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Upgrade Command:"})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"# Python\npip install --upgrade sochdb\n\n# Go\ngo get github.com/sochdb/[email protected]\n\n# Node.js\nnpm install @sochdb/sochdb@latest\n"})})]})}function a(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(h,{...e})}):h(e)}},8453(e,n,s){s.d(n,{R:()=>l,x:()=>o});var i=s(6540);const r={},t=i.createContext(r);function l(e){const n=i.useContext(t);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:l(e.components),i.createElement(t.Provider,{value:n},e.children)}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.