Repository navigation
v8.0.0
·
96 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
FKF 8 focuses on the loop that makes a knowledge base useful: collect on a schedule, search from anywhere, read the exact source, keep notes current. It removes machinery that made bases hard to run and notes hard to read.
Breaking changes
- Store records as monthly JSON Lines,
records/<source>/<YYYY-MM>.jsonl, with one line per source item upserted by id; snapshot sources keep onesnapshot.jsonl. Immutable per-run capture files, capture hashes, latest/historical snapshots and--historyare removed; Git or backups keep history. This also removes the 20,000-file ceiling that hourly collection reached within two months. - Replace
findandcontextwith onesearch [QUERY] [--since] [--until] [--source] [--type] [--status] [--limit] [--recent]. An empty query lists a time window newest first. Byte budgets are removed;--limitbounds results. - Use readable refs everywhere:
path,path#sectionandsource:id. Base ids,fkf://qualified references andrecord:<hash>URIs are removed. fkf.yamlisversion: 2with anameand noid;fkf.local.yamlis removed. Bases are registered per user in~/.config/fkf/config.yaml, which also grants collection trust per machine.collect SOURCE [--since] [--until] [--dry-run]replaces positional windows and--preview.buildalways rebuilds from scratch;--checkand--if-staleare removed.- Remove containers,
parents,--withinandindexes/structures.json; link folders and labels with ordinarylinks. Remove note supersession, the special## Historyheading, trust-signal computation,reviewedandeffective; note status is one of draft, active, paused, blocked, done, stable, deprecated or archived, andupdateddates a note. - MCP exposes
searchandread. - Convert a v7 base with a one-off script in that base; see the upgrade notes in the documentation.
Added
- Search every registered base from any directory, or only the enclosing base; results name their base.
fkf register PATH [--collect]adds a cloned team base; a base never runs collectors on a machine that has not trusted it.- The search cache refreshes itself incrementally before each query, skips and reports unparsable files, and keeps answering, marked
stale, while another writer holds the base. - Relative times:
now,today,yesterday,12h,7d,2wand localYYYY-MM-DDdates. fkf status [--check]reports each source's last run, success, error and private stderr log, and fails when a trusted scheduled source is stale.fkf updatecovers every trusted base, resumes each window source from its last success with overlap, catches up at most 30 days, and keeps run state outside the base.fkf validatereports every problem at once, including broken links, missing headings, cited records that do not exist and misplaced or duplicate records.
Changed
- Rank exact identities first, then items matching all words, then any word; notes above records; deprecated and archived notes last; one result per note through its best section.
- Collectors run from the base root with the user's environment minus loader-injection variables, and write stderr to a bounded private log.
- Retrieval cases use
version: 2withexpect,forbid,text,emptyand time filters. - Mark the package as beta while the format settles.