-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Labels
area/storeData stores: event log, artifacts, episodic, factsData stores: event log, artifacts, episodic, factscomplexity/averageStandard effort, moderate familiarity neededStandard effort, moderate familiarity neededenhancementNew feature or requestNew feature or requestmilestone/v0.3v0.3 — Production readinessv0.3 — Production readinesspriority/highHigh priority — closes a critical gapHigh priority — closes a critical gap
Description
Context
Split from #41. Implements the SQLite-backed event log, the most complex of the 4 store types.
Depends on #40 (store protocols).
Acceptance Criteria
-
SqliteEventLogclass insrc/contextweaver/store/sqlite_event_log.pyimplementingEventLogprotocol - Supports all
EventLogmethods:append(),all(),query(),children(),parent(),count(),tail() - Uses
sqlite3(stdlib) with WAL mode for concurrent read safety - Supports
:memory:mode for testing -
ContextItemstored viato_dict()/from_dict()in JSON columns - Deterministic query ordering (ORDER BY rowid)
- Passes the same test suite as
InMemoryEventLogvia parameterized fixture - Exported from
src/contextweaver/store/__init__.py - Full type hints, docstrings,
from __future__ import annotations - Module ≤300 lines
File Paths
src/contextweaver/store/sqlite_event_log.py(new)src/contextweaver/store/__init__.py(edit — export)tests/test_store_event_log.py(edit — parameterize fixture for InMemory + SQLite)
Verification
make ci
pytest tests/test_store_event_log.pyParent Issue
Part of #41 (SQLite-backed persistent stores).
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
area/storeData stores: event log, artifacts, episodic, factsData stores: event log, artifacts, episodic, factscomplexity/averageStandard effort, moderate familiarity neededStandard effort, moderate familiarity neededenhancementNew feature or requestNew feature or requestmilestone/v0.3v0.3 — Production readinessv0.3 — Production readinesspriority/highHigh priority — closes a critical gapHigh priority — closes a critical gap