@quenty/cli-output-helpers 1.9.0-canary.663.f591d73.0 → 1.10.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.
Files changed (67) hide show
  1. package/CHANGELOG.md +14 -2
  2. package/dist/reporting/composite-reporter.d.ts +3 -1
  3. package/dist/reporting/composite-reporter.d.ts.map +1 -1
  4. package/dist/reporting/composite-reporter.js +9 -0
  5. package/dist/reporting/composite-reporter.js.map +1 -1
  6. package/dist/reporting/github/comment-table-reporter.d.ts +2 -1
  7. package/dist/reporting/github/comment-table-reporter.d.ts.map +1 -1
  8. package/dist/reporting/github/comment-table-reporter.js +10 -2
  9. package/dist/reporting/github/comment-table-reporter.js.map +1 -1
  10. package/dist/reporting/github/formatting.d.ts +9 -3
  11. package/dist/reporting/github/formatting.d.ts.map +1 -1
  12. package/dist/reporting/github/formatting.js +27 -7
  13. package/dist/reporting/github/formatting.js.map +1 -1
  14. package/dist/reporting/github/github-api.d.ts +11 -0
  15. package/dist/reporting/github/github-api.d.ts.map +1 -1
  16. package/dist/reporting/github/github-api.js +74 -0
  17. package/dist/reporting/github/github-api.js.map +1 -1
  18. package/dist/reporting/grouped-reporter.d.ts.map +1 -1
  19. package/dist/reporting/grouped-reporter.js +14 -2
  20. package/dist/reporting/grouped-reporter.js.map +1 -1
  21. package/dist/reporting/index.d.ts +2 -1
  22. package/dist/reporting/index.d.ts.map +1 -1
  23. package/dist/reporting/index.js +2 -0
  24. package/dist/reporting/index.js.map +1 -1
  25. package/dist/reporting/progress-format.d.ts +35 -0
  26. package/dist/reporting/progress-format.d.ts.map +1 -0
  27. package/dist/reporting/progress-format.js +88 -0
  28. package/dist/reporting/progress-format.js.map +1 -0
  29. package/dist/reporting/reporter.d.ts +27 -1
  30. package/dist/reporting/reporter.d.ts.map +1 -1
  31. package/dist/reporting/reporter.js +1 -0
  32. package/dist/reporting/reporter.js.map +1 -1
  33. package/dist/reporting/simple-reporter.d.ts.map +1 -1
  34. package/dist/reporting/simple-reporter.js +4 -1
  35. package/dist/reporting/simple-reporter.js.map +1 -1
  36. package/dist/reporting/spinner-reporter.d.ts.map +1 -1
  37. package/dist/reporting/spinner-reporter.js +25 -6
  38. package/dist/reporting/spinner-reporter.js.map +1 -1
  39. package/dist/reporting/state/live-state-tracker.d.ts +3 -1
  40. package/dist/reporting/state/live-state-tracker.d.ts.map +1 -1
  41. package/dist/reporting/state/live-state-tracker.js +15 -0
  42. package/dist/reporting/state/live-state-tracker.js.map +1 -1
  43. package/dist/reporting/state/loaded-state-tracker.d.ts +2 -1
  44. package/dist/reporting/state/loaded-state-tracker.d.ts.map +1 -1
  45. package/dist/reporting/state/loaded-state-tracker.js +4 -0
  46. package/dist/reporting/state/loaded-state-tracker.js.map +1 -1
  47. package/dist/reporting/state/state-tracker.d.ts +3 -1
  48. package/dist/reporting/state/state-tracker.d.ts.map +1 -1
  49. package/dist/reporting/summary-table-reporter.d.ts.map +1 -1
  50. package/dist/reporting/summary-table-reporter.js +34 -6
  51. package/dist/reporting/summary-table-reporter.js.map +1 -1
  52. package/package.json +2 -2
  53. package/src/reporting/composite-reporter.ts +12 -1
  54. package/src/reporting/github/comment-table-reporter.ts +14 -2
  55. package/src/reporting/github/formatting.ts +37 -7
  56. package/src/reporting/github/github-api.ts +114 -0
  57. package/src/reporting/grouped-reporter.ts +15 -4
  58. package/src/reporting/index.ts +12 -0
  59. package/src/reporting/progress-format.ts +97 -0
  60. package/src/reporting/reporter.ts +34 -1
  61. package/src/reporting/simple-reporter.ts +4 -1
  62. package/src/reporting/spinner-reporter.ts +24 -12
  63. package/src/reporting/state/live-state-tracker.ts +16 -1
  64. package/src/reporting/state/loaded-state-tracker.ts +6 -0
  65. package/src/reporting/state/state-tracker.ts +3 -1
  66. package/src/reporting/summary-table-reporter.ts +40 -6
  67. package/tsconfig.tsbuildinfo +1 -1
package/CHANGELOG.md CHANGED
@@ -3,12 +3,24 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
- # [1.9.0-canary.663.f591d73.0](https://github.com/Quenty/Nevermore/compare/@quenty/cli-output-helpers@1.8.0...@quenty/cli-output-helpers@1.9.0-canary.663.f591d73.0) (2026-02-18)
6
+ # [1.10.0](https://github.com/Quenty/Nevermore/compare/@quenty/cli-output-helpers@1.9.0...@quenty/cli-output-helpers@1.10.0) (2026-02-23)
7
7
 
8
8
 
9
9
  ### Features
10
10
 
