Skip to content

Releases: raiyanyahya/recall

Recall 0.3.4

21 Jun 23:06

Choose a tag to compare

Added

  • Benchmark + quality harness (benchmarks/bench.py, stdlib-only): scores the summarizer's salient-sentence selection against lead/tail/random baselines and verifies both backends select identical sentences. --check gates these
    in CI on both the numpy and pure-Python paths.

Fixed

  • Deterministic summaries across backends — ranking rounds away sub-epsilon float noise and breaks ties by position, so a committed context.md no longer depends on whether numpy is installed.
  • Cleaner "Next steps / open threads" — drops echoed prompts/instructions, trivial questions, header lines, and Recall's own injected boilerplate; bare questions must be substantive.

Full changelog: https://github.com/raiyanyahya/recall/blob/master/CHANGELOG.md

Recall 0.3.3

21 Jun 22:20

Choose a tag to compare

Fixed

  • Malformed transcript lines no longer break capture. A single non-object JSONL line (or a turn whose message/tool input wasn't an object) raised an AttributeError; in the capture hook that error was swallowed and the byte
    offset never advanced
    , so history logging silently died for the rest of the session (and /recall:save exited non-zero). Such lines are now skipped gracefully.
  • Corrupt .capture.json offset no longer crashes capture — a non-integer entry re-captures the session from the top.
  • git_uncommitted reports the destination path for renames instead of the raw old -> new string.

Changed

  • Config values are type-validated. An untrusted recall.config.json with a wrong-typed value now falls back to the default instead of risking a TypeError; a bad redact value fails safe to true.
  • .capture.json is bounded to the most-recent 500 sessions so it can't grow without bound (the active session is always preserved).

Full changelog: https://github.com/raiyanyahya/recall/blob/master/CHANGELOG.md

Recall 0.3.2

21 Jun 21:56

Choose a tag to compare

Security

Closed a path-confinement bypass in output_dir: a pre-planted symlink at the default .recall (e.g. shipped in an untrusted clone) could redirect Recall's writes outside the project, because the fallback re-resolved the same symlink
and returned the escaping path. The fallback is now validated too — when no in-project location is safe, Recall refuses to write (output_dir returns None) rather than landing outside the tree. Added regression tests covering the
symlinked-.recall case end to end.

Full changelog: https://github.com/raiyanyahya/recall/blob/master/CHANGELOG.md