From 4f76122efa90542b06dd357c056b43abf7f2bed2 Mon Sep 17 00:00:00 2001 From: Wolfe-Jam Date: Sat, 17 Oct 2026 15:26:53 -0400 Subject: [PATCH] release: 8.3.2 `faf check` warns when a key_files path no longer exists (#173). Windows CI names a stuck test and moves on (#172, #174). Co-Authored-By: Claude Opus 5.5 --- .claude-plugin/plugin.json | 2 +- AGENTS.md | 4 ++-- CHANGELOG.md | 12 +++++++++++- CLAUDE.md | 8 ++++---- README.md | 1 + agent.fafa | 2 +- package-lock.json | 4 ++-- package.json | 2 +- project.faf | 6 +++--- 9 files changed, 26 insertions(+), 15 deletions(-) diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json index b490675c..025fc1c9 100644 --- a/.claude-plugin/plugin.json +++ b/.claude-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "faf", - "version": "8.3.1", + "version": "8.3.2", "description": "Persistent Project Context for AI — IANA-registered .faf format. Run /faf to score your project in Claude Code; install the CLI via `bunx faf` or `npm install -g faf-cli` for the full toolkit.", "author": { "name": "wolfejam", diff --git a/AGENTS.md b/AGENTS.md index e69d17f5..f597a6cc 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,10 +1,10 @@ - + # AGENTS.md — faf-cli -CLI for IANA-registered `.faf` + `.fafm` — context DNA and portable agent memory. TypeScript, Bun-native since v6. package faf-cli v8.3.1 The Business Card Edition — scored by the always-33 engine. — TypeScript · type: cli · v8.1.0 +CLI for IANA-registered `.faf` + `.fafm` — context DNA and portable agent memory. TypeScript, Bun-native since v6. package faf-cli v8.3.2 The Business Card Edition — scored by the always-33 engine. — TypeScript · type: cli · v8.1.0 > Authored by faf — do not edit the managed block; refresh with `faf export --agents`. Hand-written content outside the managed block is preserved. diff --git a/CHANGELOG.md b/CHANGELOG.md index 1757c3f5..5e826a1d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,5 @@ - + # Changelog @@ -8,6 +8,16 @@ All notable changes to faf-cli will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [8.3.2] - 2026-10-17 + +**`faf check` warns when a key_files path no longer exists.** Windows CI names a stuck test and moves on. 2222 tests. + +### Fixed +- **`faf check` looks at the disk for `key_files`.** Each path in `key_files` (or the older `instant_context.key_files`) is checked against the folder the .faf lives in. A path that's gone prints `! key_files: not found`. It's a warning only: the file stays valid, and the exit code and the score don't change. A ` — role` note is ignored, a folder counts as present, and a pattern like `crates/*` is listed as not checked. (#173) + +### CI +- **The Windows nightly names a stuck test and moves on.** A hung child process fails at 2 minutes with the command named. A test file that doesn't finish in 5 minutes is killed, and if the kill never confirms, the next file runs 15 seconds later. The nightly now runs only the tests the PR job leaves out; every PR's Windows job runs the rest. (#167, #172, #174) + ## [8.3.1] - 2026-10-15 **`faf cards` gives MCP cards to a project.faf alone only when its type is mcp.** Found by a clean-folder run of 8.3.0. 2216 tests. diff --git a/CLAUDE.md b/CLAUDE.md index 52c1e47d..6d5a6141 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -1,12 +1,12 @@ - + # CLAUDE.md — faf-cli ## What This Is -CLI for IANA-registered `.faf` + `.fafm` — context DNA and portable agent memory. TypeScript, Bun-native since v6. package faf-cli v8.3.1 The Business Card Edition — scored by the always-33 engine. +CLI for IANA-registered `.faf` + `.fafm` — context DNA and portable agent memory. TypeScript, Bun-native since v6. package faf-cli v8.3.2 The Business Card Edition — scored by the always-33 engine. ## Stack @@ -21,10 +21,10 @@ CLI for IANA-registered `.faf` + `.fafm` — context DNA and portable agent memo - **What:** Persistent AI Context Standard — project DNA for AI. IANA-registered. Anthropic-merged. - **Why:** Eliminates 91% context re-discovery tax — define once, AI remembers forever - **Where:** npm registry, Homebrew, GitHub -- **When:** Production since September 2025; Bun-native since v6; current package 8.3.1 (always-33 engine) +- **When:** Production since September 2025; Bun-native since v6; current package 8.3.2 (always-33 engine) - **How:** bunx faf-cli auto, then project.faf versions with your code — faf show renders it human-visible --- -*STATUS: SYNC ACTIVE — 2026-10-15T15:15:39.061Z* +*STATUS: SYNC ACTIVE — 2026-10-17T19:23:27.615Z* diff --git a/README.md b/README.md index d5f0fa9b..e71c67b1 100644 --- a/README.md +++ b/README.md @@ -198,6 +198,7 @@ npx faf-cli@latest card init # seven questions → agent.fafa → A2A card, **Recent sprint** +- ✪ [8.3.2](https://github.com/Wolfe-Jam/faf-cli/releases/tag/v8.3.2) `faf check` warns when a key_files path no longer exists - ✪ [8.3.1](https://github.com/Wolfe-Jam/faf-cli/releases/tag/v8.3.1) `faf cards` gives MCP cards to a project.faf alone only when its type is mcp - ✪ [8.3.0](https://github.com/Wolfe-Jam/faf-cli/releases/tag/v8.3.0) The Business Card Edition — CLI, library or MCP server, from npm, PyPI or crates.io - ✪ [8.2.2](https://github.com/Wolfe-Jam/faf-cli/releases/tag/v8.2.2) Markdown never writes project.faf — `sync` is one way, `recover` is gone diff --git a/agent.fafa b/agent.fafa index 8225486d..0b9fee36 100644 --- a/agent.fafa +++ b/agent.fafa @@ -3,7 +3,7 @@ agent: name: faf-cli displayName: faf-cli id: urn:air:faf.one:agent:faf-cli - version: 8.3.1 + version: 8.3.2 description: "CLI for the IANA-registered .faf format: it detects a repo's stack into project.faf, scores it, and writes AGENTS.md, CLAUDE.md, GEMINI.md and .cursorrules from it." homepage: https://faf.one capabilities: diff --git a/package-lock.json b/package-lock.json index 5ff98c93..de325af5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "faf-cli", - "version": "8.3.1", + "version": "8.3.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "faf-cli", - "version": "8.3.1", + "version": "8.3.2", "license": "MIT", "dependencies": { "commander": "^14.0.3", diff --git a/package.json b/package.json index 82c109e1..d4e4a472 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "faf-cli", - "version": "8.3.1", + "version": "8.3.2", "description": "Persistent AI context + memory — .faf and .fafm, IANA-registered. Anthropic-merged.", "type": "module", "icon": "https://faf.one/orange-smiley.svg", diff --git a/project.faf b/project.faf index dc24fb37..7171501f 100644 --- a/project.faf +++ b/project.faf @@ -1,8 +1,8 @@ faf_version: "3.0" project: name: faf-cli - version: "8.3.1" - goal: "CLI for IANA-registered `.faf` + `.fafm` — context DNA and portable agent memory. TypeScript, Bun-native since v6. package faf-cli v8.3.1 The Business Card Edition — scored by the always-33 engine." + version: "8.3.2" + goal: "CLI for IANA-registered `.faf` + `.fafm` — context DNA and portable agent memory. TypeScript, Bun-native since v6. package faf-cli v8.3.2 The Business Card Edition — scored by the always-33 engine." main_language: TypeScript type: cli # found: package.json bin # Commands + key_files feed `faf export --agents` (hand values win over detection). @@ -61,7 +61,7 @@ human_context: what: Persistent AI Context Standard — project DNA for AI. IANA-registered. Anthropic-merged. why: Eliminates 91% context re-discovery tax — define once, AI remembers forever where: npm registry, Homebrew, GitHub - when: Production since September 2025; Bun-native since v6; current package 8.3.1 (always-33 engine) + when: Production since September 2025; Bun-native since v6; current package 8.3.2 (always-33 engine) how: bunx faf-cli auto, then project.faf versions with your code — faf show renders it human-visible monorepo: packages_count: slotignored