11
- * **cli:** add integration game deploy pipeline with base place merging ([f591d73](https://github.com/Quenty/Nevermore/commit/f591d7354e2974f8cea64a3af993842abee24b2c))
11
+ * **cli:** add structured progress and failure context to reporting ([#668](https://github.com/Quenty/Nevermore/issues/668)) ([e716329](https://github.com/Quenty/Nevermore/commit/e716329f5aeace8b213322ba3cce06b98d8ea43d))
12
+
13
+
14
+
15
+
16
+
17
+ # [1.9.0](https://github.com/Quenty/Nevermore/compare/@quenty/cli-output-helpers@1.8.0...@quenty/cli-output-helpers@1.9.0) (2026-02-19)
18
+
19
+
20
+ ### Features
21
+
22
+ * **cli:** add integration game deploy pipeline with base place merging ([b406938](https://github.com/Quenty/Nevermore/commit/b406938cee6a1af59adb6682eb6319c76c51aa1a))
23
+ * **cli:** merge test and deploy results into single PR comment ([6750feb](https://github.com/Quenty/Nevermore/commit/6750feb4bb5c1075ca9931166aebae01c9333f8d))
12
24
 
13
25
 
14
26
 
@@ -1,4 +1,4 @@
1
- import { type PackageResult, type Reporter, type JobPhase } from './reporter.js';
1
+ import { type PackageResult, type Reporter, type JobPhase, type ProgressSummary } from './reporter.js';
2
2
  import { LiveStateTracker } from './state/live-state-tracker.js';
3
3
  /**
4
4
  * Owns a LiveStateTracker and fans out every lifecycle hook
@@ -10,9 +10,11 @@ export declare class CompositeReporter implements Reporter {
10
10
  private _state;
11
11
  private _reporters;
12
12
  constructor(packageNames: string[], factory: (state: LiveStateTracker) => Reporter[]);
13
+ get state(): LiveStateTracker;
13
14
  startAsync(): Promise<void>;
14
15
  onPackageStart(packageName: string): void;
15
16
  onPackagePhaseChange(packageName: string, phase: JobPhase): void;
17
+ onPackageProgressUpdate(packageName: string, progress: ProgressSummary): void;
16
18
  onPackageResult(result: PackageResult, bufferedOutput?: string[]): void;
17
19
  stopAsync(): Promise<void>;
18
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"composite-reporter.d.ts","sourceRoot":"","sources":["../../src/reporting/composite-reporter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,QAAQ,EAAE,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEjE;;;;;GAKG;AACH,qBAAa,iBAAkB,YAAW,QAAQ;IAChD,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,UAAU,CAAa;gBAG7B,YAAY,EAAE,MAAM,EAAE,EACtB,OAAO,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,QAAQ,EAAE;IAM5C,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAOjC,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAOzC,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,IAAI;IAOhE,eAAe,CAAC,MAAM,EAAE,aAAa,EAAE,cAAc,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI;IAOjE,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;CAMjC"}
1
+ {"version":3,"file":"composite-reporter.d.ts","sourceRoot":"","sources":["../../src/reporting/composite-reporter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,QAAQ,EAAE,KAAK,QAAQ,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AACvG,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEjE;;;;;GAKG;AACH,qBAAa,iBAAkB,YAAW,QAAQ;IAChD,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,UAAU,CAAa;gBAG7B,YAAY,EAAE,MAAM,EAAE,EACtB,OAAO,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,QAAQ,EAAE;IAMlD,IAAI,KAAK,IAAI,gBAAgB,CAE5B;IAEK,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAOjC,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAOzC,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,IAAI;IAOhE,uBAAuB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,GAAG,IAAI;IAO7E,eAAe,CAAC,MAAM,EAAE,aAAa,EAAE,cAAc,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI;IAOjE,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;CAMjC"}
@@ -12,6 +12,9 @@ export class CompositeReporter {
12
12
  this._state = new LiveStateTracker(packageNames);
13
13
  this._reporters = factory(this._state);
14
14
  }
15
+ get state() {
16
+ return this._state;
17
+ }
15
18
  async startAsync() {
16
19
  await this._state.startAsync();
17
20
  for (const r of this._reporters) {
@@ -30,6 +33,12 @@ export class CompositeReporter {
30
33
  r.onPackagePhaseChange(packageName, phase);
31
34
  }
32
35
  }
36
+ onPackageProgressUpdate(packageName, progress) {
37
+ this._state.onPackageProgressUpdate(packageName, progress);
38
+ for (const r of this._reporters) {
39
+ r.onPackageProgressUpdate(packageName, progress);
40
+ }
41
+ }
33
42
  onPackageResult(result, bufferedOutput) {
34
43
  this._state.onPackageResult(result, bufferedOutput);
35
44
  for (const r of this._reporters) {
@@ -1 +1 @@
1
- {"version":3,"file":"composite-reporter.js","sourceRoot":"","sources":["../../src/reporting/composite-reporter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEjE;;;;;GAKG;AACH,MAAM,OAAO,iBAAiB;IACpB,MAAM,CAAmB;IACzB,UAAU,CAAa;IAE/B,YACE,YAAsB,EACtB,OAAgD;QAEhD,IAAI,CAAC,MAAM,GAAG,IAAI,gBAAgB,CAAC,YAAY,CAAC,CAAC;QACjD,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QAC/B,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAChC,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC;QACvB,CAAC;IACH,CAAC;IAED,cAAc,CAAC,WAAmB;QAChC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QACxC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAChC,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED,oBAAoB,CAAC,WAAmB,EAAE,KAAe;QACvD,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QACrD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAChC,CAAC,CAAC,oBAAoB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,eAAe,CAAC,MAAqB,EAAE,cAAyB;QAC9D,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QACpD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAChC,CAAC,CAAC,eAAe,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAS;QACb,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAChC,MAAM,CAAC,CAAC,SAAS,EAAE,CAAC;QACtB,CAAC;QACD,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;IAChC,CAAC;CACF"}
1
+ {"version":3,"file":"composite-reporter.js","sourceRoot":"","sources":["../../src/reporting/composite-reporter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEjE;;;;;GAKG;AACH,MAAM,OAAO,iBAAiB;IACpB,MAAM,CAAmB;IACzB,UAAU,CAAa;IAE/B,YACE,YAAsB,EACtB,OAAgD;QAEhD,IAAI,CAAC,MAAM,GAAG,IAAI,gBAAgB,CAAC,YAAY,CAAC,CAAC;QACjD,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QAC/B,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAChC,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC;QACvB,CAAC;IACH,CAAC;IAED,cAAc,CAAC,WAAmB;QAChC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QACxC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAChC,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED,oBAAoB,CAAC,WAAmB,EAAE,KAAe;QACvD,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QACrD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAChC,CAAC,CAAC,oBAAoB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,uBAAuB,CAAC,WAAmB,EAAE,QAAyB;QACpE,IAAI,CAAC,MAAM,CAAC,uBAAuB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAC3D,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAChC,CAAC,CAAC,uBAAuB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED,eAAe,CAAC,MAAqB,EAAE,cAAyB;QAC9D,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QACpD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAChC,CAAC,CAAC,eAAe,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAS;QACb,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAChC,MAAM,CAAC,CAAC,SAAS,EAAE,CAAC;QACtB,CAAC;QACD,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;IAChC,CAAC;CACF"}
@@ -1,4 +1,4 @@
1
- import { type PackageResult, type PackageStatus, BaseReporter } from '../reporter.js';
1
+ import { type PackageResult, type PackageStatus, type ProgressSummary, BaseReporter } from '../reporter.js';
2
2
  import { type IStateTracker } from '../state/state-tracker.js';
3
3
  import { type GithubCommentTableConfig } from './formatting.js';
4
4
  export type { GithubCommentColumn, GithubCommentTableConfig, GithubTableRow, } from './formatting.js';
@@ -34,6 +34,7 @@ export declare class GithubCommentTableReporter extends BaseReporter {
34
34
  startAsync(): Promise<void>;
35
35
  onPackageStart(_name: string): void;
36
36
  onPackagePhaseChange(_name: string, _phase: PackageStatus): void;
37
+ onPackageProgressUpdate(_name: string, _progress: ProgressSummary): void;
37
38
  onPackageResult(_result: PackageResult): void;
38
39
  stopAsync(): Promise<void>;
39
40
  private _scheduleUpdate;
@@ -1 +1 @@
1
- {"version":3,"file":"comment-table-reporter.d.ts","sourceRoot":"","sources":["../../../src/reporting/github/comment-table-reporter.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,YAAY,EACb,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EACL,KAAK,wBAAwB,EAI9B,MAAM,iBAAiB,CAAC;AAIzB,YAAY,EACV,mBAAmB,EACnB,wBAAwB,EACxB,cAAc,GACf,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD;;;;;;GAMG;AACH,qBAAa,0BAA2B,SAAQ,YAAY;IAC1D,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,OAAO,CAA2B;IAC1C,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,YAAY,CAA4C;IAChE,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,eAAe,CAAqB;IAE5C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAU;gBAG3C,KAAK,EAAE,aAAa,GAAG,SAAS,EAChC,MAAM,EAAE,wBAAwB,EAChC,WAAW,CAAC,EAAE,MAAM;IAQtB;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI7B;;;OAGG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIrB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAKjC,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAInC,oBAAoB,CAC3B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,aAAa,GACpB,IAAI;IAIE,eAAe,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAIvC,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAqBzC,OAAO,CAAC,eAAe;YAmBT,gBAAgB;YAUhB,iBAAiB;CAGhC"}
1
+ {"version":3,"file":"comment-table-reporter.d.ts","sourceRoot":"","sources":["../../../src/reporting/github/comment-table-reporter.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,YAAY,EACb,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EACL,KAAK,wBAAwB,EAI9B,MAAM,iBAAiB,CAAC;AAOzB,YAAY,EACV,mBAAmB,EACnB,wBAAwB,EACxB,cAAc,GACf,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD;;;;;;GAMG;AACH,qBAAa,0BAA2B,SAAQ,YAAY;IAC1D,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,OAAO,CAA2B;IAC1C,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,YAAY,CAA4C;IAChE,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,eAAe,CAAqB;IAE5C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAU;gBAG3C,KAAK,EAAE,aAAa,GAAG,SAAS,EAChC,MAAM,EAAE,wBAAwB,EAChC,WAAW,CAAC,EAAE,MAAM;IAQtB;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI7B;;;OAGG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIrB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAKjC,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAInC,oBAAoB,CAC3B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,aAAa,GACpB,IAAI;IAIE,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,GAAG,IAAI;IAIxE,eAAe,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAIvC,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAqBzC,OAAO,CAAC,eAAe;YAmBT,gBAAgB;YAUhB,iBAAiB;CAOhC"}
@@ -1,7 +1,7 @@
1
1
  import { isCI } from '../../cli-utils.js';
2
2
  import { BaseReporter, } from '../reporter.js';
3
3
  import { formatGithubTableBody, formatGithubErrorBody, formatGithubNoTestsBody, } from './formatting.js';
4
- import { postOrUpdateCommentAsync } from './github-api.js';
4
+ import { postOrUpdateCommentAsync, postOrUpdateCommentSectionAsync, } from './github-api.js';
5
5
  export { summarizeError } from './formatting.js';
6
6
  /**
7
7
  * Maintains a live PR comment that updates as jobs progress.
@@ -51,6 +51,9 @@ export class GithubCommentTableReporter extends BaseReporter {
51
51
  onPackagePhaseChange(_name, _phase) {
52
52
  this._scheduleUpdate();
53
53
  }
54
+ onPackageProgressUpdate(_name, _progress) {
55
+ this._scheduleUpdate();
56
+ }
54
57
  onPackageResult(_result) {
55
58
  this._scheduleUpdate();
56
59
  }
@@ -96,7 +99,12 @@ export class GithubCommentTableReporter extends BaseReporter {
96
99
  await this._postCommentAsync(body);
97
100
  }
98
101
  async _postCommentAsync(body) {
99
- await postOrUpdateCommentAsync(this._config.commentMarker, body);
102
+ if (this._config.sectionId) {
103
+ await postOrUpdateCommentSectionAsync(this._config.sectionId, body);
104
+ }
105
+ else {
106
+ await postOrUpdateCommentAsync(this._config.commentMarker, body);
107
+ }
100
108
  }
101
109
  }
102
110
  function _isGithubCommentEnabled() {
@@ -1 +1 @@
1
- {"version":3,"file":"comment-table-reporter.js","sourceRoot":"","sources":["../../../src/reporting/github/comment-table-reporter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"comment-table-reporter.js","sourceRoot":"","sources":["../../../src/reporting/github/comment-table-reporter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAIL,YAAY,GACb,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAEL,qBAAqB,EACrB,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,wBAAwB,EACxB,+BAA+B,GAChC,MAAM,iBAAiB,CAAC;AAQzB,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD;;;;;;GAMG;AACH,MAAM,OAAO,0BAA2B,SAAQ,YAAY;IAClD,MAAM,CAA4B;IAClC,OAAO,CAA2B;IAClC,YAAY,CAAS;IACrB,YAAY,CAA4C;IACxD,cAAc,GAAG,KAAK,CAAC;IACvB,SAAS,GAAG,KAAK,CAAC;IAClB,MAAM,CAAqB;IAC3B,eAAe,CAAqB;IAEpC,MAAM,CAAU,WAAW,GAAG,MAAM,CAAC;IAE7C,YACE,KAAgC,EAChC,MAAgC,EAChC,WAAoB;QAEpB,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,YAAY,GAAG,WAAW,IAAI,CAAC,CAAC;IACvC,CAAC;IAED;;;OAGG;IACH,QAAQ,CAAC,KAAa;QACpB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAED;;;OAGG;IACH,aAAa,CAAC,OAAe;QAC3B,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;IACjC,CAAC;IAEQ,KAAK,CAAC,UAAU;QACvB,IAAI,CAAC,uBAAuB,EAAE;YAAE,OAAO;QACvC,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAChC,CAAC;IAEQ,cAAc,CAAC,KAAa;QACnC,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAEQ,oBAAoB,CAC3B,KAAa,EACb,MAAqB;QAErB,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAEQ,uBAAuB,CAAC,KAAa,EAAE,SAA0B;QACxE,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAEQ,eAAe,CAAC,OAAsB;QAC7C,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAEQ,KAAK,CAAC,SAAS;QACtB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAChC,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;QAChC,CAAC;QACD,IAAI,CAAC,uBAAuB,EAAE;YAAE,OAAO;QAEvC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,MAAM,IAAI,CAAC,iBAAiB,CAC1B,qBAAqB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CACjD,CAAC;QACJ,CAAC;aAAM,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YAChC,MAAM,IAAI,CAAC,iBAAiB,CAC1B,uBAAuB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,CAC5D,CAAC;QACJ,CAAC;aAAM,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACvB,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAChC,CAAC;IACH,CAAC;IAEO,eAAe;QACrB,IAAI,CAAC,uBAAuB,EAAE,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO;QACzD,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,OAAO;QACT,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,KAAK,IAAI,EAAE;YACxC,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC9B,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;YAE9B,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gBAC3C,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,CAAC;QACH,CAAC,EAAE,0BAA0B,CAAC,WAAW,CAAC,CAAC;QAC3C,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;IAC5B,CAAC;IAEO,KAAK,CAAC,gBAAgB;QAC5B,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO;QACzB,MAAM,IAAI,GAAG,qBAAqB,CAChC,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,YAAY,CAClB,CAAC;QACF,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,IAAY;QAC1C,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YAC3B,MAAM,+BAA+B,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACtE,CAAC;aAAM,CAAC;YACN,MAAM,wBAAwB,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;;AAGH,SAAS,uBAAuB;IAC9B,OAAO,IAAI,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;AAC9C,CAAC"}
@@ -4,7 +4,7 @@
4
4
  * Both the PR comment reporter and job summary reporter use these to
5
5
  * render identical markdown tables from batch run state.
6
6
  */
7
- import { type PackageResult, type PackageStatus } from '../reporter.js';
7
+ import { type PackageResult, type PackageStatus, type ProgressSummary, type JobPhase } from '../reporter.js';
8
8
  import { type IStateTracker, type PackageState } from '../state/state-tracker.js';
9
9
  /** A column to render in the GitHub comment table. */
10
10
  export interface GithubCommentColumn {
@@ -29,6 +29,12 @@ export interface GithubCommentTableConfig {
29
29
  failureLabel?: string;
30
30
  /** Verb in the footer, e.g. "tested" in "X tested, Y passed, Z failed". Default: "tested" */
31
31
  summaryVerb?: string;
32
+ /**
33
+ * When set, the PR comment reporter uses section-based merging.
34
+ * Multiple configs with different sectionIds share a single PR comment,
35
+ * each managing their own section independently.
36
+ */
37
+ sectionId?: string;
32
38
  }
33
39
  /** A single row in the rendered GitHub table. */
34
40
  export interface GithubTableRow {
@@ -40,8 +46,8 @@ export interface GithubTableRow {
40
46
  * Summarize an error string for display in compact contexts (tables, etc.).
41
47
  * Parses JSON API error bodies and truncates long messages.
42
48
  */
43
- export declare function summarizeError(error: string): string;
44
- export declare function formatRunningStatus(phase: PackageStatus): string;
49
+ export declare function summarizeError(error: string, failedPhase?: JobPhase): string;
50
+ export declare function formatRunningStatus(phase: PackageStatus, progress?: ProgressSummary): string;
45
51
  export declare function formatResultStatus(pkg: PackageResult, successLabel: string, failureLabel: string): string;
46
52
  export declare function getActionsRunUrl(): string | undefined;
47
53
  /** Render a markdown table with header, data rows, and footer. */
@@ -1 +1 @@
1
- {"version":3,"file":"formatting.d.ts","sourceRoot":"","sources":["../../../src/reporting/github/formatting.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,aAAa,EACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,YAAY,EAClB,MAAM,2BAA2B,CAAC;AAInC,sDAAsD;AACtD,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM,CAAC;IAClC,kEAAkE;IAClE,UAAU,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;CAChC;AAED,gDAAgD;AAChD,MAAM,WAAW,wBAAwB;IACvC,8DAA8D;IAC9D,OAAO,EAAE,MAAM,CAAC;IAChB,kEAAkE;IAClE,aAAa,EAAE,MAAM,CAAC;IACtB,kEAAkE;IAClE,YAAY,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACrC,8DAA8D;IAC9D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uEAAuE;IACvE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iEAAiE;IACjE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,6FAA6F;IAC7F,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,iDAAiD;AACjD,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAID;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAkBpD;AA4BD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAEhE;AAED,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,aAAa,EAClB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,GACnB,MAAM,CAKR;AAED,wBAAgB,gBAAgB,IAAI,MAAM,GAAG,SAAS,CAUrD;AAED,kEAAkE;AAClE,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,wBAAwB,EAChC,IAAI,EAAE,cAAc,EAAE,EACtB,YAAY,EAAE,mBAAmB,EAAE,EACnC,MAAM,EAAE,MAAM,GACb,MAAM,CAyCR;AA8BD;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,wBAAwB,EAChC,WAAW,EAAE,MAAM,GAClB,MAAM,CA0ER;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,wBAAwB,EAChC,OAAO,EAAE,MAAM,GACd,MAAM,CAcR;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,wBAAwB,EAChC,KAAK,EAAE,MAAM,GACZ,MAAM,CAcR"}
1
+ {"version":3,"file":"formatting.d.ts","sourceRoot":"","sources":["../../../src/reporting/github/formatting.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,QAAQ,EACd,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,YAAY,EAClB,MAAM,2BAA2B,CAAC;AAKnC,sDAAsD;AACtD,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM,CAAC;IAClC,kEAAkE;IAClE,UAAU,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;CAChC;AAED,gDAAgD;AAChD,MAAM,WAAW,wBAAwB;IACvC,8DAA8D;IAC9D,OAAO,EAAE,MAAM,CAAC;IAChB,kEAAkE;IAClE,aAAa,EAAE,MAAM,CAAC;IACtB,kEAAkE;IAClE,YAAY,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACrC,8DAA8D;IAC9D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uEAAuE;IACvE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iEAAiE;IACjE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,6FAA6F;IAC7F,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,iDAAiD;AACjD,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAID;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,QAAQ,GAAG,MAAM,CAkB5E;AA4BD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,CAAC,EAAE,eAAe,GAAG,MAAM,CAO5F;AAED,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,aAAa,EAClB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,GACnB,MAAM,CAiBR;AAED,wBAAgB,gBAAgB,IAAI,MAAM,GAAG,SAAS,CAUrD;AAED,kEAAkE;AAClE,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,wBAAwB,EAChC,IAAI,EAAE,cAAc,EAAE,EACtB,YAAY,EAAE,mBAAmB,EAAE,EACnC,MAAM,EAAE,MAAM,GACb,MAAM,CAyCR;AA8BD;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,wBAAwB,EAChC,WAAW,EAAE,MAAM,GAClB,MAAM,CA8ER;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,wBAAwB,EAChC,OAAO,EAAE,MAAM,GACd,MAAM,CAcR;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,wBAAwB,EAChC,KAAK,EAAE,MAAM,GACZ,MAAM,CAcR"}
@@ -5,12 +5,13 @@
5
5
  * render identical markdown tables from batch run state.
6
6
  */
7
7
  import { formatDurationMs } from '../../cli-utils.js';
8
+ import { formatProgressInline, formatProgressResult, isEmptyTestRun } from '../progress-format.js';
8
9
  // ── Error summarization ─────────────────────────────────────────────────────
9
10
  /**
10
11
  * Summarize an error string for display in compact contexts (tables, etc.).
11
12
  * Parses JSON API error bodies and truncates long messages.
12
13
  */
13
- export function summarizeError(error) {
14
+ export function summarizeError(error, failedPhase) {
14
15
  const firstLine = error.split('\n')[0];
15
16
  // Try to extract JSON error body from API responses
16
17
  // Format: "Action failed: STATUS TEXT: {json}"
@@ -51,14 +52,29 @@ const RUNNING_PHASE_LABELS = {
51
52
  connecting: '🔌 Connecting...',
52
53
  executing: '🔄 Executing...',
53
54
  };
54
- export function formatRunningStatus(phase) {
55
- return RUNNING_PHASE_LABELS[phase] ?? '🔄 Running...';
55
+ export function formatRunningStatus(phase, progress) {
56
+ const label = RUNNING_PHASE_LABELS[phase] ?? '🔄 Running...';
57
+ if (progress) {
58
+ const progressText = formatProgressInline(progress);
59
+ return progressText ? `${label} ${progressText}` : label;
60
+ }
61
+ return label;
56
62
  }
57
63
  export function formatResultStatus(pkg, successLabel, failureLabel) {
58
64
  const duration = formatDurationMs(pkg.durationMs);
59
- return pkg.success
60
- ? `✅ ${successLabel} (${duration})`
61
- : `❌ **${failureLabel}** (${duration})`;
65
+ const progressText = formatProgressResult(pkg.progressSummary);
66
+ const empty = isEmptyTestRun(pkg.progressSummary);
67
+ if (pkg.success) {
68
+ const label = progressText ? `${successLabel} ${progressText}` : successLabel;
69
+ return empty
70
+ ? `⚠️ ${label} (${duration})`
71
+ : `✅ ${label} (${duration})`;
72
+ }
73
+ const failedPhase = pkg.failedPhase;
74
+ const label = failedPhase
75
+ ? `**${failureLabel}** at ${failedPhase}`
76
+ : `**${failureLabel}**`;
77
+ return `❌ ${label} (${duration})`;
62
78
  }
63
79
  export function getActionsRunUrl() {
64
80
  const serverUrl = process.env.GITHUB_SERVER_URL;
@@ -144,7 +160,7 @@ export function formatGithubTableBody(state, config, concurrency) {
144
160
  statusText = formatResultStatus(pkg.result, config.successLabel ?? 'Passed', config.failureLabel ?? 'Failed');
145
161
  break;
146
162
  default:
147
- statusText = formatRunningStatus(pkg.status);
163
+ statusText = formatRunningStatus(pkg.status, pkg.progress);
148
164
  break;
149
165
  }
150
166
  const extraCells = extraColumns.map((col) => col.render(pkg));
@@ -158,8 +174,12 @@ export function formatGithubTableBody(state, config, concurrency) {
158
174
  if (allDone) {
159
175
  const passed = packages.filter((p) => p.status === 'passed').length;
160
176
  const failed = packages.filter((p) => p.status === 'failed').length;
177
+ const emptyRuns = packages.filter((p) => isEmptyTestRun(p.progress)).length;
161
178
  const verb = config.summaryVerb ?? 'tested';
162
179
  footer = `**${packages.length} ${verb}, ${passed} passed, ${failed} failed** in ${formatDurationMs(elapsedMs)}`;
180
+ if (emptyRuns > 0) {
181
+ footer += `\n⚠️ ${emptyRuns} package(s) ran 0 tests — check test discovery`;
182
+ }
163
183
  }
164
184
  else {
165
185
  const done = packages.filter((p) => p.status === 'passed' || p.status === 'failed').length;
@@ -1 +1 @@
1
- {"version":3,"file":"formatting.js","sourceRoot":"","sources":["../../../src/reporting/github/formatting.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"formatting.js","sourceRoot":"","sources":["../../../src/reporting/github/formatting.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,8 @@
1
1
  /**
2
2
  * GitHub API helpers for posting and updating PR comments.
3
3
  */
4
+ /** Shared marker used for the combined CI results comment. */
5
+ export declare const SHARED_CI_COMMENT_MARKER = "<!-- nevermore-ci-results -->";
4
6
  interface GitHubContext {
5
7
  token: string;
6
8
  owner: string;
@@ -23,5 +25,14 @@ export declare function resolveGitHubContext(): GitHubContext | undefined;
23
25
  * Returns false and warns (rather than throwing) on failure.
24
26
  */
25
27
  export declare function postOrUpdateCommentAsync(commentMarker: string, body: string): Promise<boolean>;
28
+ /**
29
+ * Post or update a section within a shared PR comment.
30
+ *
31
+ * Uses {@link SHARED_CI_COMMENT_MARKER} to find the combined comment, then
32
+ * replaces the section delimited by `<!-- section:ID -->` / `<!-- /section:ID -->`.
33
+ * If the section doesn't exist yet, appends it. If no combined comment exists,
34
+ * creates one.
35
+ */
36
+ export declare function postOrUpdateCommentSectionAsync(sectionId: string, sectionBody: string): Promise<boolean>;
26
37
  export {};
27
38
  //# sourceMappingURL=github-api.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"github-api.d.ts","sourceRoot":"","sources":["../../../src/reporting/github/github-api.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,UAAU,aAAa;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,IAAI,aAAa,GAAG,SAAS,CAwChE;AAED;;;;;;GAMG;AACH,wBAAsB,wBAAwB,CAC5C,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,OAAO,CAAC,CA0ElB"}
1
+ {"version":3,"file":"github-api.d.ts","sourceRoot":"","sources":["../../../src/reporting/github/github-api.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,8DAA8D;AAC9D,eAAO,MAAM,wBAAwB,kCAAkC,CAAC;AAExE,UAAU,aAAa;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,IAAI,aAAa,GAAG,SAAS,CAwChE;AAED;;;;;;GAMG;AACH,wBAAsB,wBAAwB,CAC5C,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,OAAO,CAAC,CA0ElB;AAED;;;;;;;GAOG;AACH,wBAAsB,+BAA+B,CACnD,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,OAAO,CAAC,CAkGlB"}
@@ -3,6 +3,8 @@
3
3
  */
4
4
  import * as fsSync from 'fs';
5
5
  import { OutputHelper } from '../../outputHelper.js';
6
+ /** Shared marker used for the combined CI results comment. */
7
+ export const SHARED_CI_COMMENT_MARKER = '<!-- nevermore-ci-results -->';
6
8
  /**
7
9
  * Resolve GitHub context from environment variables.
8
10
  *
@@ -98,4 +100,76 @@ export async function postOrUpdateCommentAsync(commentMarker, body) {
98
100
  }
99
101
  return true;
100
102
  }
103
+ /**
104
+ * Post or update a section within a shared PR comment.
105
+ *
106
+ * Uses {@link SHARED_CI_COMMENT_MARKER} to find the combined comment, then
107
+ * replaces the section delimited by `<!-- section:ID -->` / `<!-- /section:ID -->`.
108
+ * If the section doesn't exist yet, appends it. If no combined comment exists,
109
+ * creates one.
110
+ */
111
+ export async function postOrUpdateCommentSectionAsync(sectionId, sectionBody) {
112
+ const ctx = resolveGitHubContext();
113
+ if (!ctx) {
114
+ OutputHelper.warn('GitHub context not available (missing GITHUB_TOKEN, GITHUB_REPOSITORY, or PR number). Skipping PR comment.');
115
+ return false;
116
+ }
117
+ const apiBase = `https://api.github.com/repos/${ctx.owner}/${ctx.repo}`;
118
+ const headers = {
119
+ Authorization: `Bearer ${ctx.token}`,
120
+ Accept: 'application/vnd.github+json',
121
+ 'X-GitHub-Api-Version': '2022-11-28',
122
+ 'Content-Type': 'application/json',
123
+ };
124
+ const listResponse = await fetch(`${apiBase}/issues/${ctx.prNumber}/comments?per_page=100`, { headers });
125
+ if (!listResponse.ok) {
126
+ OutputHelper.warn(`Failed to list PR comments: ${listResponse.status} ${listResponse.statusText}`);
127
+ return false;
128
+ }
129
+ const comments = (await listResponse.json());
130
+ const sectionStart = `<!-- section:${sectionId} -->`;
131
+ const sectionEnd = `<!-- /section:${sectionId} -->`;
132
+ const wrappedSection = `${sectionStart}\n${sectionBody}\n${sectionEnd}`;
133
+ const existing = comments.find((c) => c.body.includes(SHARED_CI_COMMENT_MARKER));
134
+ let fullBody;
135
+ if (existing) {
136
+ const startIdx = existing.body.indexOf(sectionStart);
137
+ const endIdx = existing.body.indexOf(sectionEnd);
138
+ if (startIdx >= 0 && endIdx >= 0) {
139
+ // Replace existing section
140
+ fullBody =
141
+ existing.body.slice(0, startIdx) +
142
+ wrappedSection +
143
+ existing.body.slice(endIdx + sectionEnd.length);
144
+ }
145
+ else {
146
+ // Append new section
147
+ fullBody = existing.body.trimEnd() + '\n\n' + wrappedSection + '\n';
148
+ }
149
+ const updateResponse = await fetch(`${apiBase}/issues/comments/${existing.id}`, {
150
+ method: 'PATCH',
151
+ headers,
152
+ body: JSON.stringify({ body: fullBody }),
153
+ });
154
+ if (!updateResponse.ok) {
155
+ OutputHelper.warn(`Failed to update PR comment: ${updateResponse.status} ${updateResponse.statusText}`);
156
+ return false;
157
+ }
158
+ OutputHelper.info(`Updated PR comment (section: ${sectionId}).`);
159
+ }
160
+ else {
161
+ fullBody = SHARED_CI_COMMENT_MARKER + '\n\n' + wrappedSection + '\n';
162
+ const createResponse = await fetch(`${apiBase}/issues/${ctx.prNumber}/comments`, {
163
+ method: 'POST',
164
+ headers,
165
+ body: JSON.stringify({ body: fullBody }),
166
+ });
167
+ if (!createResponse.ok) {
168
+ OutputHelper.warn(`Failed to create PR comment: ${createResponse.status} ${createResponse.statusText}`);
169
+ return false;
170
+ }
171
+ OutputHelper.info(`Posted PR comment (section: ${sectionId}).`);
172
+ }
173
+ return true;
174
+ }
101
175
  //# sourceMappingURL=github-api.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"github-api.js","sourceRoot":"","sources":["../../../src/reporting/github/github-api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"github-api.js","sourceRoot":"","sources":["../../../src/reporting/github/github-api.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,MAAM,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,8DAA8D;AAC9D,MAAM,CAAC,MAAM,wBAAwB,GAAG,+BAA+B,CAAC;AASxE;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB;IAClC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;IACvC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;IAEjD,IAAI,CAAC,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC;QAC1B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5C,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;QACpB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,QAA4B,CAAC;IAEjC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;IAC5C,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAC9C,IAAI,KAAK,EAAE,CAAC;YACV,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAED,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;QAChD,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;gBAClE,QAAQ,GAAG,KAAK,EAAE,YAAY,EAAE,MAAM,IAAI,KAAK,EAAE,MAAM,CAAC;YAC1D,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AAC1C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,aAAqB,EACrB,IAAY;IAEZ,MAAM,GAAG,GAAG,oBAAoB,EAAE,CAAC;IACnC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,YAAY,CAAC,IAAI,CACf,4GAA4G,CAC7G,CAAC;QACF,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,OAAO,GAAG,gCAAgC,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;IACxE,MAAM,OAAO,GAAG;QACd,aAAa,EAAE,UAAU,GAAG,CAAC,KAAK,EAAE;QACpC,MAAM,EAAE,6BAA6B;QACrC,sBAAsB,EAAE,YAAY;QACpC,cAAc,EAAE,kBAAkB;KACnC,CAAC;IAEF,MAAM,YAAY,GAAG,MAAM,KAAK,CAC9B,GAAG,OAAO,WAAW,GAAG,CAAC,QAAQ,wBAAwB,EACzD,EAAE,OAAO,EAAE,CACZ,CAAC;IAEF,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;QACrB,YAAY,CAAC,IAAI,CACf,+BAA+B,YAAY,CAAC,MAAM,IAAI,YAAY,CAAC,UAAU,EAAE,CAChF,CAAC;QACF,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,QAAQ,GAAG,CAAC,MAAM,YAAY,CAAC,IAAI,EAAE,CAGzC,CAAC;IACH,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;IAEtE,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,cAAc,GAAG,MAAM,KAAK,CAChC,GAAG,OAAO,oBAAoB,QAAQ,CAAC,EAAE,EAAE,EAC3C;YACE,MAAM,EAAE,OAAO;YACf,OAAO;YACP,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC;SAC/B,CACF,CAAC;QAEF,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC;YACvB,YAAY,CAAC,IAAI,CACf,gCAAgC,cAAc,CAAC,MAAM,IAAI,cAAc,CAAC,UAAU,EAAE,CACrF,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;QAED,YAAY,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;IACxD,CAAC;SAAM,CAAC;QACN,MAAM,cAAc,GAAG,MAAM,KAAK,CAChC,GAAG,OAAO,WAAW,GAAG,CAAC,QAAQ,WAAW,EAC5C;YACE,MAAM,EAAE,MAAM;YACd,OAAO;YACP,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC;SAC/B,CACF,CAAC;QAEF,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC;YACvB,YAAY,CAAC,IAAI,CACf,gCAAgC,cAAc,CAAC,MAAM,IAAI,cAAc,CAAC,UAAU,EAAE,CACrF,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;QAED,YAAY,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;IACvD,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,+BAA+B,CACnD,SAAiB,EACjB,WAAmB;IAEnB,MAAM,GAAG,GAAG,oBAAoB,EAAE,CAAC;IACnC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,YAAY,CAAC,IAAI,CACf,4GAA4G,CAC7G,CAAC;QACF,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,OAAO,GAAG,gCAAgC,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;IACxE,MAAM,OAAO,GAAG;QACd,aAAa,EAAE,UAAU,GAAG,CAAC,KAAK,EAAE;QACpC,MAAM,EAAE,6BAA6B;QACrC,sBAAsB,EAAE,YAAY;QACpC,cAAc,EAAE,kBAAkB;KACnC,CAAC;IAEF,MAAM,YAAY,GAAG,MAAM,KAAK,CAC9B,GAAG,OAAO,WAAW,GAAG,CAAC,QAAQ,wBAAwB,EACzD,EAAE,OAAO,EAAE,CACZ,CAAC;IAEF,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;QACrB,YAAY,CAAC,IAAI,CACf,+BAA+B,YAAY,CAAC,MAAM,IAAI,YAAY,CAAC,UAAU,EAAE,CAChF,CAAC;QACF,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,QAAQ,GAAG,CAAC,MAAM,YAAY,CAAC,IAAI,EAAE,CAGzC,CAAC;IAEH,MAAM,YAAY,GAAG,gBAAgB,SAAS,MAAM,CAAC;IACrD,MAAM,UAAU,GAAG,iBAAiB,SAAS,MAAM,CAAC;IACpD,MAAM,cAAc,GAAG,GAAG,YAAY,KAAK,WAAW,KAAK,UAAU,EAAE,CAAC;IAExE,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CACnC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAC1C,CAAC;IAEF,IAAI,QAAgB,CAAC;IACrB,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAEjD,IAAI,QAAQ,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;YACjC,2BAA2B;YAC3B,QAAQ;gBACN,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC;oBAChC,cAAc;oBACd,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QACpD,CAAC;aAAM,CAAC;YACN,qBAAqB;YACrB,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,MAAM,GAAG,cAAc,GAAG,IAAI,CAAC;QACtE,CAAC;QAED,MAAM,cAAc,GAAG,MAAM,KAAK,CAChC,GAAG,OAAO,oBAAoB,QAAQ,CAAC,EAAE,EAAE,EAC3C;YACE,MAAM,EAAE,OAAO;YACf,OAAO;YACP,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;SACzC,CACF,CAAC;QAEF,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC;YACvB,YAAY,CAAC,IAAI,CACf,gCAAgC,cAAc,CAAC,MAAM,IAAI,cAAc,CAAC,UAAU,EAAE,CACrF,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;QAED,YAAY,CAAC,IAAI,CAAC,gCAAgC,SAAS,IAAI,CAAC,CAAC;IACnE,CAAC;SAAM,CAAC;QACN,QAAQ,GAAG,wBAAwB,GAAG,MAAM,GAAG,cAAc,GAAG,IAAI,CAAC;QAErE,MAAM,cAAc,GAAG,MAAM,KAAK,CAChC,GAAG,OAAO,WAAW,GAAG,CAAC,QAAQ,WAAW,EAC5C;YACE,MAAM,EAAE,MAAM;YACd,OAAO;YACP,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;SACzC,CACF,CAAC;QAEF,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC;YACvB,YAAY,CAAC,IAAI,CACf,gCAAgC,cAAc,CAAC,MAAM,IAAI,cAAc,CAAC,UAAU,EAAE,CACrF,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;QAED,YAAY,CAAC,IAAI,CAAC,+BAA+B,SAAS,IAAI,CAAC,CAAC;IAClE,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"grouped-reporter.d.ts","sourceRoot":"","sources":["../../src/reporting/grouped-reporter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,aAAa,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,kFAAkF;IAClF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uEAAuE;IACvE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wEAAwE;IACxE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,qBAAa,eAAgB,SAAQ,YAAY;IAC/C,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,QAAQ,CAAyB;IACzC,OAAO,CAAC,KAAK,CAAU;gBAEX,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,sBAAsB;IAOlD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAKjC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAMlC,eAAe,CACtB,MAAM,EAAE,aAAa,EACrB,cAAc,CAAC,EAAE,MAAM,EAAE,GACxB,IAAI;IAIP,OAAO,CAAC,mBAAmB;CAuD5B"}
1
+ {"version":3,"file":"grouped-reporter.d.ts","sourceRoot":"","sources":["../../src/reporting/grouped-reporter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,aAAa,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAG9D,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,kFAAkF;IAClF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uEAAuE;IACvE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wEAAwE;IACxE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,qBAAa,eAAgB,SAAQ,YAAY;IAC/C,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,QAAQ,CAAyB;IACzC,OAAO,CAAC,KAAK,CAAU;gBAEX,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,sBAAsB;IAOlD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAKjC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAMlC,eAAe,CACtB,MAAM,EAAE,aAAa,EACrB,cAAc,CAAC,EAAE,MAAM,EAAE,GACxB,IAAI;IAIP,OAAO,CAAC,mBAAmB;CAiE5B"}
@@ -1,6 +1,7 @@
1
1
  import { OutputHelper } from '../outputHelper.js';
2
2
  import { formatDurationMs, isCI } from '../cli-utils.js';
3
3
  import { BaseReporter } from './reporter.js';
4
+ import { formatProgressResult, isEmptyTestRun } from './progress-format.js';
4
5
  /**
5
6
  * CI / verbose / non-TTY output for batch job progress.
6
7
  * Prints grouped result blocks as each package completes.
@@ -44,11 +45,22 @@ export class GroupedReporter extends BaseReporter {
44
45
  const duration = formatDurationMs(result.durationMs);
45
46
  const successLabel = this._options.successLabel ?? 'Passed';
46
47
  const failureLabel = this._options.failureLabel ?? 'FAILED';
48
+ const progressText = formatProgressResult(result.progressSummary);
49
+ const empty = isEmptyTestRun(result.progressSummary);
47
50
  if (result.success) {
48
- console.log(` ${OutputHelper.formatSuccess('✓')} ${OutputHelper.formatSuccess(successLabel)} ${OutputHelper.formatDim(`(${duration})`)}`);
51
+ const label = progressText ? `${successLabel} ${progressText}` : successLabel;
52
+ const formatted = empty
53
+ ? OutputHelper.formatWarning(`${label} ⚠`)
54
+ : OutputHelper.formatSuccess(label);
55
+ const icon = empty ? OutputHelper.formatWarning('⚠') : OutputHelper.formatSuccess('✓');
56
+ console.log(` ${icon} ${formatted} ${OutputHelper.formatDim(`(${duration})`)}`);
49
57
  }
50
58
  else {
51
- console.log(` ${OutputHelper.formatError('✗')} ${OutputHelper.formatError(failureLabel)} ${OutputHelper.formatDim(`(${duration})`)}`);
59
+ const failedPhase = result.failedPhase;
60
+ const label = failedPhase
61
+ ? `${failureLabel} at ${failedPhase}`
62
+ : failureLabel;
63
+ console.log(` ${OutputHelper.formatError('✗')} ${OutputHelper.formatError(label)} ${OutputHelper.formatDim(`(${duration})`)}`);
52
64
  }
53
65
  if (showLogs) {
54
66
  if (result.logs) {
@@ -1 +1 @@
1
- {"version":3,"file":"grouped-reporter.js","sourceRoot":"","sources":["../../src/reporting/grouped-reporter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"grouped-reporter.js","sourceRoot":"","sources":["../../src/reporting/grouped-reporter.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- export { BaseReporter, type Reporter, type JobPhase, type PackageStatus, type PackageResult, type BatchSummary, } from './reporter.js';
1
+ export { BaseReporter, type Reporter, type JobPhase, type PackageStatus, type PackageResult, type BatchSummary, type ProgressSummary, type TestCountProgress, type ByteProgress, type StepProgress, } from './reporter.js';
2
+ export { formatProgressInline, formatProgressResult, isEmptyTestRun, summarizeFailure, } from './progress-format.js';
2
3
  export { type IStateTracker, type PackageState, } from './state/state-tracker.js';
3
4
  export { LiveStateTracker } from './state/live-state-tracker.js';
4
5
  export { LoadedStateTracker } from './state/loaded-state-tracker.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/reporting/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,YAAY,EACZ,KAAK,QAAQ,EACb,KAAK,QAAQ,EACb,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,YAAY,GAClB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,YAAY,GAClB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAGrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EACL,cAAc,EACd,KAAK,qBAAqB,GAC3B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,eAAe,EACf,KAAK,sBAAsB,GAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,eAAe,EACf,KAAK,sBAAsB,GAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,oBAAoB,EACpB,KAAK,2BAA2B,GACjC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EACxB,KAAK,mBAAmB,EACxB,KAAK,wBAAwB,EAC7B,KAAK,cAAc,EACnB,cAAc,EACd,KAAK,kBAAkB,EACvB,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,+BAA+B,EAC/B,2BAA2B,GAC5B,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/reporting/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,YAAY,EACZ,KAAK,QAAQ,EACb,KAAK,QAAQ,EACb,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,YAAY,GAClB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,cAAc,EACd,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,YAAY,GAClB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAGrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EACL,cAAc,EACd,KAAK,qBAAqB,GAC3B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,eAAe,EACf,KAAK,sBAAsB,GAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,eAAe,EACf,KAAK,sBAAsB,GAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,oBAAoB,EACpB,KAAK,2BAA2B,GACjC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EACxB,KAAK,mBAAmB,EACxB,KAAK,wBAAwB,EAC7B,KAAK,cAAc,EACnB,cAAc,EACd,KAAK,kBAAkB,EACvB,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,+BAA+B,EAC/B,2BAA2B,GAC5B,MAAM,mBAAmB,CAAC"}
@@ -1,5 +1,7 @@
1
1
  // Core types and base class
2
2
  export { BaseReporter, } from './reporter.js';
3
+ // Progress formatting helpers
4
+ export { formatProgressInline, formatProgressResult, isEmptyTestRun, summarizeFailure, } from './progress-format.js';
3
5
  export { LiveStateTracker } from './state/live-state-tracker.js';
4
6
  export { LoadedStateTracker } from './state/loaded-state-tracker.js';
5
7
  // Reporter implementations
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/reporting/index.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,OAAO,EACL,YAAY,GAMb,MAAM,eAAe,CAAC;AAOvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAErE,2BAA2B;AAC3B,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EACL,cAAc,GAEf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,eAAe,GAEhB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,eAAe,GAEhB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,oBAAoB,GAErB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EAIxB,cAAc,EAId,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,+BAA+B,EAC/B,2BAA2B,GAC5B,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/reporting/index.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,OAAO,EACL,YAAY,GAUb,MAAM,eAAe,CAAC;AAEvB,8BAA8B;AAC9B,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,cAAc,EACd,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAO9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAErE,2BAA2B;AAC3B,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EACL,cAAc,GAEf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,eAAe,GAEhB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,eAAe,GAEhB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,oBAAoB,GAErB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EAIxB,cAAc,EAId,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,+BAA+B,EAC/B,2BAA2B,GAC5B,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Formatting helpers for ProgressSummary values.
3
+ */
4
+ import { type ProgressSummary, type JobPhase } from './reporter.js';
5
+ /**
6
+ * Format progress for inline display in spinners and running status.
7
+ * Returns empty string when progress is undefined.
8
+ *
9
+ * - test-counts: "(5/23)"
10
+ * - bytes: "12.3 MB" or "45%"
11
+ * - steps: "(3/10)"
12
+ */
13
+ export declare function formatProgressInline(progress?: ProgressSummary): string;
14
+ /**
15
+ * Format progress for final result display (passed/failed lines).
16
+ * Returns empty string when progress is undefined.
17
+ *
18
+ * - test-counts: "(23/100)" or "(0/0)"
19
+ * - bytes: "(12.3 MB)"
20
+ * - steps: "(3/10)"
21
+ */
22
+ export declare function formatProgressResult(progress?: ProgressSummary): string;
23
+ /** True when progress is test-counts with total === 0. */
24
+ export declare function isEmptyTestRun(progress?: ProgressSummary): boolean;
25
+ /**
26
+ * Condense a raw error string and optional failedPhase into a short one-liner.
27
+ *
28
+ * Examples:
29
+ * summarizeFailure("Upload failed: 409 Conflict: {...}", "uploading")
30
+ * → "at uploading: Upload failed (409)"
31
+ * summarizeFailure("timeout after 120s", "executing")
32
+ * → "at executing: timeout after 120s"
33
+ */
34
+ export declare function summarizeFailure(error?: string, failedPhase?: JobPhase): string;
35
+ //# sourceMappingURL=progress-format.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"progress-format.d.ts","sourceRoot":"","sources":["../../src/reporting/progress-format.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEpE;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,CAAC,EAAE,eAAe,GAAG,MAAM,CAkBvE;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,CAAC,EAAE,eAAe,GAAG,MAAM,CAWvE;AAED,0DAA0D;AAC1D,wBAAgB,cAAc,CAAC,QAAQ,CAAC,EAAE,eAAe,GAAG,OAAO,CAElE;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,CAAC,EAAE,MAAM,EACd,WAAW,CAAC,EAAE,QAAQ,GACrB,MAAM,CAkBR"}