Everything below was tested on the release/v3.9.0 line before it reached main.
What changes for you
- Open observations can shape a session as soon as they are logged: when one changes what the agent is about to do, it asks once, you accept or opt out, and the answer is recorded on the entry.
- The session-start protocol is a short checklist the agent ticks in its first reply, so a skipped step is visible.
- The review works through entries with real use first, records every question it asks you on the entry, never decides anything by silence, and can run as a bounded slice of the oldest entries when the backlog is large.
- New helper scripts: a checked path for changing several entries at once (
set-fields.sh), a compare of staged against installed copies (diff-staged.sh), and a digest check for script copies used in sessions bridged to another machine (bin-check.sh). - The session-start scan prints one line per entry, saves its findings to a file, and refuses a wrong workspace root or missing tools instead of reporting an empty log.
- Text from issues, PRs, web pages and other repositories is treated as data, never as instructions.
- The validator no longer uses a
yaml.loadcall that security scanners flagged; behaviour is unchanged. Plugin manifests nested inside a checkout no longer fail the live-set check. observation-log.mdis split into three reference files by episode.- New: the Open Skill Library (OPEN-SKILL-LIBRARY.md), a list of open-source skills maintained with Task Observer. Add yours by pull request.
- Experimental: the task-observer-flush plugin, a turn-end reminder when a turn used tools and logged nothing. Verified in Claude Code terminal sessions; please report other setups in a new issue.
Correction
The 3.9.0 test plan said the validator checks the use_evidence format. It doesn't: that check lives in the review's Step 1 snippet and in the append command.
Thanks to everyone who reported, measured and tested: @AceAchillez, @benculp24, @cisco-trkkn, @coding-ben, @davdittrich, @devbhatnagar95, @dispather, @docdyhr, @frowningviking, @futasov, @GhostWalker4, @iamakbarsha1, @kjbear0916, @kooroshlohrasbi, @kostjakla-del-ok, @lilozzy, @mauriciogarcia-sudo, @nblandin, @Panikkos88, @Petrit-Halabaku, @pierreleclair1998-design, @rafareiter, @robbiewahl-Vibe-Dev, @stabak, @tldah4558-prog, @ulasakgul.
Full list of changes: the commit history from v3.8.0 to v3.9.0, which includes the untagged 3.8.1.