Repository navigation
v0.7.1 — AMKB adapter (L1/L2 + partial L4)
First adapter release. spikuit_agents.amkb.SpikuitStore satisfies
the AMKB v0.2 sync Store / Transaction Protocols on top of the
async spikuit_core.Circuit, and the upstream conformance matrix
runs green against it.
Highlights
SpikuitStore: sync facade overCircuit. A persistent
background asyncio loop keeps the aiosqlite connection pinned to
one thread for the lifetime of the store, so AMKB's sync Protocol
composes with Spikuit's async engine without a second runtime.SpikuitStoreTransaction: imperatively drives
Circuit.transaction()'s__aenter__/__aexit__across
separate loop submissions so one Spikuit changeset spans the
lifetime of one AMKB transaction. Leavingwithwithout
commit()synthesizes an internal_AbortMarkerso the abort
path runs exactly once.- Type mapping:
Neuron.type == "source"↔(KIND_SOURCE, LAYER_SOURCE); everything else ↔ concept. Edge refs use a
pre|post|reltriple codec for lossless round-trips. - Walk invariant:
neighbors()is a depth-bounded BFS, rejects
depth<1, and filters out source-kind nodes (AMKB's
walk-excludes-sources rule).retrieve()validatesk>=1and
rejects filter ASTs outside the closedEq/In/Range/And/Or/Not
algebra withE_INVALID.
Conformance status
| Level | Pass | Skip | Notes |
|---|---|---|---|
| L1 core | 16 | 0 | — |
| L2 lineage | 5 | 1 | KIND_CATEGORY not in v0.7.x |
| L3 transactional | 0 | 7 | No concurrent tx, no revert() — parked until v0.8+ |
| L4a structural | 5 | 2 | derived_from / attested_by have no SynapseType counterpart |
| L4b intent | 5 | 2 | Free-form attr filter; trivially-true ordering case |
Total: 31 passed / 12 skipped / 0 failed.
Compatibility
Adapter-only. spikuit-core gains one helper
(Database.get_neuron_retired_at) and is otherwise unchanged. No
schema migrations. No regressions: spikuit-core 330 / spikuit-agents 39.
See PR #59 for the full design writeup and commit-level breakdown.
Full Changelog: v0.7.0...v0.7.1
What's Changed
New Contributors
Full Changelog: v0.7.0...v0.7.1