faf-taf-git 2.3.1 → 2.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/dependabot.yml +10 -0
- package/.github/workflows/ci.yml +1 -1
- package/.github/workflows/claude-code-review.yml +8 -1
- package/.github/workflows/claude.yml +1 -1
- package/CHANGELOG.md +25 -1
- package/CLAUDE.md +12 -20
- package/README.md +92 -473
- package/RECEIPT-FORMAT.md +1 -1
- package/action.yml +4 -1
- package/agent.fafa +53 -0
- package/dist/cli.d.ts +5 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +14 -1
- package/dist/cli.js.map +1 -1
- package/dist/index.js +123 -5
- package/dist/index.js.map +1 -1
- package/dist/parsers/index.d.ts +1 -0
- package/dist/parsers/index.d.ts.map +1 -1
- package/dist/parsers/index.js +11 -5
- package/dist/parsers/index.js.map +1 -1
- package/dist/parsers/junit.d.ts +22 -0
- package/dist/parsers/junit.d.ts.map +1 -0
- package/dist/parsers/junit.js +104 -0
- package/dist/parsers/junit.js.map +1 -0
- package/package.json +5 -5
- package/project.faf +43 -241
- package/src/cli.ts +15 -1
- package/src/index.ts +1 -0
- package/src/parsers/index.ts +9 -4
- package/src/parsers/junit.ts +110 -0
- package/tests/cli-version.test.ts +31 -0
- package/tests/junit-parser.test.ts +109 -0
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
version: 2
|
|
2
|
+
updates:
|
|
3
|
+
# Keeps workflow `uses:` pins current (e.g. Wolfe-Jam/faf-taf-git) so they
|
|
4
|
+
# don't drift behind new releases. Security alerts don't need this file.
|
|
5
|
+
- package-ecosystem: "github-actions"
|
|
6
|
+
directory: "/"
|
|
7
|
+
schedule:
|
|
8
|
+
interval: "monthly"
|
|
9
|
+
commit-message:
|
|
10
|
+
prefix: "ci"
|
package/.github/workflows/ci.yml
CHANGED
|
@@ -45,7 +45,7 @@ jobs:
|
|
|
45
45
|
# ── R: RECEIPT ────────────────────────────────
|
|
46
46
|
- name: 'R: Generate TAF Receipt'
|
|
47
47
|
if: (github.event_name == 'push' || github.event_name == 'workflow_dispatch') && github.ref == 'refs/heads/main'
|
|
48
|
-
uses: Wolfe-Jam/faf-taf-git@v2.3.
|
|
48
|
+
uses: Wolfe-Jam/faf-taf-git@v2.3.1
|
|
49
49
|
with:
|
|
50
50
|
test-output-file: test-output.txt
|
|
51
51
|
auto-commit: 'true'
|
|
@@ -6,6 +6,13 @@ on:
|
|
|
6
6
|
|
|
7
7
|
jobs:
|
|
8
8
|
claude-review:
|
|
9
|
+
# A Dependabot PR cannot read this repo's Actions secrets — GitHub withholds
|
|
10
|
+
# them from bot-authored runs — so the action fails its own env validation
|
|
11
|
+
# and the PR carries a red that says nothing about the change it proposes.
|
|
12
|
+
# Receipt (faf-cli, 2026-09-23): the last 8 human PRs all passed this
|
|
13
|
+
# workflow and both Dependabot PRs failed on that error alone. A dependency
|
|
14
|
+
# bump is Dependabot's diff to justify, not Claude's.
|
|
15
|
+
if: github.actor != 'dependabot[bot]'
|
|
9
16
|
runs-on: ubuntu-latest
|
|
10
17
|
permissions:
|
|
11
18
|
contents: read
|
|
@@ -23,7 +30,7 @@ jobs:
|
|
|
23
30
|
id: claude-review
|
|
24
31
|
uses: anthropics/claude-code-action@v1
|
|
25
32
|
with:
|
|
26
|
-
|
|
33
|
+
claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
|
|
27
34
|
plugin_marketplaces: 'https://github.com/anthropics/claude-code.git'
|
|
28
35
|
plugins: 'code-review@claude-code-plugins'
|
|
29
36
|
prompt: '/code-review:code-review ${{ github.repository }}/pull/${{ github.event.pull_request.number }}'
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<!-- faf: faf-taf-git | TypeScript | cli | A Test Receipt Printer for git -->
|
|
2
|
-
<!-- faf: doc=changelog | latest=v2.
|
|
2
|
+
<!-- faf: doc=changelog | latest=v2.4.1 | canonical=project.faf | family=TAF -->
|
|
3
3
|
|
|
4
4
|
# Changelog
|
|
5
5
|
|
|
@@ -8,6 +8,30 @@ All notable changes to this project will be documented in this file.
|
|
|
8
8
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
9
9
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
10
10
|
|
|
11
|
+
## [2.4.1] - 2026-10-30
|
|
12
|
+
|
|
13
|
+
`faf-taf-git --version` answers, and the descriptions say tamper-evident, not "cannot be gamed".
|
|
14
|
+
|
|
15
|
+
### Fixed
|
|
16
|
+
- **`--version` / `-V`** print the package version and exit 0. Before, `faf-taf-git --version` fell through to "No test output file specified" and exit 1, so a stranger's first check failed (found by a cold install of the published 2.4.0). `-v` is still `--verbose`. `tests/cli-version.test.ts`.
|
|
17
|
+
|
|
18
|
+
### Changed
|
|
19
|
+
- **Descriptions:** `package.json` (npm) and `action.yml` (GitHub Marketplace) no longer say "cannot be gamed"; they now read "append-only, timestamped, kept in git. Proof over time." The RECEIPT-FORMAT heading is "Tamper-evident, not tamper-proof", matching the README.
|
|
20
|
+
- **project.faf:** rebuilt lean from the repo (267 → 57 lines), Trophy. `.faf-dna` unchanged.
|
|
21
|
+
- **README recipe** pins `@v2.4.1`. The Action itself is unchanged from 2.4.0.
|
|
22
|
+
|
|
23
|
+
## [2.4.0] - 2026-10-29
|
|
24
|
+
|
|
25
|
+
JUnit XML parser: TAF now reads the report format most test runners can write, so Python, Rust, Go, Java and .NET projects get receipts with no conversion script.
|
|
26
|
+
|
|
27
|
+
### Added
|
|
28
|
+
- **JUnit XML parser** (`parseJunitOutput`). Pass a JUnit XML report as `test-output-file`. Handles a `<testsuites>` root with or without totals, a single `<testsuite>`, nested suites (counted once), and suites with no counts (the `<testcase>` elements are counted). Failures and errors count as failed; skipped and disabled count as skipped. Tried first, because a report's captured stdout can hold another runner's summary line. Checked against a real pytest report: 202 passed, 4 skipped, the same as pytest printed.
|
|
29
|
+
- **`skipped` Action output.** The README listed it; the Action now sets it.
|
|
30
|
+
|
|
31
|
+
### Changed
|
|
32
|
+
- **README rewritten in plain English**, with a recommended workflow: failed runs get a `FAILED` receipt (tests run with `continue-on-error`, then the job fails after the receipt), receipts on `main` only, one test run.
|
|
33
|
+
- CLI `--help` lists JUnit XML among the parsers.
|
|
34
|
+
|
|
11
35
|
## [2.3.1] - 2026-09-15
|
|
12
36
|
|
|
13
37
|
Marketplace metadata — the GitHub Action's description is now under the Marketplace's 125-character limit (it was 153), so the listing can show its current name, **TAF — Testing AI Format**. No code change — same `dist/` as 2.3.0.
|
package/CLAUDE.md
CHANGED
|
@@ -1,38 +1,30 @@
|
|
|
1
1
|
<!-- faf:start -->
|
|
2
|
-
<!-- faf: faf-taf-git | TypeScript | cli |
|
|
2
|
+
<!-- faf: faf-taf-git | TypeScript | cli | A Test Receipt Printer for git. Every CI run prints a receipt to .taf: append-only, timestamped, kept in git. Proof over time. -->
|
|
3
3
|
<!-- faf: claim=project.faf | family=FAF -->
|
|
4
4
|
|
|
5
5
|
# CLAUDE.md — faf-taf-git
|
|
6
6
|
|
|
7
7
|
## What This Is
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
A Test Receipt Printer for git. Every CI run prints a receipt to .taf: append-only, timestamped, kept in git. Proof over time.
|
|
10
10
|
|
|
11
11
|
## Stack
|
|
12
12
|
|
|
13
13
|
- **Language:** TypeScript
|
|
14
|
-
- **
|
|
15
|
-
- **Build:** TypeScript
|
|
16
|
-
- **
|
|
17
|
-
- **Api Type:** REST
|
|
18
|
-
- **Hosting:** npm Registry
|
|
19
|
-
- **Cicd:** GitHub Actions
|
|
20
|
-
- **TargetUser:** developers
|
|
21
|
-
- **CoreProblem:** understanding project
|
|
22
|
-
- **MissionPurpose:** project documentation
|
|
23
|
-
- **PackageManager:** npm/yarn/pnpm
|
|
24
|
-
- **MainLanguage:** JavaScript/TypeScript
|
|
14
|
+
- **Hosting:** npm registry + GitHub Actions Marketplace
|
|
15
|
+
- **Build:** TypeScript (tsc)
|
|
16
|
+
- **CI/CD:** GitHub Actions
|
|
25
17
|
|
|
26
18
|
## Context
|
|
27
19
|
|
|
28
|
-
- **Who:**
|
|
29
|
-
- **What:**
|
|
30
|
-
- **Why:**
|
|
31
|
-
- **Where:**
|
|
32
|
-
- **When:**
|
|
33
|
-
- **How:**
|
|
20
|
+
- **Who:** Maintainers and teams who want proof their tests kept passing on main, and the reviewers, auditors and AI agents who check it
|
|
21
|
+
- **What:** A Test Receipt Printer for git. Every CI run prints a receipt to .taf: append-only, timestamped, kept in git. Proof over time.
|
|
22
|
+
- **Why:** Test results vanish when CI logs expire. Receipts stay in git, so anyone can look back and check whether main was green before a release.
|
|
23
|
+
- **Where:** https://github.com/Wolfe-Jam/faf-taf-git
|
|
24
|
+
- **When:** v2.4.1 (2026-10-30), --version fix; v2.4.0 (2026-10-29) JUnit XML parser; live since v1.0.0 (2025-10-27)
|
|
25
|
+
- **How:** Run tests, save the output (or a JUnit XML report), then `uses: Wolfe-Jam/faf-taf-git@v2.4.1` with `target-branch: taf-receipts`. Anywhere else: `npx faf-taf-git --file test-output.txt --commit`. The taf-receipts branch only grows: never rewrite it.
|
|
34
26
|
|
|
35
27
|
---
|
|
36
28
|
|
|
37
|
-
*STATUS:
|
|
29
|
+
*STATUS: SYNC ACTIVE — 2026-10-30T04:26:00.762Z*
|
|
38
30
|
<!-- faf:end -->
|