Implements GET /api/matrix/memory/search?q=<query> endpoint that allows
Matrix visitors to search Timmy's memory. Results are formatted for the
3D world display.
Features:
- Returns JSON array of memory snippets with text (truncated 200 chars),
relevance (0-1), created_at, and context_type
- Max 5 results per query
- Returns 400 if q param missing or empty
- Rate limited to 1 search per 5 seconds per IP
- Reuses existing memory_system.search() internals
- Graceful degradation on search failure (returns empty array)
Files changed:
- src/dashboard/routes/world.py: Added endpoint and helper functions
- tests/dashboard/test_world_api.py: Added comprehensive tests
Refs #678