feat: reminders due-date support + context filtering
reminders_add now accepts optional due: YYYY-MM-DD parameter. Due date stored as first line of section body in REMINDERS.md. context_loader.py calls load_due_reminders() instead of loading REMINDERS.md wholesale — future-dated reminders are suppressed in the system prompt until their date arrives. Undated reminders always surface (backward compatible). reminders_list shows due status per entry: [OVERDUE by N days], [due TODAY], or [due: YYYY-MM-DD] for future items. All reminders visible via the tool regardless of date; only context surfacing is filtered. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -2,6 +2,7 @@ from datetime import datetime
|
||||
from pathlib import Path
|
||||
|
||||
from persona import persona_path
|
||||
from tools.reminders import load_due_reminders
|
||||
|
||||
_STATIC_DIR = Path(__file__).parent / "static"
|
||||
|
||||
@@ -80,12 +81,11 @@ def load_context(
|
||||
parts.append(f"--- HELP.md ---\n{help_path.read_text()}")
|
||||
|
||||
# ── 4. Pending reminders (tier 2+) ────────────────────────────
|
||||
# Written by cron jobs; cleared by Inara after acting on them.
|
||||
reminders_path = inara_dir / "REMINDERS.md"
|
||||
if reminders_path.exists() and reminders_path.stat().st_size > 10:
|
||||
content = reminders_path.read_text().strip()
|
||||
if content:
|
||||
parts.append(f"--- REMINDERS.md ---\n{content}")
|
||||
# Only due and undated reminders are surfaced — future-dated ones
|
||||
# are stored in REMINDERS.md but suppressed until their date arrives.
|
||||
content = load_due_reminders()
|
||||
if content:
|
||||
parts.append(f"--- REMINDERS.md ---\n{content}")
|
||||
|
||||
# ── 5. Tiered memory — long → mid → short ─────────────────────
|
||||
# Short is last so it sits closest to the conversation turn.
|
||||
|
||||
Reference in New Issue
Block a user