Skip to content

Releases: fmind/fkf

v6.0.2

Choose a tag to compare

@github-actions github-actions released this 09 Sep 06:31
Immutable release. Only release title and notes can be modified.

Fixed

  • Share a fifteen-second deadline across passive-hook children while allowing individual context calls up to ten seconds. Expired budgets prevent new children, and timed-out process groups are terminated.
  • Create every missing parent directory with owner-only permissions during atomic writes, without changing existing directory modes.
  • Isolate the security-rule checkout from Git environment variables inherited by linked-worktree hooks, while retaining rejection of local rule edits.

v6.0.1

Choose a tag to compare

@github-actions github-actions released this 09 Sep 05:43
Immutable release. Only release title and notes can be modified.

Fixed

  • Keep passive hooks compatible with system Python 3.9 and newer, independently of the FKF package’s Python 3.14 environment. The formatter now preserves that syntax boundary and a regression test checks it.
  • Consolidate the hook’s validated direct-argv dispatch through the fixed system env executable.

v6.0.0

Choose a tag to compare

@github-actions github-actions released this 09 Sep 05:20
Immutable release. Only release title and notes can be modified.

Breaking changes

  • Consolidate source execution and improve offline retrieval. Base-owned helpers now live in sources/, retrieval evaluations in checks/queries.yaml, and optional app scripts in clients/. Update declarations and reinstall managed harness hooks, review the resulting execution plan, and renew trust before collecting. Stored evidence remains readable without re-collection.

Changed

  • Select a persistent launcher explicitly with harness print/install --executable when package-manager PATH entries disagree.
  • Reuse status narrative pages for briefing commitments instead of reading and parsing task/project files again.
  • Rename base collection helpers from bin/ to sources/ and retrieval acceptance to checks/queries.yaml.
  • Declare single-script uv app clients under clients:; hash and disclose their separate execution tree.
  • Make CLI context receipt persistence opt-in with --save-receipt, keeping ordinary context reads lock-free.
  • Surface explicit project next actions, review dates, deadlines, and blockers in the offline brief.
  • Improve multi-term lexical ranking and excerpts, reuse Unicode-preserving text analysis, and reduce exact-budget packing work.
  • Let retrieval evaluations require answer-bearing excerpts and verified offline reads, beyond URI recall.
  • Describe harvested lessons as trace citations rather than a knowledge-quality measure.

Fixed

  • Report exact missing completed dates per enabled event source using the configured collection window, including in briefing attention.

  • Reuse task pages for fallback selection and the global learned backlog, and skip a second Markdown parse when rendered headings contain no Learned section.

  • Keep conjunctions out of question scoring and select commitment and body excerpts independently so metadata cannot displace the answer.

  • Give body-cache manifests an independent 8 MiB bound, retaining the 4,096-entry and 512 MiB content limits.

  • Select prompt transcripts through bounded archive metadata and resolve bodies from stored lineage, generation, and turn provenance without changing evidence IDs or deleting history.

  • Search project commitments and preserve active handoffs in compact identity context; unify indexed and fallback lesson backlog semantics.

  • Compile canonical fragment validation once per process and report hook timeouts without exposing child output.

  • Compare GitHub commit bounds as instants, project safe fallback titles for untitled browser visits, and discard RSS stylesheet metadata without fetching it.

  • Open Chromium-family browser roots and profile directories through retained no-follow descriptors so linked path components cannot redirect local history or bookmark collection.

v5.0.1

Choose a tag to compare

@github-actions github-actions released this 07 Sep 08:08
Immutable release. Only release title and notes can be modified.
3d766ef

Fixed

  • Prevent long-lived MCP stdio servers on Python 3.14 from accumulating timeout callbacks during cancellation polling, eliminating age-correlated CPU and memory growth.
  • Let local release verification ignore only uv's exact one-byte dist/.gitignore marker while continuing to reject every other unexpected asset.
  • Parse RSS, Atom, and OPML with a DTD-rejecting XML parser so valid CDATA and predefined or numeric references retain their text without enabling entity expansion.
  • Preserve provider-formatted Gmail recipient names while continuing to derive normalized participant identities from mailbox addresses.
  • Keep agent session hooks non-blocking when invoked with terminal standard input.

v5.0.0

Choose a tag to compare

@github-actions github-actions released this 07 Sep 05:43
Immutable release. Only release title and notes can be modified.
f198b70

Highlights

  • Reimplement FKF as one typed Python 3.14 package while preserving the fkf command, fkf: 1 configuration and evidence envelopes, trust digests, rebuildable graph and lexical cache contracts, ranking version 7, offline reads, and bounded read-only MCP surface.
  • Publish a wheel and source distribution for uv tool install fkf and one-shot uvx fkf use, with locked uv development, strict Ruff and ty checks, hermetic branch-coverage tests, PyPI trusted publishing, and GitHub build-provenance attestations.
  • Consolidate provider execution behind one direct-argv boundary, package presets and skills as runtime resources, and retain deterministic differential coverage against the final Go implementation.
  • Load the MCP SDK only for MCP commands so ordinary CLI startup does not pay for its server and transport stack.
  • Replace the Hugo module with a locked, self-contained Zensical documentation build while preserving the published Pages routes.

