personal memory agent
Environment#
Journal Path#
The journal lives at journal/ in the project root. get_journal() from think.utils returns the path — trust it unconditionally. Never set _SOLSTONE_JOURNAL_OVERRIDE from application code, service files, agent prompts, or subprocess environments. The env var exists exclusively for external use: test harnesses (monkeypatch.setenv) and Makefile sandboxes. If you think you need to override the journal path, you don't — fix the actual problem instead.
Service Installation#
make install-service installs solstone as a systemd user service (Linux) or launchd agent (macOS) with convey on port 5015. Override with make install-service PORT=8000. Managed via sol service <install|start|stop|restart|status|logs>.
API Keys#
Store API keys in .env file, never commit to repository.
Error Handling & Logging#
- Raise specific exceptions with clear messages
- Use logging module, not print statements
- Validate all external inputs (paths, owner data)
- Fail fast with clear errors - avoid silent failures
Documentation#
- Update README files for new functionality
- Code comments explain "why" not "what"
- Function signatures should include type hints; highlight gaps when touching older modules
- All docs in
docs/: Browse for JOURNAL.md, APPS.md, CORTEX.md, CALLOSUM.md, THINK.md, and more - Each package has a README.md symlink pointing to its documentation in
docs/. - App/UI work: docs/APPS.md is required reading before modifying
apps/
Git Practices#
- Git: Small focused commits, descriptive branch names. Run git commands directly (not
git -C) since you're already in the repo.
Getting Help#
- Run
solfor status and CLI command list - Check docs/DOCTOR.md for debugging and diagnostics
- Browse
docs/for all subsystem documentation - Review test files in
tests/for usage examples