Skip to content

History / Architecture

Revisions

  • Fix doc drift found by running every datalog example - Per-fact valid time uses a 4th-element map, not a 5-element vector (Cookbook-Bitemporal-Modeling, Datalog-Reference; EBNF fact rule). - Performance-Tuning: fix rule syntax; replace the 3-arity bounded-depth rule (rules take 1 or 2 args, INT-028) with a working per-hop pattern. - Datalog-Reference: document the rule arity limit. - Quoted error messages now match the engine and carry their codes. - Use-Cases/Home: bindings live in their own repos. Android and JVM are io.github.project-minigraf on Maven Central, Swift is minigraf-swift, C tarballs are on minigraf-c releases. Fix imports and dead links. - Architecture: v8 keys are on the v3 branch, not main; document error.rs, magic_sets.rs, browser/, fault_inject.rs; bindings table. - Comparison: ~1.2MB budget; WASM row lists WASM targets only. - Tutorial-01: fix Tutorial-03 link. Refs project-minigraf/minigraf#383, #405, #407 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BBxgR4mnF8VMVGa42idcxx

    @adityamukho adityamukho committed Sep 26, 2026
  • Architecture: document file format v8 and new index key layout (goes live in v3.0.0) Covers #371/#287 (merged in #377): value_bytes + asserted appended to EAVT/AEVT keys, asserted to AVET/VAET, v7->v8 auto-migration, v1-v6 rejected with STG-028, STG-003/STG-004 deprecated. The v7 description stays current until v3.0.0 ships. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BedF9ZmqVZLkvDwn91fuKy

    @adityamukho adityamukho committed Sep 25, 2026
  • docs: fix stale .graph.lock version reference for v2.0.0 (was 1.3)

    @adityamukho adityamukho committed Aug 26, 2026
  • docs: document OpenOptions::synchronous (SyncMode) for #302 Covers the planned WAL durability option in Architecture.md's WAL section and Performance-Tuning.md's config knobs / query patterns, and corrects the stale claim that the WAL uses no explicit fsync.

    @adityamukho adityamukho committed Aug 25, 2026
  • docs: Windows locks exclude same-process handles too The earlier wording said other processes cannot read an open .graph file. It is stricter than that: LockFileEx excludes every handle but the one holding the lock, so a second handle in the SAME process is refused as well, with os error 33 naming an 'other process' that is actually you. Found by CI: a test read the header through a second handle while the database was open and failed on the Windows leg only.

    @adityamukho adityamukho committed Aug 22, 2026
  • docs: kernel file locking replaces the PID sidecar Rewrites the File Locking section: the .graph.lock sidecar keyed on a PID is gone (#317 — PIDs are not unique across namespaces and every container's main process is PID 1). The lock now lives in the kernel via std::fs::File::try_lock, released automatically on process exit however it exits. Documents the bounded cross-process WouldBlock retry, the Windows mandatory-lock behaviour change, and allow_unlocked for filesystems that cannot lock at all.

    @adityamukho adityamukho committed Aug 22, 2026
  • Architecture: document the sidecar file lock and same-process exclusion The Thread Safety section covered in-process locking (RwLock, Mutex) but the `.graph.lock` sidecar was never documented anywhere in the wiki, so neither process exclusivity nor the one-handle-per-process rule was discoverable. Adds a File Locking section covering the sidecar, why a second open in the same process is refused (divergent cached page_count between two FileBackends, which is what produced the intermittent "Page N out of bounds"), and the procfs-only limit on reclaiming a dead holder's lock. See minigraf#304.

    @adityamukho adityamukho committed Aug 10, 2026
  • docs(wiki): Architecture — file format v6→v7, workspace crates, browser thread safety

    @adityamukho adityamukho committed May 2, 2026
  • docs(wiki): Phase 8.1 complete — update Architecture, Comparison, Use-Cases - Architecture.md: mark IndexedDbBackend as Phase 8.1a complete - Comparison.md: update WASM Ready row to v0.20.0 complete - Use-Cases.md: remove 'planned' language; fix invalid entity ID format in JS and WASI examples (bare strings → keyword entities)

    @adityamukho adityamukho committed Apr 18, 2026
  • docs(wiki): update for Phase 7.8 — Prepared Statements (v0.18.0) - Architecture.md: add prepared.rs module entry; update db.rs description; add PreparedQuery thread-safety note (Arc clones of live stores) - Comparison.md: add Prepared Statements row to feature matrix - Datalog-Reference.md: add Prepared Statements section ($slot syntax, BindValue table, API example, notes); update Constraints list - Use-Cases.md: add prepared statements agentic loop example in AI Agents section Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

    @adityamukho adityamukho committed Apr 4, 2026
  • docs: update wiki for Phase 7.7b — User-Defined Functions (v0.17.0)

    @adityamukho adityamukho committed Apr 3, 2026
  • docs: add window functions reference for Phase 7.7a (v0.16.0) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

    @adityamukho adityamukho committed Apr 2, 2026
  • docs(wiki): update Architecture and Datalog-Reference for Phase 7.2b - Architecture.md: update module descriptions for parser/executor/evaluator/optimizer/types to reflect Expr AST; add Step 5 (expr clause evaluation) to query execution pipeline - Datalog-Reference.md: add full 'Arithmetic & Predicate Expressions' section (filter predicates, arithmetic bindings, all operators, semantics, safety check); update Constraints list to mark arithmetic predicates as supported Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

    @adityamukho adityamukho committed Mar 25, 2026
  • docs(wiki): add not/not-join to Datalog Reference and Architecture for Phase 7.1

    @adityamukho adityamukho committed Mar 24, 2026
  • docs(arch): update for Phase 6.5 — v6 file format, btree_v6.rs module - FileHeader v5 (72 bytes) → v6 (80 bytes); version field now 6 - fact_page_count field documented (bytes 72–80, new in v6) - Index pages updated from paged-blob to proper on-disk B+tree nodes - btree_v6.rs module entry added with OnDiskIndexReader, MutexStorageBackend - btree.rs noted as legacy migration-only - mod.rs updated to reflect v6 and CommittedIndexReader trait - Migration note updated to include v5→v6 path Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

    @adityamukho adityamukho committed Mar 23, 2026
  • wiki: add Architecture, Datalog Reference, Use Cases, Comparison, Learning Resources

    @adityamukho adityamukho committed Mar 22, 2026