3887cab66e
KnowledgeView: sentinel was OUTSIDE the card-grid div, making IntersectionObserver (root: cardGridEl) never fire since the target must be a descendant of the root. Moved sentinel inside card-grid with grid-column:1/-1 + order:9999 so it spans all columns and sits at the bottom. Fixed backup check to compare against container bounds not viewport. tools.py list_events: apply same UTC normalization as create_event (treat naive datetimes as UTC, handle Z suffix). Update tool description to explicitly request full-day UTC ranges so the LLM doesn't send local time without offsets, which caused the recall query to miss UTC-stored events. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>