Repository navigation
v18.4.0
·
38 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
A feature release. The brain format (version: 7) and the search cache format are unchanged; bf.yaml gains an optional prompts: section, which an older bf rejects, and the reply schemas only gain optional fields. Upgrade with uv tool upgrade brain-framework (or update a brain's pin), run bf skills DIR to update bf-maintain, which now covers prompts, and the retrieval guide, and copy the updated example hooks and weekly-review routine into your brain, preserving local adaptations.
Added
- Prompts run your agent harness over the brain, every 30 minutes by default or now with
bf run PROMPT --stdin. Declare one underprompts:with a Markdownpromptfile inprompts/and a direct-argvcommand: BF expands{{brain}},{{home}},{{start}},{{end}}and{{input}}in the file once, then passes it as the command's{{prompt}}argument or, without one, on standard input. BF never runs a model itself. Each successful run becomes a record inmemories/NAME/with the reply as its text (textselects it in JSON output, such as/response), its input, window, duration and the harness's other output, such as token usage, so later runs,bf searchand your agents read it back; those records rank like a low-priority source, so a summary never outranks its evidence. See Run prompts. bf updateruns due prompts after sensors and routines, outside the update lock;bf watchruns them in a second process beside collection, so a long agent run never delays a sensor, and marks them@with their run counts. A direct run never waits for a scheduled one and leaves the schedule's history unchanged, failures included; a scheduled run checks again under its lock that no other process just ran it.bf update --kind sensor|routine|prompt, repeatable, keeps only those kinds of program;update,watchandscheduleaccept--prompt NAMEselectors.- The example session hook names failing or overdue prompts in its attention line, beside sensors and routines.
bf statusreportspromptswith their state, freshness, runs, last run, latest record and failures;attentionand the home page list failing or overdue prompts, andbf validatechecks that each enabled prompt's file exists.
Changed
bf runtakes a routine or a prompt: its argument is namedPROGRAM.- A routine's
{{prompt}}placeholder is invalid, as before; only a prompt's command takes it. - CI and security workflows pin
jdx/mise-actionv5.1.1. The explicit mise2026.10.0pin keeps tool-manager upgrades deliberate; the action's 24-hour release-age default applies only without that pin.
Fixed
- Cancellation during sensor or routine startup now kills the newly created process group. Markdown complexity tests compare CPU-time growth, and cancellation tests wait for observed process termination, avoiding fixed-speed assumptions on slow CI runners.
- Period pages and search scopes place records without
timebyattributes.observed, including source counts and ordering across brains. Replies keep observation separate from event time; records with neither timestamp remain outside periods, andundatedstill selects every record without event time. - The
weekly-reviewexample lists projects as plain bullets, with overdue reviews first and earliest deadlines first, and separates the open-task preview from its surrounding paragraphs. Generated reviews no longer create duplicate checkbox tasks; complete work in the owning notes. - The session and prompt hooks keep nonempty stale cache results while collection runs, showing “Index refreshing”. They tolerate only the exact stale-cache identity problem; empty generations, malformed metadata and other problems stay silent.