Releases: raiyanyahya/recall
Releases · raiyanyahya/recall
Recall 0.3.4
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.--checkgates 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.mdno 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
Fixed
- Malformed transcript lines no longer break capture. A single non-object JSONL line (or a turn whose
message/toolinputwasn't an object) raised anAttributeError; 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:saveexited non-zero). Such lines are now skipped gracefully. - Corrupt
.capture.jsonoffset no longer crashes capture — a non-integer entry re-captures the session from the top. git_uncommittedreports the destination path for renames instead of the rawold -> newstring.
Changed
- Config values are type-validated. An untrusted
recall.config.jsonwith a wrong-typed value now falls back to the default instead of risking aTypeError; a badredactvalue fails safe totrue. .capture.jsonis 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
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