Refactor think/entities.py into modular package with audit fixes
Split 2263-line monolith into 10 focused modules:
- core.py: Types, constants, validation, slug generation, atomic_write utility
- journal.py: Journal-level entity CRUD
- relationships.py: Facet relationships and entity memory
- loading.py: Entity loading functions
- saving.py: Entity saving functions
- matching.py: Entity resolution and fuzzy matching
- activity.py: Activity tracking and detected entities
- observations.py: Observation CRUD
- formatting.py: Indexer formatting
- __init__.py: Re-exports for backward compatibility
Additional cleanup from audit:
- Remove unused imports (Any, Path) across modules
- Remove unused file_mtime_ms variable in formatting.py
- Rename entity_file_path to detected_entities_path (day now required)
- Rename _enrich_relationship_with_journal to public function
- Extract atomic_write utility to eliminate 4x code duplication
- Update formatters.py to remove legacy entities.jsonl scanning
- Update speakers test fixtures to use new structure
- Update JOURNAL.md and APPS.md documentation
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>