faf-taf-git 2.0.4
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/.faf +126 -0
- package/.faf-dna +95 -0
- package/.fafignore +41 -0
- package/.taf +21 -0
- package/CHANGELOG.md +208 -0
- package/CLAUDE.md +30 -0
- package/CONTRIBUTING.md +286 -0
- package/LICENSE +21 -0
- package/README.md +496 -0
- package/action.yml +42 -0
- package/dist/bundle/index.js +36554 -0
- package/dist/cli.d.ts +31 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +380 -0
- package/dist/cli.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +36560 -0
- package/dist/index.js.map +1 -0
- package/dist/licenses.txt +148 -0
- package/dist/main.d.ts +7 -0
- package/dist/main.d.ts.map +1 -0
- package/dist/main.js +147 -0
- package/dist/main.js.map +1 -0
- package/dist/parsers/jest.d.ts +38 -0
- package/dist/parsers/jest.d.ts.map +1 -0
- package/dist/parsers/jest.js +87 -0
- package/dist/parsers/jest.js.map +1 -0
- package/dist/sourcemap-register.js +1 -0
- package/dist/taf-core.d.ts +12 -0
- package/dist/taf-core.d.ts.map +1 -0
- package/dist/taf-core.js +136 -0
- package/dist/taf-core.js.map +1 -0
- package/docs/RELEASE-NOTES.md +200 -0
- package/docs/USER-GUIDE.md +301 -0
- package/jest.config.js +13 -0
- package/package.json +47 -0
- package/project.faf +259 -0
- package/src/cli.ts +393 -0
- package/src/index.ts +131 -0
- package/src/parsers/jest.ts +104 -0
- package/src/taf-core.ts +139 -0
- package/test-mcp.ts +83 -0
- package/test-standalone.ts +87 -0
- package/tests/jest-parser.test.ts +122 -0
- package/tests/wjttc-taf.test.ts +470 -0
- package/tsconfig.json +18 -0
package/.faf
ADDED
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
faf_version: 2.5.0
|
|
2
|
+
ai_scoring_system: 2025-09-20
|
|
3
|
+
ai_score: 65%
|
|
4
|
+
ai_confidence: MODERATE
|
|
5
|
+
ai_value: 30_seconds_replaces_20_minutes_of_questions
|
|
6
|
+
ai_tldr:
|
|
7
|
+
project: faf-taf-git - Platform-agnostic TAF updater for ANY CI/CD
|
|
8
|
+
stack: TypeScript (core + wrappers architecture)
|
|
9
|
+
quality_bar: ZERO_ERRORS_F1_STANDARDS
|
|
10
|
+
current_focus: Ready for npm publication and GitHub release
|
|
11
|
+
your_role: Build features with perfect context
|
|
12
|
+
instant_context:
|
|
13
|
+
what_building: Platform-agnostic CLI + GitHub Action for TAF updates
|
|
14
|
+
tech_stack: TypeScript
|
|
15
|
+
main_language: TypeScript
|
|
16
|
+
deployment: npm + GitHub Actions Marketplace
|
|
17
|
+
key_files:
|
|
18
|
+
- src/cli.ts (core)
|
|
19
|
+
- src/index.ts (GitHub wrapper)
|
|
20
|
+
- src/taf-core.ts (MCP-portable)
|
|
21
|
+
- package.json
|
|
22
|
+
context_quality:
|
|
23
|
+
slots_filled: 11/21 (52%)
|
|
24
|
+
ai_confidence: LOW
|
|
25
|
+
handoff_ready: false
|
|
26
|
+
missing_context:
|
|
27
|
+
- CI/CD pipeline
|
|
28
|
+
- Database
|
|
29
|
+
project:
|
|
30
|
+
name: faf-taf-git
|
|
31
|
+
goal: Platform-agnostic TAF updater - works in ANY CI/CD
|
|
32
|
+
main_language: TypeScript
|
|
33
|
+
type: typescript
|
|
34
|
+
generated: 2025-10-28T01:26:05.656Z
|
|
35
|
+
mission: ๐ Make Your AI Happy! ๐งก Trust-Driven ๐ค
|
|
36
|
+
revolution: 30 seconds replaces 20 minutes of questions
|
|
37
|
+
brand: F1-Inspired Software Engineering - Championship AI Context
|
|
38
|
+
ai_instructions:
|
|
39
|
+
priority_order:
|
|
40
|
+
- 1. Read THIS .faf file first
|
|
41
|
+
- 2. Check CLAUDE.md for session context
|
|
42
|
+
- 3. Review package.json for dependencies
|
|
43
|
+
working_style:
|
|
44
|
+
code_first: true
|
|
45
|
+
explanations: minimal
|
|
46
|
+
quality_bar: zero_errors
|
|
47
|
+
testing: required
|
|
48
|
+
warnings:
|
|
49
|
+
- Never modify dial components without approval
|
|
50
|
+
- All TypeScript must pass strict mode
|
|
51
|
+
- Test coverage required for new features
|
|
52
|
+
stack:
|
|
53
|
+
frontend: None
|
|
54
|
+
css_framework: None
|
|
55
|
+
ui_library: None
|
|
56
|
+
state_management: None
|
|
57
|
+
backend: None
|
|
58
|
+
runtime: None
|
|
59
|
+
database: None
|
|
60
|
+
build: None
|
|
61
|
+
package_manager: npm
|
|
62
|
+
api_type: REST
|
|
63
|
+
hosting: None
|
|
64
|
+
cicd: None
|
|
65
|
+
preferences:
|
|
66
|
+
quality_bar: zero_errors
|
|
67
|
+
commit_style: conventional_emoji
|
|
68
|
+
response_style: concise_code_first
|
|
69
|
+
explanation_level: minimal
|
|
70
|
+
communication: direct
|
|
71
|
+
testing: required
|
|
72
|
+
documentation: as_needed
|
|
73
|
+
state:
|
|
74
|
+
phase: development
|
|
75
|
+
version: 1.0.0
|
|
76
|
+
focus: production_deployment
|
|
77
|
+
status: green_flag
|
|
78
|
+
next_milestone: npm_publication
|
|
79
|
+
blockers: null
|
|
80
|
+
tags:
|
|
81
|
+
auto_generated:
|
|
82
|
+
- faf-taf-action
|
|
83
|
+
- none
|
|
84
|
+
- typescript
|
|
85
|
+
smart_defaults:
|
|
86
|
+
- .faf
|
|
87
|
+
- ai-ready
|
|
88
|
+
- "2025"
|
|
89
|
+
- software
|
|
90
|
+
- open-source
|
|
91
|
+
user_defined: null
|
|
92
|
+
human_context:
|
|
93
|
+
who: Development teams
|
|
94
|
+
what: infinite loops
|
|
95
|
+
why: Improve development efficiency
|
|
96
|
+
where: Cloud platform
|
|
97
|
+
when: timeline [skip ci]`
|
|
98
|
+
how: Test-driven development
|
|
99
|
+
additional_context: null
|
|
100
|
+
context_score: 0
|
|
101
|
+
total_prd_score: 65
|
|
102
|
+
success_rate: 50%
|
|
103
|
+
scores:
|
|
104
|
+
faf_score: 50
|
|
105
|
+
slot_based_percentage: 52
|
|
106
|
+
ai_score: 65
|
|
107
|
+
total_slots: 21
|
|
108
|
+
filled_slots: 11
|
|
109
|
+
scoring_method: Honest percentage - no fake minimums
|
|
110
|
+
trust_embedded: COUNT ONCE architecture - trust MY embedded scores
|
|
111
|
+
ai_scoring_details:
|
|
112
|
+
system_date: 2025-09-20
|
|
113
|
+
slot_based_percentage: 52
|
|
114
|
+
ai_score: 65
|
|
115
|
+
total_slots: 21
|
|
116
|
+
filled_slots: 11
|
|
117
|
+
scoring_method: Honest percentage - no fake minimums
|
|
118
|
+
trust_embedded: COUNT ONCE architecture - trust MY embedded scores
|
|
119
|
+
faf_dna:
|
|
120
|
+
birth_dna: 22
|
|
121
|
+
birth_certificate: FAF-2025-FAFTAFAC-TMZU
|
|
122
|
+
birth_date: 2025-10-28T01:26:05.692Z
|
|
123
|
+
current_score: 50
|
|
124
|
+
projectName: faf-taf-git
|
|
125
|
+
projectGoal: Platform-agnostic TAF (Testing Activity Feed) updater - works in ANY CI/CD
|
|
126
|
+
generated: 2025-10-28T17:48:24.837Z
|
package/.faf-dna
ADDED
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
{
|
|
2
|
+
"birthCertificate": {
|
|
3
|
+
"born": "2025-10-28T01:26:05.692Z",
|
|
4
|
+
"birthDNA": 22,
|
|
5
|
+
"birthDNASource": "CLAUDE.md",
|
|
6
|
+
"projectDNA": "1785d1ac1c20876b",
|
|
7
|
+
"authenticated": false,
|
|
8
|
+
"certificate": "FAF-2025-FAFTAFAC-TMZU"
|
|
9
|
+
},
|
|
10
|
+
"versions": [
|
|
11
|
+
{
|
|
12
|
+
"version": "v1.0.0",
|
|
13
|
+
"timestamp": "2025-10-28T01:26:05.693Z",
|
|
14
|
+
"score": 22,
|
|
15
|
+
"changes": [
|
|
16
|
+
"Initial context from CLAUDE.md"
|
|
17
|
+
],
|
|
18
|
+
"approved": false,
|
|
19
|
+
"growth": 0,
|
|
20
|
+
"growthRate": 0
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"version": "v1.0.1",
|
|
24
|
+
"timestamp": "2025-10-28T01:26:05.721Z",
|
|
25
|
+
"score": 50,
|
|
26
|
+
"changes": [
|
|
27
|
+
"Initial .faf generation from project"
|
|
28
|
+
],
|
|
29
|
+
"approved": false,
|
|
30
|
+
"growth": 28,
|
|
31
|
+
"growthRate": 28
|
|
32
|
+
}
|
|
33
|
+
],
|
|
34
|
+
"current": {
|
|
35
|
+
"version": "v1.0.1",
|
|
36
|
+
"score": 50,
|
|
37
|
+
"approved": false,
|
|
38
|
+
"lastSync": "2025-10-28T01:26:05.721Z"
|
|
39
|
+
},
|
|
40
|
+
"recovery": {
|
|
41
|
+
"claudeMD": "/Users/wolfejam/FAF/faf-taf-action/CLAUDE.md",
|
|
42
|
+
"lastBackup": "2025-10-28T01:26:05.693Z",
|
|
43
|
+
"syncStatus": "active",
|
|
44
|
+
"autoRecover": true
|
|
45
|
+
},
|
|
46
|
+
"growth": {
|
|
47
|
+
"totalGrowth": 28,
|
|
48
|
+
"daysActive": 0,
|
|
49
|
+
"averageDailyGrowth": 28,
|
|
50
|
+
"bestDay": {
|
|
51
|
+
"date": "2025-10-28T01:26:05.721Z",
|
|
52
|
+
"growth": 28
|
|
53
|
+
},
|
|
54
|
+
"bestWeek": {
|
|
55
|
+
"start": "2025-10-28T01:26:05.693Z",
|
|
56
|
+
"growth": 0
|
|
57
|
+
},
|
|
58
|
+
"milestones": [
|
|
59
|
+
{
|
|
60
|
+
"type": "birth",
|
|
61
|
+
"score": 22,
|
|
62
|
+
"date": "2025-10-28T01:26:05.693Z",
|
|
63
|
+
"version": "v1.0.0",
|
|
64
|
+
"label": "Birth",
|
|
65
|
+
"emoji": "๐ฃ"
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"type": "doubled",
|
|
69
|
+
"score": 50,
|
|
70
|
+
"date": "2025-10-28T01:26:05.721Z",
|
|
71
|
+
"version": "v1.0.1",
|
|
72
|
+
"label": "Doubled",
|
|
73
|
+
"emoji": "2๏ธโฃ"
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"type": "peak",
|
|
77
|
+
"score": 50,
|
|
78
|
+
"date": "2025-10-28T01:26:05.721Z",
|
|
79
|
+
"version": "v1.0.1",
|
|
80
|
+
"label": "Peak",
|
|
81
|
+
"emoji": "๐๏ธ"
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
"type": "current",
|
|
85
|
+
"score": 50,
|
|
86
|
+
"date": "2025-10-28T01:26:05.721Z",
|
|
87
|
+
"version": "v1.0.1",
|
|
88
|
+
"label": "Current",
|
|
89
|
+
"emoji": "๐"
|
|
90
|
+
}
|
|
91
|
+
]
|
|
92
|
+
},
|
|
93
|
+
"lastModified": "2025-10-28T01:26:05.721Z",
|
|
94
|
+
"format": "faf-dna-v1"
|
|
95
|
+
}
|
package/.fafignore
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# .fafignore - Exclude files/directories from .faf context
|
|
2
|
+
# Similar to .gitignore syntax
|
|
3
|
+
# Lines starting with # are comments
|
|
4
|
+
|
|
5
|
+
# Dependencies and build outputs
|
|
6
|
+
node_modules/
|
|
7
|
+
dist/
|
|
8
|
+
build/
|
|
9
|
+
coverage/
|
|
10
|
+
|
|
11
|
+
# Python environments
|
|
12
|
+
__pycache__/
|
|
13
|
+
venv/
|
|
14
|
+
.venv/
|
|
15
|
+
|
|
16
|
+
# IDE and system files
|
|
17
|
+
.vscode/
|
|
18
|
+
.idea/
|
|
19
|
+
.DS_Store
|
|
20
|
+
|
|
21
|
+
# Sensitive files
|
|
22
|
+
.env
|
|
23
|
+
.env.*
|
|
24
|
+
*.key
|
|
25
|
+
*.pem
|
|
26
|
+
|
|
27
|
+
# Logs and temporary files
|
|
28
|
+
*.log
|
|
29
|
+
logs/
|
|
30
|
+
tmp/
|
|
31
|
+
temp/
|
|
32
|
+
|
|
33
|
+
# Large media files
|
|
34
|
+
*.jpg
|
|
35
|
+
*.png
|
|
36
|
+
*.mp4
|
|
37
|
+
*.pdf
|
|
38
|
+
|
|
39
|
+
# Custom exclusions (add your own below)
|
|
40
|
+
# example: my-large-data-folder/
|
|
41
|
+
# example: *.generated.ts
|
package/.taf
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
format_version: 1.0.0
|
|
2
|
+
project: faf-taf-git
|
|
3
|
+
created: 2025-10-28T01:26:12.944Z
|
|
4
|
+
last_updated: 2025-10-28T01:40:23.937Z
|
|
5
|
+
faf_associated: true
|
|
6
|
+
faf_location: .faf
|
|
7
|
+
faf_score: 65
|
|
8
|
+
test_history:
|
|
9
|
+
- timestamp: 2025-10-28T01:28:38.600Z
|
|
10
|
+
result: PASSED
|
|
11
|
+
tests:
|
|
12
|
+
total: 7
|
|
13
|
+
passed: 7
|
|
14
|
+
failed: 0
|
|
15
|
+
- timestamp: 2025-10-28T01:40:23.935Z
|
|
16
|
+
result: PASSED
|
|
17
|
+
tests:
|
|
18
|
+
total: 7
|
|
19
|
+
passed: 7
|
|
20
|
+
failed: 0
|
|
21
|
+
trigger: github-actions
|
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## [2.0.4] - 2026-02-17
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
- **Parser now correctly identifies Jest summary line** - fixes "Could not parse test output" error
|
|
12
|
+
- Parser pattern now matches "Tests:" lines containing "total" (Jest summary format)
|
|
13
|
+
- Prevents matching test descriptions like "Brake Tests: Critical dogfooding scenarios"
|
|
14
|
+
- TAF Receipt now works end-to-end in GitHub Actions CI โ
|
|
15
|
+
|
|
16
|
+
### Changed
|
|
17
|
+
- Pattern: `/Tests:\s+(.+?\d+\s+total)/im` (more specific than previous `/Tests:\s*(.+?)/`)
|
|
18
|
+
|
|
19
|
+
## [2.0.3] - 2026-02-17
|
|
20
|
+
|
|
21
|
+
### Added
|
|
22
|
+
- Debug logging to diagnose parser failures
|
|
23
|
+
- Shows sample of summary line if found, or last 20 lines if not found
|
|
24
|
+
- Revealed root cause: parser was matching test descriptions instead of Jest summary
|
|
25
|
+
|
|
26
|
+
## [2.0.2] - 2026-02-17
|
|
27
|
+
|
|
28
|
+
### Fixed
|
|
29
|
+
- **Fixed action.yml bundle path** - now points to `dist/index.js` (correct build output location)
|
|
30
|
+
- Previous versions pointed to `dist/bundle/index.js` which caused "Cannot find module" errors
|
|
31
|
+
|
|
32
|
+
## [2.0.1] - 2026-02-17
|
|
33
|
+
|
|
34
|
+
### Fixed
|
|
35
|
+
- Attempted bundle location fix (incomplete - see v2.0.2)
|
|
36
|
+
|
|
37
|
+
## [2.0.0] - 2026-02-17
|
|
38
|
+
|
|
39
|
+
### Changed
|
|
40
|
+
- **ARCHITECTURAL REDESIGN: Pre-capture pattern** ๐ฏ
|
|
41
|
+
- Separate test execution from receipt generation
|
|
42
|
+
- Step 1: Run tests in normal shell with output redirect (`npm test 2>&1 | tee test-output.txt`)
|
|
43
|
+
- Step 2: Read file and generate receipt
|
|
44
|
+
- **Breaking change:** Replaces `test-command` input with `test-output-file` input
|
|
45
|
+
|
|
46
|
+
### Why
|
|
47
|
+
- GitHub Actions execution context corruption after `@actions/exec.getExecOutput()`
|
|
48
|
+
- ALL logging and filesystem operations failed silently after subprocess execution
|
|
49
|
+
- Tested 19 different methods (console.log, console.error, fs.writeFileSync, etc.) - all failed
|
|
50
|
+
- No canary files found anywhere despite writing to 4 different locations
|
|
51
|
+
- Pre-capture pattern bypasses the problematic execution context entirely
|
|
52
|
+
|
|
53
|
+
### Removed
|
|
54
|
+
- Removed 400+ lines of @actions/exec complexity
|
|
55
|
+
- Bundle size reduced by 11KB
|
|
56
|
+
- No more subprocess execution in receipt generation step
|
|
57
|
+
|
|
58
|
+
### Migration
|
|
59
|
+
```yaml
|
|
60
|
+
# OLD (v1.x):
|
|
61
|
+
- name: Generate TAF Receipt
|
|
62
|
+
uses: Wolfe-Jam/faf-taf-git@v1
|
|
63
|
+
with:
|
|
64
|
+
test-command: npm test
|
|
65
|
+
|
|
66
|
+
# NEW (v2.x):
|
|
67
|
+
- name: Run Tests and Capture Output
|
|
68
|
+
run: npm test 2>&1 | tee test-output.txt
|
|
69
|
+
|
|
70
|
+
- name: Generate TAF Receipt
|
|
71
|
+
uses: Wolfe-Jam/faf-taf-git@v2.0.4
|
|
72
|
+
with:
|
|
73
|
+
test-output-file: test-output.txt
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## [1.2.2] - 2026-02-17
|
|
77
|
+
|
|
78
|
+
### Added
|
|
79
|
+
- Multi-location canary file attempts (4 different paths)
|
|
80
|
+
- Result: NO files found anywhere - confirmed execution context corruption
|
|
81
|
+
|
|
82
|
+
## [1.2.1] - 2026-02-17
|
|
83
|
+
|
|
84
|
+
### Added
|
|
85
|
+
- Nuclear canary: Direct filesystem write after getExecOutput
|
|
86
|
+
- Result: File never created - filesystem operations completely fail
|
|
87
|
+
|
|
88
|
+
## [1.2.0] - 2026-02-17
|
|
89
|
+
|
|
90
|
+
### Added
|
|
91
|
+
- Direct console.error logging attempt
|
|
92
|
+
- Result: Still suppressed by GitHub Actions
|
|
93
|
+
|
|
94
|
+
## [1.1.6] - 2026-02-17
|
|
95
|
+
|
|
96
|
+
### Added
|
|
97
|
+
- Dual logging (core.info + console.log)
|
|
98
|
+
- Result: Both methods failed silently
|
|
99
|
+
|
|
100
|
+
## [1.1.5] - 2026-02-17
|
|
101
|
+
|
|
102
|
+
### Fixed
|
|
103
|
+
- JavaScript 'this' binding with arrow function wrapper
|
|
104
|
+
- Result: Not the issue - logging still failed
|
|
105
|
+
|
|
106
|
+
## [1.1.4] - 2026-02-17
|
|
107
|
+
|
|
108
|
+
### Added
|
|
109
|
+
- CHECKPOINT debug logs at multiple locations
|
|
110
|
+
- Result: Logs before getExecOutput worked, logs after failed
|
|
111
|
+
|
|
112
|
+
## [1.1.3] - 2026-02-17
|
|
113
|
+
|
|
114
|
+
### Added
|
|
115
|
+
- Unconditional debug logs (no conditionals)
|
|
116
|
+
- Result: Still no output in GitHub Actions
|
|
117
|
+
|
|
118
|
+
## [1.1.2] - 2026-02-17
|
|
119
|
+
|
|
120
|
+
### Changed
|
|
121
|
+
- Use `exec.getExecOutput()` instead of `exec.exec()` to capture stdout/stderr
|
|
122
|
+
- Result: Still failing - deeper execution context issue
|
|
123
|
+
|
|
124
|
+
## [1.1.1] - 2026-02-17
|
|
125
|
+
|
|
126
|
+
### Fixed
|
|
127
|
+
- Command parsing edge case (split "npm test" into executable + args)
|
|
128
|
+
- Result: Still failing - execution context corruption
|
|
129
|
+
|
|
130
|
+
## [1.1.0] - 2026-02-17
|
|
131
|
+
|
|
132
|
+
### Changed
|
|
133
|
+
- Switch from `child_process` to `@actions/exec` for GitHub Actions compatibility
|
|
134
|
+
- Result: Still failing - wrong function used
|
|
135
|
+
|
|
136
|
+
## [1.0.9] - 2026-02-17
|
|
137
|
+
|
|
138
|
+
### Added
|
|
139
|
+
- Write captured test output to /tmp/taf-debug-output.txt for inspection
|
|
140
|
+
- Enhanced debug logging to show last 10 lines when Tests: line not found
|
|
141
|
+
|
|
142
|
+
## [1.0.8] - 2026-02-17
|
|
143
|
+
|
|
144
|
+
### Fixed
|
|
145
|
+
- Improved Jest output parser robustness (handles carriage returns, multiple line endings, flexible pattern matching)
|
|
146
|
+
- Parser now tries multiple patterns to find test summary line
|
|
147
|
+
- Better handling of padded output from CI environments
|
|
148
|
+
|
|
149
|
+
## [1.0.7] - 2026-02-17
|
|
150
|
+
|
|
151
|
+
### Added
|
|
152
|
+
- Use core.info for GitHub Actions logging (console.log doesn't show in Actions)
|
|
153
|
+
|
|
154
|
+
## [1.0.6] - 2026-02-17
|
|
155
|
+
|
|
156
|
+
### Added
|
|
157
|
+
- Debug logging to troubleshoot Jest output parsing issues in CI
|
|
158
|
+
|
|
159
|
+
## [1.0.5] - 2026-02-17
|
|
160
|
+
|
|
161
|
+
### Fixed
|
|
162
|
+
- Rebuild action bundle with ANSI stripping fix (v1.0.4 had the code but not the bundle)
|
|
163
|
+
|
|
164
|
+
## [1.0.4] - 2026-02-17
|
|
165
|
+
|
|
166
|
+
### Fixed
|
|
167
|
+
- Strip ANSI color codes from Jest output before parsing (fixes CI parsing failures)
|
|
168
|
+
- Parser now handles Jest output with ANSI codes from GitHub Actions and other CI systems
|
|
169
|
+
- Case-insensitive matching for test status keywords (passed, failed, skipped, total)
|
|
170
|
+
|
|
171
|
+
## [1.0.0] - 2025-10-28
|
|
172
|
+
|
|
173
|
+
### Added
|
|
174
|
+
- Initial release of faf-taf-git
|
|
175
|
+
- Platform-agnostic TAF updater (works in ANY CI/CD)
|
|
176
|
+
- Jest parser with comprehensive format support
|
|
177
|
+
- Standalone CLI mode (`npx faf-taf-git`)
|
|
178
|
+
- GitHub Action wrapper (`uses: Wolfe-Jam/faf-taf-git@v1`)
|
|
179
|
+
- Auto-commit functionality for .taf updates
|
|
180
|
+
- MCP-portable TAF core operations
|
|
181
|
+
|
|
182
|
+
### Architecture
|
|
183
|
+
- Core + wrappers design for universal CI/CD support
|
|
184
|
+
- Thin GitHub Action wrapper (60 lines)
|
|
185
|
+
- Platform-agnostic core (277 lines)
|
|
186
|
+
- Pure functions, no CI-specific dependencies
|
|
187
|
+
|
|
188
|
+
### Testing
|
|
189
|
+
- 7/7 unit tests passing
|
|
190
|
+
- Integration tested in faf-cli and claude-faf-mcp
|
|
191
|
+
- Jest parser handles all output formats
|
|
192
|
+
|
|
193
|
+
### Documentation
|
|
194
|
+
- Comprehensive README with platform examples
|
|
195
|
+
- CONTRIBUTING guide for developers
|
|
196
|
+
- CLAUDE.md project DNA
|
|
197
|
+
- .faf and .taf files (Golden Triangle complete)
|
|
198
|
+
|
|
199
|
+
### Platform Support
|
|
200
|
+
- GitHub Actions
|
|
201
|
+
- GitLab CI
|
|
202
|
+
- Bitbucket Pipelines
|
|
203
|
+
- Jenkins
|
|
204
|
+
- CircleCI
|
|
205
|
+
- Local development
|
|
206
|
+
- Any CI/CD that runs Node.js
|
|
207
|
+
|
|
208
|
+
[1.0.0]: https://github.com/Wolfe-Jam/faf-taf-git/releases/tag/v1.0.0
|
package/CLAUDE.md
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# ๐๏ธ CLAUDE.md - faf-taf-git Persistent Context & Intelligence
|
|
2
|
+
|
|
3
|
+
## PROJECT STATE: GOOD ๐
|
|
4
|
+
**Current Position:** Platform-agnostic TAF (Testing Activity Feed) updater - works in ANY CI/CD
|
|
5
|
+
**Tyre Compound:** ULTRASOFT C5 (Maximum Performance)
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## ๐จ CORE CONTEXT
|
|
10
|
+
|
|
11
|
+
### Project Identity
|
|
12
|
+
- **Name:** faf-taf-git
|
|
13
|
+
- **Stack:** TypeScript
|
|
14
|
+
- **Quality:** F1-INSPIRED (Championship Performance)
|
|
15
|
+
|
|
16
|
+
### Technical Architecture
|
|
17
|
+
- **What Building:** Platform-agnostic CLI + GitHub Action for TAF updates
|
|
18
|
+
- **Main Language:** TypeScript
|
|
19
|
+
|
|
20
|
+
### ๐ Context Quality Status
|
|
21
|
+
- **Overall Assessment:** Good
|
|
22
|
+
- **Last Updated:** 2026-02-17
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
**STATUS: BI-SYNC ACTIVE ๐ - Synchronized with .faf context!**
|
|
27
|
+
|
|
28
|
+
*Last Sync: 2026-02-17T20:14:09.496Z*
|
|
29
|
+
*Sync Engine: F1-Inspired Software Engineering*
|
|
30
|
+
*๐๏ธโก๏ธ_championship_sync*
|