qa360 1.4.0 → 1.4.2

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.
Files changed (2) hide show
  1. package/README.md +57 -0
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -4,6 +4,8 @@
4
4
 
5
5
  [![Version](https://img.shields.io/npm/v/qa360.svg)](https://www.npmjs.com/package/qa360)
6
6
  [![License](https://img.shields.io/npm/l/qa360.svg)](https://github.com/xyqotech/qa360/blob/main/LICENSE)
7
+ [![Tests](https://img.shields.io/badge/tests-282%20passing-success)](https://github.com/xyqotech/qa360)
8
+ [![Coverage](https://img.shields.io/badge/coverage-28.5%25-yellow)](https://github.com/xyqotech/qa360)
7
9
 
8
10
  ## Installation
9
11
 
@@ -92,9 +94,22 @@ qa360 verify proof.json
92
94
  qa360 history list
93
95
  qa360 history show <run-id>
94
96
 
97
+ # Export proof bundle
98
+ qa360 history export <run-id> --bundle proof-bundle.zip
99
+
100
+ # Clean up old runs (garbage collection)
101
+ qa360 history gc # Default: keep last 10 runs
102
+ qa360 history gc --keep-last 20 # Keep last 20 runs
103
+ qa360 history gc --dry-run # Preview what would be deleted
104
+
105
+ # Pin/unpin runs (pinned runs are never deleted by gc)
106
+ qa360 history pin <run-id>
107
+ qa360 history unpin <run-id>
108
+
95
109
  # With JSON output (CI-friendly)
96
110
  qa360 doctor --json
97
111
  qa360 verify proof.json --json
112
+ qa360 history list --json
98
113
  ```
99
114
 
100
115
  ## Available Templates
@@ -137,6 +152,48 @@ qa360 run examples/api-basic.yml
137
152
  | `secrets` | Manage encrypted secrets |
138
153
  | `pack` | Pack validation and linting |
139
154
 
155
+ ### History Commands
156
+
157
+ The `history` command provides comprehensive management of test run history stored in the Evidence Vault:
158
+
159
+ | Subcommand | Description | Example |
160
+ |------------|-------------|---------|
161
+ | `list` | List recent test runs | `qa360 history list --limit 20` |
162
+ | `show <run-id>` | Show detailed run information | `qa360 history show abc123` |
163
+ | `diff <id1> <id2>` | Compare two test runs | `qa360 history diff abc123 def456` |
164
+ | `trend` | Show trust score trends | `qa360 history trend --window 30` |
165
+ | `export <run-id>` | Export run as ZIP bundle | `qa360 history export abc123 --bundle proof.zip` |
166
+ | `gc` | Garbage collect old runs | `qa360 history gc --keep-last 10` |
167
+ | `pin <run-id>` | Pin run (protect from gc) | `qa360 history pin abc123` |
168
+ | `unpin <run-id>` | Unpin run | `qa360 history unpin abc123` |
169
+
170
+ #### Export Bundle Contents
171
+
172
+ When exporting a run with `qa360 history export <run-id> --bundle proof.zip`, the ZIP contains:
173
+
174
+ - `proof.json` - Cryptographically signed proof document
175
+ - `report.pdf` - Human-readable PDF report (if generated)
176
+ - `run.json` - Complete run details (gates, findings, artifacts)
177
+ - `artifacts/` - All test artifacts (screenshots, logs, etc.)
178
+ - `VERIFICATION.json` - Verification instructions and metadata
179
+
180
+ #### Garbage Collection
181
+
182
+ The `gc` command removes old test runs and orphaned artifacts to free disk space:
183
+
184
+ ```bash
185
+ # Preview what would be deleted (dry-run)
186
+ qa360 history gc --dry-run
187
+
188
+ # Keep last 20 runs, delete older ones
189
+ qa360 history gc --keep-last 20
190
+
191
+ # Default behavior (keeps last 10 unpinned runs)
192
+ qa360 history gc
193
+ ```
194
+
195
+ **Important**: Pinned runs are NEVER deleted by garbage collection. Use `qa360 history pin <run-id>` to protect important runs.
196
+
140
197
  ## Exit Codes
141
198
 
142
199
  | Code | Meaning |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "qa360",
3
- "version": "1.4.0",
3
+ "version": "1.4.2",
4
4
  "description": "QA360 Proof CLI - Quality as Cryptographic Proof",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",