• bvandeusen released this 2026-04-29 10:38:03 -04:00 | 295 commits to main since this release

    Calendar tool — date/time handling made model-agnostic

    A "schedule for this Friday at 8am" request landed on Thursday. Two distinct fault lines fixed:

    • Split start into start_date + start_time — a YYYY-MM-DD string carries no TZ for the model to mis-tag, so the calendar day cannot drift across the local→UTC boundary. Strict regex rejects TZ suffixes on either field. Legacy combined start/end kept as backcompat.
    • Today's weekday anchored in system prompts; expected_weekday validator on create_event/update_event. Prompts now read "Today is Wednesday, 2026-04-29" instead of forcing the model to derive the weekday. The validator rejects mismatches with a self-correcting error and respects the user's local TZ (Tokyo Friday 23:00 stays Friday).

    Journal — three rough edges from real usage

    • Persona tuning — capture-first; helpdesk-style follow-ups banned; emoji ban; first-person moment phrasing required (no more "The user mentioned…").
    • record_moment data hygiene — server-side keyword-overlap guard drops moment→task links that share no meaningful keyword; placeholder filter drops generic single-word place names (work, home, office).
    • Prep filtering — tasks bucketed into due-today / upcoming / overdue (overdue items surface with staleness duration, not as "due today"); events use a TZ-aware day window + proximity filter, fixing recurring events surfacing 5 months out.

    fable-mcp 0.3.0

    Briefing tools removed, journal tools shipped. Reinstall with pipx install --force after deploy.


    53 backend tests pass; ruff clean. No schema or migration changes — deploy-only.

    Downloads