Skip to content

v0.4.2 — Missing Toolkit APIs

Choose a tag to compare

@chiruu12 chiruu12 released this 27 May 23:33
· 78 commits to main since this release

What's New

Fills in missing CRUD operations that downstream consumers (Nudge) were forced to hack around using private attributes and raw SQL.

TaskToolkit

  • uncomplete_task -- reopen a completed task, setting it back to pending
  • update_task -- modify description, priority, or due date on an existing task
  • Priority filtering -- list_tasks(priority="high") filters by priority level

KnowledgeToolkit

  • delete_note -- delete a note by ID (replaces ._memory.forget() hack)
  • update_note -- edit content or tags in-place, preserving ID and creation timestamp

AlarmToolkit

  • set_alarm_at -- set alarms for absolute times like "3pm", "15:00", "tomorrow 9am"
  • Uses python-dateutil for parsing, interprets naive times as local timezone
  • Time-only inputs auto-roll to tomorrow if already past; explicit past dates are rejected

Memory Layer

  • TFIDFBackend.update() -- modify notes in-place without losing ID or timestamp
  • SemanticMemory.update() -- facade with hasattr guard for backend compatibility

Other

  • Groq test fix -- test_groq_unavailable_without_key no longer leaks OPENAI_API_KEY from .env
  • Docs -- TaskToolkit, KnowledgeToolkit, and AlarmToolkit added to toolkit guide
  • Changelog -- v0.4.0, v0.4.1, v0.4.2 entries added

New Dependency

  • python-dateutil>=2.8 (main), types-python-dateutil>=2.8 (dev)

Stats

  • 828 tests passing (32 new)
  • 14 files changed, ~500 lines added
  • No database schema changes -- all new methods use existing columns

Full Changelog: v0.4.1...v0.4.2