Repository navigation
v18.1.0
·
58 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
A review release of fixes. The brain format (version: 7), bf.yaml and the reply schemas are unchanged; listed fields are bounded, and the search cache rebuilds once. Upgrade with uv tool upgrade brain-framework (or update a brain's pin), then run bf skills DIR.
Fixed
bf skills --forcekeeps a file you edited that the new version no longer ships, as it keeps every other file BF does not ship, instead of deleting it.- A record commit whose completion marker landed before a final directory sync failed reports success instead of "nothing was written".
- A registered brain whose folder exists but cannot be reached fails with
cannot reach the brain registered as NAMEinstead of advice to register it again, whichbf registerthen refused. bf run --hook "", as an unset variable gives it, is invalid input instead of running the first argument as a routine;bf status --check --watchnames--watchin its invalid-input line.bf eval --baseline=~/eval.jsonexpands~, like every other path option. Without a home directory, commands fail with onebf:line namingHOMEinstead of a traceback.bf scheduleinstalls systemd units belowXDG_CONFIG_HOMEwhen it is set, where the user manager reads them.bf watchruns updates for apip install --userinstallation, andbf watch --jsonreports unavailable desktop alerts with abf:line on stderr instead of a JSON object.- A claim footnote's label can no longer change a note's structure:
[^```]or[^<pre>]used to open a block that hid the sections and links after it. Links in a footnote's continuation paragraph, indented by four spaces or a tab, now support the section that cites it, and labels match regardless of case, as on GitHub. - A copied document whose headings repeat an explicit anchor, or whose title's slug another heading anchors, stays searchable: the later heading takes a generated slug. OKF notes still fail
bf validate. - An OKF
sourcesentry whose?rel=names an undeclared relation still cites its target in reads;bf validatestill reports the relation. - Validation messages count only the distinct problems they do not name.
- The example sensor, routine and hook guides make a downloaded script executable with
chmod +xbefore configuring it as a command, since a download drops the executable bit andbf validatethen rejects the program;github-history.mdcopies from the release tag matchingbf --versionand says when to raisetimeoutfor a large backfill. - Programs no longer inherit
ZDOTDIR,PHPRCorPHP_INI_SCAN_DIR, which make zsh or PHP run code before the program starts. - The guarded-write helper follows a linked brain folder and links above it, such as
/homeon Fedora Atomic or/tmpon macOS, as bf does, instead of refusing every absolute path through them; links inside the brain are still refused. bf-useasks before updating the skills for a newerbf, and names the folder to pass tobf skills.- Quitting
bf watchwhile an update is still stopping printsbf: stopping the active update; this can take up to 60 secondsinstead of leaving a silent terminal. - An exact read across several brains returns the brain that holds the ref with a
problemsentry for another brain that fails, such as on a malformed record of a shared source or a busy writer, instead of failing; when no brain holds it, the failure stands. - A page's address as
--scope, such asbf://brain/projects,bf://brain/7dorbf://brain/memories/gmail, is invalid input instead of silently matching nothing; use its brain-relative form. - Listed
fieldsstop at 2 KiB of JSON per item, in field-name order, so a shared brain declaring hundreds of fields cannot push home, a listing or a note's backlinks past the reply limit; exact reads keep every field. - The retrieval reference states that a relation page's
totalincludes the claims of its narrower relations.