Something went wrong. Try again.
personal memory agent
Something went wrong. Try again.
Testing #
Test Structure #
- Framework: pytest; coverage reporting comes from
make test-cov,make ci, ormake coverage, not baremake test - Unit Tests: live under
tests/(and each app'stests/dir)- Fast, no external API calls, no real browser
- Use
tests/fixtures/journal/mock data - Test individual functions and modules
- Naming: Files
test_*.py, functionstest_* - Fixtures: Shared fixtures in
tests/conftest.py
Fixture Journal #
# The autouse set_test_journal_path fixture in tests/conftest.py does this
# for unit tests. Set it explicitly only when a test needs a different journal.
os.environ["SOLSTONE_JOURNAL"] = "tests/fixtures/journal"
# Now all journal operations work with test data
The tests/fixtures/journal/ directory contains a complete mock journal structure with sample facets, agents, transcripts, and indexed data for testing.
Running Tests #
make testruns all unit tests —tests/+ everysolstone/apps/*/tests/, in one parallel runmake test-cov— the same suite with coverage reportingmake test-app APP=<name>to run a single app's tests;make test-only TEST=pathfor a specific file/patternmake coverageto generate a coverage reportmake cibefore committing (formats, lints, tests)- Always run
journal restart-conveyafter editingsolstone/convey/orsolstone/apps/to reload code
Worktree Development #
Run the full stack (supervisor + callosum + sense + cortex + convey) against test fixture data:
make dev # Start stack (Ctrl+C to stop)
In a second terminal, hit endpoints:
export SOLSTONE_JOURNAL=tests/fixtures/journal
export PATH=$(pwd)/.venv/bin:$PATH
curl -s http://localhost:$(cat tests/fixtures/journal/health/convey.port)/
Notes:
- Agents won't execute without API keys — this is expected in worktrees
- Output artifacts go in
scratch/(git-ignored) - Service logs:
tests/fixtures/journal/health/<service>.log make devwrites runtime artifacts (stats cache, health logs, task logs) into the fixtures journal — these are covered bytests/fixtures/journal/.gitignoreand should never be committed