Skip to content

v1.15.0

Choose a tag to compare

@github-actions github-actions released this 22 Jul 17:52
e4c1d95

v1.15.0 — Proactive Engagement & Storage Maintenance

This release makes odek visibly more engaged and self-managing: the agent now anticipates follow-ups, tracks your open loops, and can nudge you proactively — while a new storage-maintenance layer keeps long-lived agents (Telegram bot, odek serve) clean forever. It also includes a deep memory-system overhaul and a full hardening of the PIGuard prompt-injection pipeline.

Highlights

  • Proactive engagement (#91). The agent now ends answers with a compact "You might also want to" block, generated from intents it already predicted (zero extra LLM cost). A new open-loop tracker extracts your unanswered questions and stated goals as first-class memory atoms, and an opt-in ProactiveNudges engine can remind you about stale goals, open questions, and blockers — with strict anti-annoyance caps (opt-in, per-day budget, per-kind cooldown) so proactivity never becomes noise. Telegram bots can push nudges after turns; scheduled jobs are now memory-wired, so a cron task can analyze your memory and sessions.
  • Storage maintenance (#92). A new janitor goroutine runs in the Telegram bot, odek serve, and the schedule daemon, keeping every byte either useful or time-bounded: session retention, audit-log retention (previously unbounded), log rotation, Telegram media/plan sweeps, and skill skip-list GC — all driven by a new operator-only maintenance config section. The new odek cleanup [--dry-run] command runs the same sweep on demand with a human-readable report. Session files can no longer outgrow their load cap, and secret redaction on save is now incremental instead of O(history) per write.
  • Memory overhaul (#90). Four phases of fixes and quality work: semantic dedup of stored atoms, relevance-preserving recall ranking, atom consolidation, an index staleness fingerprint, a Stats() observability API with odek memory extended stats, and a PIGuard E2E + fuzz test suite — which immediately caught a real parser panic.
  • PIGuard guard fixes (#85#87). The injection-detector score semantics were corrected (confident BENIGN results no longer rejected), the Docker gateway protocol mismatch that flipped benign facts to INJECTION is fixed, guard-rejected memory atoms go to quarantine for human review instead of vanishing, and socket_path mode now speaks the daemon's real NDJSON protocol. The daemon and gateway builds are vendored and Apple-Silicon safe.
  • Skill auto-learn hardening (#89). Project-directory skills are distrusted like ./odek.json, NeedsReview is enforced at trigger time, the local injection scan always runs on skill bodies, and the PiGuard skills scope is on by default.

Upgrade notes

  • Proactive nudges are off by default (memory.extended.proactive_nudges_enabled); follow-up suggestions are on. Docker configs ship with full engagement enabled (5 nudges/day max).
  • The new maintenance section defaults to enabled (60m interval, 30d sessions / 14d audit / 50MB logs / 30d plans / 90d skips). Run odek cleanup --dry-run to preview what it would remove.
  • Extended memory remains opt-in (memory.extended.enabled).
  • If your config sets interaction_mode to a non-standard value (e.g. "all"), follow-up suggestions now display correctly anyway — but "engaging" is the canonical value.

Assets

Binaries are available for linux/amd64, linux/arm64, darwin/amd64, and darwin/arm64. Verify with checksums.txt.

Full Changelog: v1.14.0...v1.15.0