ccqa 1.52.0 → 1.53.0

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.
@@ -3,14 +3,16 @@
3
3
  * Shared constants + helpers for step-boundary evidence: the env var that
4
4
  * enables capture, the file-name sanitizer, and the reserved failure ids.
5
5
  *
6
- * Three producers write the `<id>.png` + `<id>.json` pairs — `abStepEvidence()`
7
- * / `captureFailureEvidence()` in `test-helpers.ts` (agent-browser replays) and
8
- * `ccqaStepBefore`/`ccqaStepAfter` in `step-evidence.ts` (external targets) —
9
- * and one consumer reads them back (`loadEvidenceForSpec` in
10
- * `report/evidence.ts`). All four agree only on the contract here, so it is
11
- * kept under `runtime/` (free of CLI-side imports) so the generated-test
12
- * modules — imported via `ccqa/test-helpers` and `ccqa/step-evidence` — can
13
- * share it without dragging the CLI in.
6
+ * Several producers write the `<id>.png` + `<id>.json` pairs —
7
+ * `abStepEvidence()` / `captureFailureEvidence()` in `test-helpers.ts`
8
+ * (agent-browser replays), `targets/playwright/trace-capture.ts` (frames read
9
+ * out of a run's Playwright trace), and `ccqaStepBefore`/`ccqaStepAfter` in
10
+ * `step-evidence.ts` for tests generated before the capture calls left the
11
+ * committed file — and one consumer reads them back (`loadEvidenceForSpec` in
12
+ * `report/evidence.ts`). They agree only on the contract here, so it is kept
13
+ * under `runtime/` (free of CLI-side imports) so the generated-test modules —
14
+ * imported via `ccqa/test-helpers` and `ccqa/step-evidence` — can share it
15
+ * without dragging the CLI in.
14
16
  */
15
17
  /**
16
18
  * Env var naming the directory a spec's step evidence is written to. `ccqa
@@ -3,14 +3,16 @@
3
3
  * Shared constants + helpers for step-boundary evidence: the env var that
4
4
  * enables capture, the file-name sanitizer, and the reserved failure ids.
5
5
  *
6
- * Three producers write the `<id>.png` + `<id>.json` pairs — `abStepEvidence()`
7
- * / `captureFailureEvidence()` in `test-helpers.ts` (agent-browser replays) and
8
- * `ccqaStepBefore`/`ccqaStepAfter` in `step-evidence.ts` (external targets) —
9
- * and one consumer reads them back (`loadEvidenceForSpec` in
10
- * `report/evidence.ts`). All four agree only on the contract here, so it is
11
- * kept under `runtime/` (free of CLI-side imports) so the generated-test
12
- * modules — imported via `ccqa/test-helpers` and `ccqa/step-evidence` — can
13
- * share it without dragging the CLI in.
6
+ * Several producers write the `<id>.png` + `<id>.json` pairs —
7
+ * `abStepEvidence()` / `captureFailureEvidence()` in `test-helpers.ts`
8
+ * (agent-browser replays), `targets/playwright/trace-capture.ts` (frames read
9
+ * out of a run's Playwright trace), and `ccqaStepBefore`/`ccqaStepAfter` in
10
+ * `step-evidence.ts` for tests generated before the capture calls left the
11
+ * committed file — and one consumer reads them back (`loadEvidenceForSpec` in
12
+ * `report/evidence.ts`). They agree only on the contract here, so it is kept
13
+ * under `runtime/` (free of CLI-side imports) so the generated-test modules —
14
+ * imported via `ccqa/test-helpers` and `ccqa/step-evidence` — can share it
15
+ * without dragging the CLI in.
14
16
  */
15
17
  /**
16
18
  * Env var naming the directory a spec's step evidence is written to. `ccqa
@@ -1283,7 +1283,7 @@ interface HubClient {
1283
1283
  getAttestations(project: string, q: {
1284
1284
  profile: string;
1285
1285
  }): Promise<AttestationsResponse>;
1286
- /** Record that a person checked `spec` by hand. The hub stamps the time and deploy head. */
1286
+ /** Record a person's judgement that `spec`'s environment failure is resolved. The hub stamps the time and deploy head. */
1287
1287
  putAttestation(project: string, q: {
1288
1288
  profile: string;
1289
1289
  }, body: {
@@ -1283,7 +1283,7 @@ interface HubClient {
1283
1283
  getAttestations(project: string, q: {
1284
1284
  profile: string;
1285
1285
  }): Promise<AttestationsResponse>;
1286
- /** Record that a person checked `spec` by hand. The hub stamps the time and deploy head. */
1286
+ /** Record a person's judgement that `spec`'s environment failure is resolved. The hub stamps the time and deploy head. */
1287
1287
  putAttestation(project: string, q: {
1288
1288
  profile: string;
1289
1289
  }, body: {
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ccqa",
3
- "version": "1.52.0",
3
+ "version": "1.53.0",
4
4
  "type": "module",
5
5
  "description": "Browser test recorder powered by Claude Code and agent-browser",
6
6
  "repository": {
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_evidence_constants = require("../evidence-constants-BufWx8Bt.cjs");
2
+ const require_evidence_constants = require("../evidence-constants-BkPzGtzI.cjs");
3
3
  let node_fs = require("node:fs");
4
4
  let node_path = require("node:path");
5
5
  //#region src/runtime/step-evidence.ts
@@ -1,11 +1,16 @@
1
1
  //#region src/runtime/step-evidence.d.ts
2
2
  /**
3
- * Step-boundary screenshot capture for tests ccqa generates for external
4
- * targets (Playwright today). Generated tests import this through the
5
- * `ccqa/step-evidence` subpath and call it at each spec-step boundary; the
6
- * `<id>.png` + `<id>.json` pairs it writes are exactly what `ccqa run`'s
7
- * report loader consumes, so an external target's rows carry the same
8
- * per-step evidence the built-in agent-browser path produces.
3
+ * Step-boundary screenshot capture for a generated Playwright test, kept for
4
+ * the tests that already import it.
5
+ *
6
+ * ccqa no longer emits these calls: a committed spec is plain
7
+ * `@playwright/test`, its steps are `test.step` blocks, and the screenshots
8
+ * are read back out of the run's trace afterwards
9
+ * (`targets/playwright/trace-capture.ts`). The `ccqa/step-evidence` subpath
10
+ * still ships, and `ccqa run` still points `CCQA_EVIDENCE_DIR` at the report,
11
+ * so a spec generated before that change keeps producing its own — higher
12
+ * fidelity — pairs until it is regenerated. Nothing writes new calls to it,
13
+ * and the export goes in a later release.
9
14
  *
10
15
  * Two constraints shape the whole module:
11
16
  *
@@ -1,11 +1,16 @@
1
1
  //#region src/runtime/step-evidence.d.ts
2
2
  /**
3
- * Step-boundary screenshot capture for tests ccqa generates for external
4
- * targets (Playwright today). Generated tests import this through the
5
- * `ccqa/step-evidence` subpath and call it at each spec-step boundary; the
6
- * `<id>.png` + `<id>.json` pairs it writes are exactly what `ccqa run`'s
7
- * report loader consumes, so an external target's rows carry the same
8
- * per-step evidence the built-in agent-browser path produces.
3
+ * Step-boundary screenshot capture for a generated Playwright test, kept for
4
+ * the tests that already import it.
5
+ *
6
+ * ccqa no longer emits these calls: a committed spec is plain
7
+ * `@playwright/test`, its steps are `test.step` blocks, and the screenshots
8
+ * are read back out of the run's trace afterwards
9
+ * (`targets/playwright/trace-capture.ts`). The `ccqa/step-evidence` subpath
10
+ * still ships, and `ccqa run` still points `CCQA_EVIDENCE_DIR` at the report,
11
+ * so a spec generated before that change keeps producing its own — higher
12
+ * fidelity — pairs until it is regenerated. Nothing writes new calls to it,
13
+ * and the export goes in a later release.
9
14
  *
10
15
  * Two constraints shape the whole module:
11
16
  *
@@ -1,4 +1,4 @@
1
- import { i as sanitizeStepId, t as EVIDENCE_DIR_ENV } from "../evidence-constants-C425F7ZG.mjs";
1
+ import { i as sanitizeStepId, t as EVIDENCE_DIR_ENV } from "../evidence-constants-BLXD0LRY.mjs";
2
2
  import { existsSync, mkdirSync, writeFileSync } from "node:fs";
3
3
  import { join } from "node:path";
4
4
  //#region src/runtime/step-evidence.ts
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_evidence_constants = require("../evidence-constants-BufWx8Bt.cjs");
2
+ const require_evidence_constants = require("../evidence-constants-BkPzGtzI.cjs");
3
3
  let node_fs = require("node:fs");
4
4
  let node_path = require("node:path");
5
5
  let node_child_process = require("node:child_process");
@@ -1,4 +1,4 @@
1
- import { i as sanitizeStepId, n as FAILURE_SOURCE, r as FAILURE_STEP_ID, t as EVIDENCE_DIR_ENV } from "../evidence-constants-C425F7ZG.mjs";
1
+ import { i as sanitizeStepId, n as FAILURE_SOURCE, r as FAILURE_STEP_ID, t as EVIDENCE_DIR_ENV } from "../evidence-constants-BLXD0LRY.mjs";
2
2
  import { createRequire } from "node:module";
3
3
  import { existsSync, mkdirSync, statSync, writeFileSync } from "node:fs";
4
4
  import { dirname, isAbsolute, join, resolve } from "node:path";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ccqa",
3
- "version": "1.52.0",
3
+ "version": "1.53.0",
4
4
  "type": "module",
5
5
  "description": "Browser test recorder powered by Claude Code and agent-browser",
6
6
  "repository": {