Bug Fixes
- timeline tool: Coerce stringified numeric anchors (e.g.
"123") into the observation-ID dispatch path so they no longer fall through to ISO-timestamp parsing and return wrong-epoch windows. The HTTP layer always sends anchor as a string, so this fixes anchor lookups via MCP and HTTP across the board. (#2176)
Tests
- Added a 7-case regression suite covering JS-number anchors, stringified-number anchors (incl. whitespace-padded), session-ID anchors (
S<n>), ISO-timestamp anchors, garbage anchors, and explicit numeric-not-found behavior. The suite runs against a real in-memory SQLiteSessionStoreto exercise the full dispatch path.
Refactors
- Extracted
parseNumericAnchorhelper inSearchManagerto centralize anchor coercion across timeline handlers.