Breaking changes

  • Replace native release archives, install.sh, and the self-replacing fkf upgrade command with standard Python packaging. Use uv tool upgrade fkf for a persistent uv installation.
  • Narrow the existing ?jq= and --where selector spelling to the safe field-path grammar plus optional terminal | length; arbitrary jq programs are rejected instead of running an embedded evaluator.

Upgrade notes

  • Existing bases and collected evidence need no migration or re-collection. After installing v5, refresh official helpers, review and renew execution trust, then rebuild derived caches: fkf config helpers --refresh, fkf trust --all, and fkf build all.
  • Use a persistent uv tool install fkf launcher for harness and schedule integrations. Reserve uvx for one-shot commands.

v4.0.1

Choose a tag to compare

@github-actions github-actions released this 04 Sep 08:28
Immutable release. Only release title and notes can be modified.

Fixed

  • Make Ruff linting independent of contributor-level configuration and use the correct exception types in the Gmail body helper, restoring the clean four-platform release gate.
  • Keep historical agent-session collection available as the append-only store grows by bounding in-window identities before selecting their newest complete generation, while rejecting a partial manifest scan.

v3.0.2

Choose a tag to compare

@github-actions github-actions released this 03 Sep 13:17
Immutable release. Only release title and notes can be modified.

Fixed

  • Keep the cross-process writer-lock test helper alive without triggering Go's deadlock detector, removing a timing-dependent macOS CI failure without changing runtime behavior.

v3.0.1

Choose a tag to compare

@github-actions github-actions released this 03 Sep 12:53
Immutable release. Only release title and notes can be modified.

Fixed

  • Make schedule CLI tests select the native fake scheduler and managed-file layout, restoring the hermetic CI contract on macOS without changing runtime behavior.

v3.0.0

Choose a tag to compare

@github-actions github-actions released this 03 Sep 12:30
Immutable release. Only release title and notes can be modified.

Highlights

  • Add deterministic brief, day, timeline, who, and eval workflows, temporal query grammar, declared identity aliases, and compact text and structured retrieval receipts.
  • Add digest-bound lexical and constant-time graph caches while keeping durable evidence authoritative, offline reads reproducible, and indexed and fallback retrieval semantically identical.
  • Add login-aware opportunistic sync, hourly systemd and launchd scheduling, and idempotent harness integration for Claude Code, Codex, Gemini CLI, Copilot CLI, Antigravity, OpenCode, Grok, Cursor, Kiro, and Cline.
  • Add bounded, ignored, manifest-verified body caching with per-source none, cache, and sync policies; first-class meeting-note and local agent-memory sources can prefetch searchable text without copying it into durable evidence.
  • Expand and harden the reviewed personal presets, session traces, staged learning workflow, MCP surface, provider pagination, process isolation, trust revalidation, and graph generation consistency.

Breaking changes

  • Every collected record must now project one meaningful, control-free title; update custom source schemas and field mappings before the next sync.
  • Structured find and context results omit raw provider records and internal day selections by default; pass --raw only when those diagnostic fields are required.

Upgrade notes

  • Existing evidence remains valid and requires no re-collection. Run fkf build all --base <base> to create the new derived graph and lexical caches.
  • Refresh FKF-owned helpers and harness integrations, review the resulting execution plan, and renew trust before running changed collectors: fkf config helpers --refresh, fkf harness install --all, then fkf trust --all.
  • Body caching stays opt-in per source. The default bodies: none fetches only on an explicit read --body; cache retains an explicitly fetched body and sync prefetches it after evidence is written.

v2.1.0

Choose a tag to compare

@github-actions github-actions released this 30 Aug 20:01
Immutable release. Only release title and notes can be modified.

Highlights

  • Add a dedicated base tests/ execution tree for source verification hooks, recursively covered by trust and prepended to PATH only for fkf test; collection and body commands cannot see test fixtures or shadows.
  • Report source-hook readiness separately from ordinary requires:, disclose bin/ and tests/ as distinct trust items, and carry the new layout through init, permissions, schemas, documentation, and bundled skills.
  • Preserve v2 compatibility: bases without tests/ keep their existing trust digest, hooks can still resolve from bin/, and an empty optional selection remains a successful 0/0 report. Completion gates should name mandatory sources.

Fixed

  • Restrict repository metadata projected by bundled session, Git, and agent-hook helpers to GitHub remotes, while continuing to strip credentials and reject malformed paths.
  • Open Atuin history read-only in batch mode, omit deleted rows and command text, and declare the Git dependency used by the agent-sessions preset.

Upgrade notes

  • A pre-existing base tests/ directory is now reserved, recursively trust-covered execution material and must contain no symlinks. Move source hooks and their support files there, keep generic repository tests elsewhere, then review and renew trust.