reviewflow 3.40.2 → 3.42.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 (114) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/dist/dashboard/index.html +32 -214
  3. package/dist/dashboard/modules/i18n.d.ts.map +1 -1
  4. package/dist/dashboard/modules/i18n.js +22 -2
  5. package/dist/dashboard/modules/i18n.js.map +1 -1
  6. package/dist/dashboard/modules/statsCharts.d.ts.map +1 -1
  7. package/dist/dashboard/modules/statsCharts.js +43 -28
  8. package/dist/dashboard/modules/statsCharts.js.map +1 -1
  9. package/dist/dashboard/modules/statsPage.d.ts +15 -0
  10. package/dist/dashboard/modules/statsPage.d.ts.map +1 -0
  11. package/dist/dashboard/modules/statsPage.js +250 -0
  12. package/dist/dashboard/modules/statsPage.js.map +1 -0
  13. package/dist/dashboard/stats.html +371 -0
  14. package/dist/dashboard/styles.css +43 -8
  15. package/dist/main/routes.d.ts.map +1 -1
  16. package/dist/main/routes.js +14 -4
  17. package/dist/main/routes.js.map +1 -1
  18. package/dist/modules/statistics-insights/entities/stats/keyInsights.d.ts +4 -3
  19. package/dist/modules/statistics-insights/entities/stats/keyInsights.d.ts.map +1 -1
  20. package/dist/modules/statistics-insights/entities/stats/keyInsights.js +27 -7
  21. package/dist/modules/statistics-insights/entities/stats/keyInsights.js.map +1 -1
  22. package/dist/modules/statistics-insights/entities/stats/projectStats.d.ts.map +1 -1
  23. package/dist/modules/statistics-insights/entities/stats/projectStats.guard.d.ts +4 -0
  24. package/dist/modules/statistics-insights/entities/stats/projectStats.guard.d.ts.map +1 -1
  25. package/dist/modules/statistics-insights/entities/stats/projectStats.js +2 -0
  26. package/dist/modules/statistics-insights/entities/stats/projectStats.js.map +1 -1
  27. package/dist/modules/statistics-insights/entities/stats/projectStats.schema.d.ts +2 -0
  28. package/dist/modules/statistics-insights/entities/stats/projectStats.schema.d.ts.map +1 -1
  29. package/dist/modules/statistics-insights/entities/stats/projectStats.schema.js +2 -0
  30. package/dist/modules/statistics-insights/entities/stats/projectStats.schema.js.map +1 -1
  31. package/dist/modules/statistics-insights/interface-adapters/presenters/statsSummary.presenter.d.ts +9 -0
  32. package/dist/modules/statistics-insights/interface-adapters/presenters/statsSummary.presenter.d.ts.map +1 -1
  33. package/dist/modules/statistics-insights/interface-adapters/presenters/statsSummary.presenter.js +26 -1
  34. package/dist/modules/statistics-insights/interface-adapters/presenters/statsSummary.presenter.js.map +1 -1
  35. package/dist/modules/statistics-insights/usecases/stats/addReviewStats.usecase.js +2 -0
  36. package/dist/modules/statistics-insights/usecases/stats/addReviewStats.usecase.js.map +1 -1
  37. package/dist/modules/statistics-insights/usecases/stats/recalculateProjectStats.usecase.d.ts.map +1 -1
  38. package/dist/modules/statistics-insights/usecases/stats/recalculateProjectStats.usecase.js +6 -0
  39. package/dist/modules/statistics-insights/usecases/stats/recalculateProjectStats.usecase.js.map +1 -1
  40. package/dist/modules/tracking/interface-adapters/controllers/http/mrTracking.routes.d.ts +9 -1
  41. package/dist/modules/tracking/interface-adapters/controllers/http/mrTracking.routes.d.ts.map +1 -1
  42. package/dist/modules/tracking/interface-adapters/controllers/http/mrTracking.routes.js +14 -25
  43. package/dist/modules/tracking/interface-adapters/controllers/http/mrTracking.routes.js.map +1 -1
  44. package/dist/modules/tracking/usecases/tracking/markReviewAsMerged.usecase.d.ts +33 -0
  45. package/dist/modules/tracking/usecases/tracking/markReviewAsMerged.usecase.d.ts.map +1 -0
  46. package/dist/modules/tracking/usecases/tracking/markReviewAsMerged.usecase.js +42 -0
  47. package/dist/modules/tracking/usecases/tracking/markReviewAsMerged.usecase.js.map +1 -0
  48. package/dist/modules/worktree-management/interface-adapters/gateways/worktree.fileSystem.gateway.d.ts.map +1 -1
  49. package/dist/modules/worktree-management/interface-adapters/gateways/worktree.fileSystem.gateway.js +2 -1
  50. package/dist/modules/worktree-management/interface-adapters/gateways/worktree.fileSystem.gateway.js.map +1 -1
  51. package/dist/modules/worktree-management/usecases/ensureWorktree.usecase.d.ts +1 -0
  52. package/dist/modules/worktree-management/usecases/ensureWorktree.usecase.d.ts.map +1 -1
  53. package/dist/modules/worktree-management/usecases/ensureWorktree.usecase.js +17 -1
  54. package/dist/modules/worktree-management/usecases/ensureWorktree.usecase.js.map +1 -1
  55. package/dist/tests/acceptance/170-prebuilt-worktree-lifecycle.acceptance.test.js +3 -0
  56. package/dist/tests/acceptance/170-prebuilt-worktree-lifecycle.acceptance.test.js.map +1 -1
  57. package/dist/tests/acceptance/180-quality-threshold-block-approval.acceptance.test.js +7 -0
  58. package/dist/tests/acceptance/180-quality-threshold-block-approval.acceptance.test.js.map +1 -1
  59. package/dist/tests/acceptance/215-mark-any-review-as-merged.acceptance.test.d.ts +12 -0
  60. package/dist/tests/acceptance/215-mark-any-review-as-merged.acceptance.test.d.ts.map +1 -0
  61. package/dist/tests/acceptance/215-mark-any-review-as-merged.acceptance.test.js +158 -0
  62. package/dist/tests/acceptance/215-mark-any-review-as-merged.acceptance.test.js.map +1 -0
  63. package/dist/tests/acceptance/80-split-stats-service.acceptance.test.js +8 -1
  64. package/dist/tests/acceptance/80-split-stats-service.acceptance.test.js.map +1 -1
  65. package/dist/tests/factories/projectStats.factory.d.ts.map +1 -1
  66. package/dist/tests/factories/projectStats.factory.js +3 -0
  67. package/dist/tests/factories/projectStats.factory.js.map +1 -1
  68. package/dist/tests/units/dashboard/dashboardLayout.test.js +11 -18
  69. package/dist/tests/units/dashboard/dashboardLayout.test.js.map +1 -1
  70. package/dist/tests/units/dashboard/modules/i18n.test.js +24 -0
  71. package/dist/tests/units/dashboard/modules/i18n.test.js.map +1 -1
  72. package/dist/tests/units/dashboard/modules/statsCharts.test.js +37 -0
  73. package/dist/tests/units/dashboard/modules/statsCharts.test.js.map +1 -1
  74. package/dist/tests/units/dashboard/modules/statsPage.test.d.ts +2 -0
  75. package/dist/tests/units/dashboard/modules/statsPage.test.d.ts.map +1 -0
  76. package/dist/tests/units/dashboard/modules/statsPage.test.js +169 -0
  77. package/dist/tests/units/dashboard/modules/statsPage.test.js.map +1 -0
  78. package/dist/tests/units/interface-adapters/presenters/statsSummary.presenter.test.js +65 -1
  79. package/dist/tests/units/interface-adapters/presenters/statsSummary.presenter.test.js.map +1 -1
  80. package/dist/tests/units/modules/statistics-insights/entities/stats/keyInsights.test.js +49 -0
  81. package/dist/tests/units/modules/statistics-insights/entities/stats/keyInsights.test.js.map +1 -1
  82. package/dist/tests/units/modules/statistics-insights/entities/stats/reviewOutput.parser.test.d.ts.map +1 -0
  83. package/dist/tests/units/{entities → modules/statistics-insights/entities}/stats/reviewOutput.parser.test.js +1 -1
  84. package/dist/tests/units/modules/statistics-insights/entities/stats/reviewOutput.parser.test.js.map +1 -0
  85. package/dist/tests/units/modules/statistics-insights/interface-adapters/presenters/keyInsights.presenter.test.js +24 -0
  86. package/dist/tests/units/modules/statistics-insights/interface-adapters/presenters/keyInsights.presenter.test.js.map +1 -1
  87. package/dist/tests/units/modules/statistics-insights/usecases/stats/addReviewStats.counter.test.d.ts +2 -0
  88. package/dist/tests/units/modules/statistics-insights/usecases/stats/addReviewStats.counter.test.d.ts.map +1 -0
  89. package/dist/tests/units/modules/statistics-insights/usecases/stats/addReviewStats.counter.test.js +95 -0
  90. package/dist/tests/units/modules/statistics-insights/usecases/stats/addReviewStats.counter.test.js.map +1 -0
  91. package/dist/tests/units/modules/tracking/interface-adapters/controllers/http/mrTracking.markAsMerged.routes.test.d.ts +2 -0
  92. package/dist/tests/units/modules/tracking/interface-adapters/controllers/http/mrTracking.markAsMerged.routes.test.d.ts.map +1 -0
  93. package/dist/tests/units/modules/tracking/interface-adapters/controllers/http/mrTracking.markAsMerged.routes.test.js +108 -0
  94. package/dist/tests/units/modules/tracking/interface-adapters/controllers/http/mrTracking.markAsMerged.routes.test.js.map +1 -0
  95. package/dist/tests/units/modules/tracking/interface-adapters/controllers/http/mrTracking.routes.test.js +11 -5
  96. package/dist/tests/units/modules/tracking/interface-adapters/controllers/http/mrTracking.routes.test.js.map +1 -1
  97. package/dist/tests/units/modules/tracking/usecases/tracking/markReviewAsMerged.usecase.test.d.ts +2 -0
  98. package/dist/tests/units/modules/tracking/usecases/tracking/markReviewAsMerged.usecase.test.d.ts.map +1 -0
  99. package/dist/tests/units/modules/tracking/usecases/tracking/markReviewAsMerged.usecase.test.js +138 -0
  100. package/dist/tests/units/modules/tracking/usecases/tracking/markReviewAsMerged.usecase.test.js.map +1 -0
  101. package/dist/tests/units/modules/worktree-management/usecases/ensureWorktree.usecase.test.js +71 -34
  102. package/dist/tests/units/modules/worktree-management/usecases/ensureWorktree.usecase.test.js.map +1 -1
  103. package/dist/tests/units/usecases/stats/addReviewStats.usecase.test.js +4 -0
  104. package/dist/tests/units/usecases/stats/addReviewStats.usecase.test.js.map +1 -1
  105. package/dist/tests/units/usecases/stats/recalculateProjectStats.usecase.test.js +6 -0
  106. package/dist/tests/units/usecases/stats/recalculateProjectStats.usecase.test.js.map +1 -1
  107. package/package.json +1 -1
  108. package/dist/tests/acceptance/182-mark-pending-fix-as-merged.acceptance.test.d.ts +0 -19
  109. package/dist/tests/acceptance/182-mark-pending-fix-as-merged.acceptance.test.d.ts.map +0 -1
  110. package/dist/tests/acceptance/182-mark-pending-fix-as-merged.acceptance.test.js +0 -157
  111. package/dist/tests/acceptance/182-mark-pending-fix-as-merged.acceptance.test.js.map +0 -1
  112. package/dist/tests/units/entities/stats/reviewOutput.parser.test.d.ts.map +0 -1
  113. package/dist/tests/units/entities/stats/reviewOutput.parser.test.js.map +0 -1
  114. /package/dist/tests/units/{entities → modules/statistics-insights/entities}/stats/reviewOutput.parser.test.d.ts +0 -0
@@ -1,5 +1,5 @@
1
1
  import type { ProjectStats } from '../../../../modules/statistics-insights/entities/stats/projectStats.js';
2
- export type KeyInsightKey = 'reviewVolume' | 'dominantCategory' | 'reviewTime';
2
+ export type KeyInsightKey = 'codeVolume' | 'reviewVolume' | 'dominantCategory' | 'reviewTime';
3
3
  /**
4
4
  * A single key insight derived from recorded stats. `title` and `body` are
5
5
  * generated English narrative text; `strength` is a ranking weight (larger is
@@ -14,8 +14,9 @@ export interface KeyInsight {
14
14
  /**
15
15
  * Derive the ranked key insights from already-recorded project stats. Pure and
16
16
  * deterministic — `now` is injected so the helper never reads the wall clock.
17
- * Candidates that fail their data/threshold gate are omitted. The result is
18
- * sorted by `strength` descending and is empty when no candidate qualifies.
17
+ * Candidates that fail their data/threshold gate are omitted. Trend candidates
18
+ * are sorted by `strength` descending; the code-volume assessment is always
19
+ * pinned first when diff data exists. Empty when no candidate qualifies.
19
20
  */
20
21
  export declare function deriveKeyInsights(stats: ProjectStats, now: Date): KeyInsight[];
21
22
  //# sourceMappingURL=keyInsights.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"keyInsights.d.ts","sourceRoot":"","sources":["../../../../../src/modules/statistics-insights/entities/stats/keyInsights.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,YAAY,EAEb,MAAM,8DAA8D,CAAC;AAGtE,MAAM,MAAM,aAAa,GAAG,cAAc,GAAG,kBAAkB,GAAG,YAAY,CAAC;AAS/E;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,aAAa,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AA2FD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,IAAI,GAAG,UAAU,EAAE,CAa9E"}
1
+ {"version":3,"file":"keyInsights.d.ts","sourceRoot":"","sources":["../../../../../src/modules/statistics-insights/entities/stats/keyInsights.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,YAAY,EAEb,MAAM,8DAA8D,CAAC;AAGtE,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,cAAc,GAAG,kBAAkB,GAAG,YAAY,CAAC;AAW9F;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,aAAa,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAgHD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,IAAI,GAAG,UAAU,EAAE,CAgB9E"}
@@ -6,6 +6,8 @@ const TIME_MIN_RELATIVE_CHANGE = 0.1;
6
6
  const VOLUME_MIN_RELATIVE_CHANGE = 0.1;
7
7
  const VOLUME_PERIOD_DAYS = 30;
8
8
  const MILLISECONDS_PER_DAY = 24 * 60 * 60 * 1000;
9
+ const SUBSTANTIAL_AVERAGE_LINES = 200;
10
+ const PINNED_STRENGTH = Number.POSITIVE_INFINITY;
9
11
  function formatSignedPercent(relativeChange, sign) {
10
12
  const prefix = sign === 'up' ? '+' : '-';
11
13
  return `${prefix}${Math.round(relativeChange * 100)}%`;
@@ -79,23 +81,41 @@ function reviewTimeInsight(reviews) {
79
81
  strength: relativeChange,
80
82
  };
81
83
  }
84
+ function codeVolumeInsight(stats) {
85
+ const totalLines = stats.totalAdditions + stats.totalDeletions;
86
+ const totalCommits = stats.totalCommits ?? 0;
87
+ if (totalLines === 0 && totalCommits === 0)
88
+ return null;
89
+ const averageLines = Math.round((stats.averageAdditions ?? 0) + (stats.averageDeletions ?? 0));
90
+ const averageCommits = stats.averageCommits ?? 0;
91
+ const substantial = averageLines >= SUBSTANTIAL_AVERAGE_LINES;
92
+ return {
93
+ key: 'codeVolume',
94
+ title: substantial ? 'Substantial code volume' : 'Lean changesets',
95
+ body: `${totalLines.toLocaleString('en-US')} lines across ${totalCommits.toLocaleString('en-US')} commits (avg ${averageLines.toLocaleString('en-US')} lines, ${averageCommits.toFixed(1)} commits/MR)`,
96
+ strength: PINNED_STRENGTH,
97
+ };
98
+ }
82
99
  /**
83
100
  * Derive the ranked key insights from already-recorded project stats. Pure and
84
101
  * deterministic — `now` is injected so the helper never reads the wall clock.
85
- * Candidates that fail their data/threshold gate are omitted. The result is
86
- * sorted by `strength` descending and is empty when no candidate qualifies.
102
+ * Candidates that fail their data/threshold gate are omitted. Trend candidates
103
+ * are sorted by `strength` descending; the code-volume assessment is always
104
+ * pinned first when diff data exists. Empty when no candidate qualifies.
87
105
  */
88
106
  export function deriveKeyInsights(stats, now) {
89
- const insights = [];
107
+ const trends = [];
90
108
  const reviewVolume = reviewVolumeInsight(stats.reviews, now);
91
109
  if (reviewVolume !== null)
92
- insights.push(reviewVolume);
110
+ trends.push(reviewVolume);
93
111
  const category = dominantCategoryInsight(stats.categoryBreakdown ?? null);
94
112
  if (category !== null)
95
- insights.push(category);
113
+ trends.push(category);
96
114
  const reviewTime = reviewTimeInsight(stats.reviews);
97
115
  if (reviewTime !== null)
98
- insights.push(reviewTime);
99
- return insights.toSorted((left, right) => right.strength - left.strength);
116
+ trends.push(reviewTime);
117
+ const ranked = trends.toSorted((left, right) => right.strength - left.strength);
118
+ const codeVolume = codeVolumeInsight(stats);
119
+ return codeVolume !== null ? [codeVolume, ...ranked] : ranked;
100
120
  }
101
121
  //# sourceMappingURL=keyInsights.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"keyInsights.js","sourceRoot":"","sources":["../../../../../src/modules/statistics-insights/entities/stats/keyInsights.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"keyInsights.js","sourceRoot":"","sources":["../../../../../src/modules/statistics-insights/entities/stats/keyInsights.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"projectStats.d.ts","sourceRoot":"","sources":["../../../../../src/modules/statistics-insights/entities/stats/projectStats.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B,OAAO,KAAK,EACV,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,qEAAqE,CAAC;AAE7E;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,YAAY,CAe/C"}
1
+ {"version":3,"file":"projectStats.d.ts","sourceRoot":"","sources":["../../../../../src/modules/statistics-insights/entities/stats/projectStats.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B,OAAO,KAAK,EACV,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,qEAAqE,CAAC;AAE7E;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,YAAY,CAiB/C"}
@@ -34,6 +34,8 @@ export declare const isValidProjectStats: (data: unknown) => data is {
34
34
  totalDeletions: number;
35
35
  averageAdditions: number | null;
36
36
  averageDeletions: number | null;
37
+ totalCommits?: number | undefined;
38
+ averageCommits?: number | null | undefined;
37
39
  totalScoreSum?: number | undefined;
38
40
  scoredReviewCount?: number | undefined;
39
41
  diffStatsReviewCount?: number | undefined;
@@ -82,6 +84,8 @@ export declare const safeParseProjectStats: (data: unknown) => import("zod").Zod
82
84
  totalDeletions: number;
83
85
  averageAdditions: number | null;
84
86
  averageDeletions: number | null;
87
+ totalCommits?: number | undefined;
88
+ averageCommits?: number | null | undefined;
85
89
  totalScoreSum?: number | undefined;
86
90
  scoredReviewCount?: number | undefined;
87
91
  diffStatsReviewCount?: number | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"projectStats.guard.d.ts","sourceRoot":"","sources":["../../../../../src/modules/statistics-insights/entities/stats/projectStats.guard.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAA4B,CAAC;AAC7D,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAA8B,CAAC"}
1
+ {"version":3,"file":"projectStats.guard.d.ts","sourceRoot":"","sources":["../../../../../src/modules/statistics-insights/entities/stats/projectStats.guard.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAA4B,CAAC;AAC7D,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAA8B,CAAC"}
@@ -15,6 +15,8 @@ export function createEmptyStats() {
15
15
  totalDeletions: 0,
16
16
  averageAdditions: null,
17
17
  averageDeletions: null,
18
+ totalCommits: 0,
19
+ averageCommits: null,
18
20
  reviews: [],
19
21
  lastUpdated: new Date().toISOString(),
20
22
  };
@@ -1 +1 @@
1
- {"version":3,"file":"projectStats.js","sourceRoot":"","sources":["../../../../../src/modules/statistics-insights/entities/stats/projectStats.ts"],"names":[],"mappings":"AAmBA;;;;GAIG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO;QACL,YAAY,EAAE,CAAC;QACf,aAAa,EAAE,CAAC;QAChB,YAAY,EAAE,IAAI;QAClB,eAAe,EAAE,CAAC;QAClB,aAAa,EAAE,CAAC;QAChB,aAAa,EAAE,CAAC;QAChB,cAAc,EAAE,CAAC;QACjB,cAAc,EAAE,CAAC;QACjB,gBAAgB,EAAE,IAAI;QACtB,gBAAgB,EAAE,IAAI;QACtB,OAAO,EAAE,EAAE;QACX,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACtC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"projectStats.js","sourceRoot":"","sources":["../../../../../src/modules/statistics-insights/entities/stats/projectStats.ts"],"names":[],"mappings":"AAmBA;;;;GAIG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO;QACL,YAAY,EAAE,CAAC;QACf,aAAa,EAAE,CAAC;QAChB,YAAY,EAAE,IAAI;QAClB,eAAe,EAAE,CAAC;QAClB,aAAa,EAAE,CAAC;QAChB,aAAa,EAAE,CAAC;QAChB,cAAc,EAAE,CAAC;QACjB,cAAc,EAAE,CAAC;QACjB,gBAAgB,EAAE,IAAI;QACtB,gBAAgB,EAAE,IAAI;QACtB,YAAY,EAAE,CAAC;QACf,cAAc,EAAE,IAAI;QACpB,OAAO,EAAE,EAAE;QACX,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACtC,CAAC;AACJ,CAAC"}
@@ -59,6 +59,8 @@ export declare const projectStatsSchema: z.ZodObject<{
59
59
  totalDeletions: z.ZodNumber;
60
60
  averageAdditions: z.ZodNullable<z.ZodNumber>;
61
61
  averageDeletions: z.ZodNullable<z.ZodNumber>;
62
+ totalCommits: z.ZodOptional<z.ZodNumber>;
63
+ averageCommits: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
62
64
  totalScoreSum: z.ZodOptional<z.ZodNumber>;
63
65
  scoredReviewCount: z.ZodOptional<z.ZodNumber>;
64
66
  diffStatsReviewCount: z.ZodOptional<z.ZodNumber>;
@@ -1 +1 @@
1
- {"version":3,"file":"projectStats.schema.d.ts","sourceRoot":"","sources":["../../../../../src/modules/statistics-insights/entities/stats/projectStats.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAUxB,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;iBAY5B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAiB7B,CAAC"}
1
+ {"version":3,"file":"projectStats.schema.d.ts","sourceRoot":"","sources":["../../../../../src/modules/statistics-insights/entities/stats/projectStats.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAUxB,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;iBAY5B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAmB7B,CAAC"}
@@ -31,6 +31,8 @@ export const projectStatsSchema = z.object({
31
31
  totalDeletions: z.number(),
32
32
  averageAdditions: z.number().nullable(),
33
33
  averageDeletions: z.number().nullable(),
34
+ totalCommits: z.number().optional(),
35
+ averageCommits: z.number().nullable().optional(),
34
36
  totalScoreSum: z.number().optional(),
35
37
  scoredReviewCount: z.number().optional(),
36
38
  diffStatsReviewCount: z.number().optional(),
@@ -1 +1 @@
1
- {"version":3,"file":"projectStats.schema.js","sourceRoot":"","sources":["../../../../../src/modules/statistics-insights/entities/stats/projectStats.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,uBAAuB,EAAE,MAAM,0EAA0E,CAAC;AAEnH,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;CACtB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,SAAS,EAAE,eAAe,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAChD,iBAAiB,EAAE,uBAAuB,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CACjE,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;IACzB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE;IAC3B,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;IACzB,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;IACzB,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC;IACnC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;IAC1B,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;IAC1B,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACvC,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACvC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACxC,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3C,iBAAiB,EAAE,uBAAuB,CAAC,QAAQ,EAAE;CACtD,CAAC,CAAC"}
1
+ {"version":3,"file":"projectStats.schema.js","sourceRoot":"","sources":["../../../../../src/modules/statistics-insights/entities/stats/projectStats.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,uBAAuB,EAAE,MAAM,0EAA0E,CAAC;AAEnH,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;CACtB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,SAAS,EAAE,eAAe,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAChD,iBAAiB,EAAE,uBAAuB,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CACjE,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;IACzB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE;IAC3B,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;IACzB,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;IACzB,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC;IACnC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;IAC1B,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;IAC1B,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACvC,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACvC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAChD,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACxC,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3C,iBAAiB,EAAE,uBAAuB,CAAC,QAAQ,EAAE;CACtD,CAAC,CAAC"}
@@ -1,6 +1,11 @@
1
1
  import type { ProjectStats } from '../../../../modules/statistics-insights/entities/stats/projectStats.js';
2
2
  import type { Presenter } from '../../../../shared/foundation/presenter.base.js';
3
3
  type Trend = 'up' | 'down' | 'stable';
4
+ export interface StatsPeriod {
5
+ from: string;
6
+ to: string;
7
+ days: number;
8
+ }
4
9
  export interface StatsSummaryViewModel {
5
10
  totalReviews: number;
6
11
  totalTime: string;
@@ -8,11 +13,15 @@ export interface StatsSummaryViewModel {
8
13
  averageScore: string;
9
14
  totalBlocking: number;
10
15
  totalWarnings: number;
16
+ bugsDetected: number;
11
17
  totalAdditions: number;
12
18
  totalDeletions: number;
19
+ totalCommits: number;
13
20
  averageAdditions: string;
14
21
  averageDeletions: string;
22
+ averageCommits: string;
15
23
  totalLinesReviewed: number;
24
+ period: StatsPeriod | null;
16
25
  trend: {
17
26
  score: Trend;
18
27
  blocking: Trend;
@@ -1 +1 @@
1
- {"version":3,"file":"statsSummary.presenter.d.ts","sourceRoot":"","sources":["../../../../../src/modules/statistics-insights/interface-adapters/presenters/statsSummary.presenter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EAEb,MAAM,8DAA8D,CAAC;AAEtE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uCAAuC,CAAC;AAEvE,KAAK,KAAK,GAAG,IAAI,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEtC,MAAM,WAAW,qBAAqB;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,KAAK,EAAE;QAAE,KAAK,EAAE,KAAK,CAAC;QAAC,QAAQ,EAAE,KAAK,CAAA;KAAE,CAAC;CAC1C;AAkCD,qBAAa,qBAAsB,YAAW,SAAS,CAAC,YAAY,EAAE,qBAAqB,CAAC;IAC1F,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,qBAAqB;CAgBpD"}
1
+ {"version":3,"file":"statsSummary.presenter.d.ts","sourceRoot":"","sources":["../../../../../src/modules/statistics-insights/interface-adapters/presenters/statsSummary.presenter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EAEb,MAAM,8DAA8D,CAAC;AAEtE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uCAAuC,CAAC;AAEvE,KAAK,KAAK,GAAG,IAAI,GAAG,MAAM,GAAG,QAAQ,CAAC;AAItC,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,qBAAqB;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;IAC3B,KAAK,EAAE;QAAE,KAAK,EAAE,KAAK,CAAC;QAAC,QAAQ,EAAE,KAAK,CAAA;KAAE,CAAC;CAC1C;AAsDD,qBAAa,qBAAsB,YAAW,SAAS,CAAC,YAAY,EAAE,qBAAqB,CAAC;IAC1F,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,qBAAqB;CAqBpD"}
@@ -1,4 +1,24 @@
1
1
  import { formatReviewDuration } from '../../../../modules/statistics-insights/entities/stats/reviewDuration.format.js';
2
+ const MILLISECONDS_PER_DAY = 24 * 60 * 60 * 1000;
3
+ function formatPeriodDate(timestamp) {
4
+ return new Date(timestamp).toLocaleDateString('en-GB', {
5
+ day: 'numeric',
6
+ month: 'short',
7
+ year: 'numeric',
8
+ });
9
+ }
10
+ function periodOf(reviews) {
11
+ if (reviews.length === 0)
12
+ return null;
13
+ const times = reviews.map((review) => new Date(review.timestamp).getTime());
14
+ const from = Math.min(...times);
15
+ const to = Math.max(...times);
16
+ return {
17
+ from: formatPeriodDate(from),
18
+ to: formatPeriodDate(to),
19
+ days: Math.round((to - from) / MILLISECONDS_PER_DAY),
20
+ };
21
+ }
2
22
  function averageScoreOf(reviews) {
3
23
  const scored = reviews.filter((review) => review.score !== null);
4
24
  if (scored.length === 0)
@@ -33,18 +53,23 @@ function computeTrend(stats) {
33
53
  }
34
54
  export class StatsSummaryPresenter {
35
55
  present(stats) {
56
+ const averageScore = averageScoreOf(stats.reviews);
36
57
  return {
37
58
  totalReviews: stats.totalReviews,
38
59
  totalTime: formatReviewDuration(stats.totalDuration),
39
60
  averageTime: formatReviewDuration(stats.averageDuration),
40
- averageScore: stats.averageScore !== null ? stats.averageScore.toFixed(1) : '-',
61
+ averageScore: averageScore !== null ? averageScore.toFixed(1) : '-',
41
62
  totalBlocking: stats.totalBlocking,
42
63
  totalWarnings: stats.totalWarnings,
64
+ bugsDetected: stats.totalBlocking + stats.totalWarnings,
43
65
  totalAdditions: stats.totalAdditions,
44
66
  totalDeletions: stats.totalDeletions,
67
+ totalCommits: stats.totalCommits ?? 0,
45
68
  averageAdditions: stats.averageAdditions !== null ? stats.averageAdditions.toFixed(1) : '-',
46
69
  averageDeletions: stats.averageDeletions !== null ? stats.averageDeletions.toFixed(1) : '-',
70
+ averageCommits: stats.averageCommits != null ? stats.averageCommits.toFixed(1) : '-',
47
71
  totalLinesReviewed: stats.totalAdditions + stats.totalDeletions,
72
+ period: periodOf(stats.reviews),
48
73
  trend: computeTrend(stats),
49
74
  };
50
75
  }
@@ -1 +1 @@
1
- {"version":3,"file":"statsSummary.presenter.js","sourceRoot":"","sources":["../../../../../src/modules/statistics-insights/interface-adapters/presenters/statsSummary.presenter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"statsSummary.presenter.js","sourceRoot":"","sources":["../../../../../src/modules/statistics-insights/interface-adapters/presenters/statsSummary.presenter.ts"],"names":[],"mappings":"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"}
@@ -71,11 +71,13 @@ function updateAggregatesForNewReview(stats, review) {
71
71
  if (review.diffStats) {
72
72
  stats.totalAdditions += review.diffStats.additions;
73
73
  stats.totalDeletions += review.diffStats.deletions;
74
+ stats.totalCommits = (stats.totalCommits ?? 0) + review.diffStats.commitsCount;
74
75
  stats.diffStatsReviewCount = (stats.diffStatsReviewCount ?? 0) + 1;
75
76
  }
76
77
  if (stats.diffStatsReviewCount && stats.diffStatsReviewCount > 0) {
77
78
  stats.averageAdditions = stats.totalAdditions / stats.diffStatsReviewCount;
78
79
  stats.averageDeletions = stats.totalDeletions / stats.diffStatsReviewCount;
80
+ stats.averageCommits = (stats.totalCommits ?? 0) / stats.diffStatsReviewCount;
79
81
  }
80
82
  if (review.categoryBreakdown != null) {
81
83
  stats.categoryBreakdown = stats.categoryBreakdown ?? emptyBreakdown();
@@ -1 +1 @@
1
- {"version":3,"file":"addReviewStats.usecase.js","sourceRoot":"","sources":["../../../../../src/modules/statistics-insights/usecases/stats/addReviewStats.usecase.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"addReviewStats.usecase.js","sourceRoot":"","sources":["../../../../../src/modules/statistics-insights/usecases/stats/addReviewStats.usecase.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"recalculateProjectStats.usecase.d.ts","sourceRoot":"","sources":["../../../../../src/modules/statistics-insights/usecases/stats/recalculateProjectStats.usecase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8DAA8D,CAAC;AACjG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+DAA+D,CAAC;AAElG,MAAM,WAAW,mCAAmC;IAClD,YAAY,EAAE,YAAY,CAAC;CAC5B;AAED,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,mCAAmC,GAChD,YAAY,CAiEd"}
1
+ {"version":3,"file":"recalculateProjectStats.usecase.d.ts","sourceRoot":"","sources":["../../../../../src/modules/statistics-insights/usecases/stats/recalculateProjectStats.usecase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8DAA8D,CAAC;AACjG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+DAA+D,CAAC;AAElG,MAAM,WAAW,mCAAmC;IAClD,YAAY,EAAE,YAAY,CAAC;CAC5B;AAED,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,mCAAmC,GAChD,YAAY,CA0Ed"}
@@ -15,6 +15,8 @@ export function recalculateProjectStats(projectPath, dependencies) {
15
15
  totalDeletions: 0,
16
16
  averageAdditions: 0,
17
17
  averageDeletions: 0,
18
+ totalCommits: 0,
19
+ averageCommits: 0,
18
20
  diffStatsReviewCount: 0,
19
21
  };
20
22
  return emptyStats;
@@ -36,14 +38,18 @@ export function recalculateProjectStats(projectPath, dependencies) {
36
38
  if (reviewsWithDiffStats.length > 0) {
37
39
  stats.totalAdditions = reviewsWithDiffStats.reduce((sum, review) => sum + (review.diffStats?.additions ?? 0), 0);
38
40
  stats.totalDeletions = reviewsWithDiffStats.reduce((sum, review) => sum + (review.diffStats?.deletions ?? 0), 0);
41
+ stats.totalCommits = reviewsWithDiffStats.reduce((sum, review) => sum + (review.diffStats?.commitsCount ?? 0), 0);
39
42
  stats.averageAdditions = stats.totalAdditions / reviewsWithDiffStats.length;
40
43
  stats.averageDeletions = stats.totalDeletions / reviewsWithDiffStats.length;
44
+ stats.averageCommits = stats.totalCommits / reviewsWithDiffStats.length;
41
45
  }
42
46
  else {
43
47
  stats.totalAdditions = 0;
44
48
  stats.totalDeletions = 0;
45
49
  stats.averageAdditions = 0;
46
50
  stats.averageDeletions = 0;
51
+ stats.totalCommits = 0;
52
+ stats.averageCommits = 0;
47
53
  }
48
54
  statsGateway.saveProjectStats(projectPath, stats);
49
55
  return stats;
@@ -1 +1 @@
1
- {"version":3,"file":"recalculateProjectStats.usecase.js","sourceRoot":"","sources":["../../../../../src/modules/statistics-insights/usecases/stats/recalculateProjectStats.usecase.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"recalculateProjectStats.usecase.js","sourceRoot":"","sources":["../../../../../src/modules/statistics-insights/usecases/stats/recalculateProjectStats.usecase.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,18 @@
1
1
  import type { FastifyPluginAsync } from 'fastify';
2
+ import type { Logger } from 'pino';
3
+ import type { ReviewContextGateway } from '../../../../../modules/review-execution/entities/reviewContext/reviewContext.gateway.js';
2
4
  import type { StatsGateway } from '../../../../../modules/statistics-insights/entities/stats/stats.gateway.js';
3
- import type { ReviewRequestTrackingGateway } from '../../../../../modules/tracking/entities/tracking/reviewRequestTracking.gateway.js';
5
+ import type { Platform, ReviewRequestTrackingGateway } from '../../../../../modules/tracking/entities/tracking/reviewRequestTracking.gateway.js';
6
+ import type { RemoveWorktreeAction } from '../../../../../modules/worktree-management/entities/worktree/worktree.schema.js';
4
7
  interface MrTrackingRoutesOptions {
5
8
  reviewRequestTrackingGateway: ReviewRequestTrackingGateway;
6
9
  getQualityThreshold?: (projectPath: string) => number | null;
7
10
  statsGateway?: StatsGateway;
11
+ reviewContextGateway: ReviewContextGateway;
12
+ cancelJob: (jobId: string) => boolean;
13
+ buildJobId: (platform: Platform, projectPath: string, mrNumber: number) => string;
14
+ removeWorktree: RemoveWorktreeAction;
15
+ logger: Logger;
8
16
  }
9
17
  export declare const mrTrackingRoutes: FastifyPluginAsync<MrTrackingRoutesOptions>;
10
18
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"mrTracking.routes.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/tracking/interface-adapters/controllers/http/mrTracking.routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAGlD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+DAA+D,CAAC;AAElG,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,uEAAuE,CAAC;AAI1H,UAAU,uBAAuB;IAC/B,4BAA4B,EAAE,4BAA4B,CAAC;IAC3D,mBAAmB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IAC7D,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAiBD,eAAO,MAAM,gBAAgB,EAAE,kBAAkB,CAAC,uBAAuB,CAgIxE,CAAC"}
1
+ {"version":3,"file":"mrTracking.routes.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/tracking/interface-adapters/controllers/http/mrTracking.routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAGnC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4EAA4E,CAAC;AACvH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+DAA+D,CAAC;AAElG,OAAO,KAAK,EACV,QAAQ,EACR,4BAA4B,EAC7B,MAAM,uEAAuE,CAAC;AAI/E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oEAAoE,CAAC;AAE/G,UAAU,uBAAuB;IAC/B,4BAA4B,EAAE,4BAA4B,CAAC;IAC3D,mBAAmB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IAC7D,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,oBAAoB,EAAE,oBAAoB,CAAC;IAC3C,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IACtC,UAAU,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;IAClF,cAAc,EAAE,oBAAoB,CAAC;IACrC,MAAM,EAAE,MAAM,CAAC;CAChB;AAiBD,eAAO,MAAM,gBAAgB,EAAE,kBAAkB,CAAC,uBAAuB,CA6HxE,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { logInfo, logError } from '../../../../../frameworks/logging/logBuffer.js';
2
2
  import { evaluateQualityGate } from '../../../../../modules/tracking/entities/qualityGate/qualityGate.js';
3
3
  import { MrDiffStatsPresenter } from '../../../../../modules/tracking/interface-adapters/presenters/mrDiffStats.presenter.js';
4
+ import { MarkReviewAsMergedUseCase } from '../../../../../modules/tracking/usecases/tracking/markReviewAsMerged.usecase.js';
4
5
  import { TransitionStateUseCase } from '../../../../../modules/tracking/usecases/tracking/transitionState.usecase.js';
5
6
  function validateProjectPath(path) {
6
7
  if (!path) {
@@ -13,7 +14,7 @@ function validateProjectPath(path) {
13
14
  return { valid: true, path: trimmed };
14
15
  }
15
16
  export const mrTrackingRoutes = async (fastify, opts) => {
16
- const { reviewRequestTrackingGateway, getQualityThreshold, statsGateway } = opts;
17
+ const { reviewRequestTrackingGateway, getQualityThreshold, statsGateway, reviewContextGateway, cancelJob, buildJobId, removeWorktree, logger, } = opts;
17
18
  const mrDiffStatsPresenter = new MrDiffStatsPresenter();
18
19
  fastify.get('/api/mr-tracking', async (request, reply) => {
19
20
  const validation = validateProjectPath(request.query.path);
@@ -24,11 +25,13 @@ export const mrTrackingRoutes = async (fastify, opts) => {
24
25
  try {
25
26
  const pendingFix = reviewRequestTrackingGateway.getByState(validation.path, 'pending-fix');
26
27
  const pendingApproval = reviewRequestTrackingGateway.getByState(validation.path, 'pending-approval');
28
+ const merged = reviewRequestTrackingGateway.getByState(validation.path, 'merged');
27
29
  const stats = statsGateway?.loadProjectStats(validation.path) ?? null;
28
30
  return {
29
31
  success: true,
30
32
  pendingFix: mrDiffStatsPresenter.present(pendingFix, stats),
31
33
  pendingApproval: mrDiffStatsPresenter.present(pendingApproval, stats),
34
+ merged: mrDiffStatsPresenter.present(merged, stats),
32
35
  };
33
36
  }
34
37
  catch (error) {
@@ -82,35 +85,21 @@ export const mrTrackingRoutes = async (fastify, opts) => {
82
85
  reply.code(400);
83
86
  return { success: false, error: validation.error };
84
87
  }
85
- const transitionState = new TransitionStateUseCase(reviewRequestTrackingGateway);
86
- const result = transitionState.execute({
87
- projectPath: validation.path,
88
- mrId,
89
- targetState: 'merged',
90
- requireCurrentState: 'pending-fix',
88
+ const markReviewAsMerged = new MarkReviewAsMergedUseCase({
89
+ trackingGateway: reviewRequestTrackingGateway,
90
+ reviewContextGateway,
91
+ cancelJob,
92
+ buildJobId,
93
+ removeWorktree,
94
+ logger,
91
95
  });
96
+ const result = await markReviewAsMerged.execute({ projectPath: validation.path, mrId });
92
97
  if (result.ok) {
93
98
  logInfo('MR marquée comme mergée', { mrId });
94
99
  return { success: true, mrId, message: 'MR marquée comme mergée' };
95
100
  }
96
- switch (result.reason) {
97
- case 'not-found':
98
- reply.code(404);
99
- return { success: false, error: 'MR non trouvée' };
100
- case 'invalid-current-state':
101
- reply.code(409);
102
- return {
103
- success: false,
104
- error: 'Seules les MR en correction peuvent être marquées comme mergées',
105
- };
106
- case 'quality-gate':
107
- reply.code(409);
108
- return { success: false, error: result.message };
109
- default: {
110
- const _exhaustive = result;
111
- throw new Error(`Unhandled transition rejection: ${JSON.stringify(_exhaustive)}`);
112
- }
113
- }
101
+ reply.code(404);
102
+ return { success: false, error: 'MR non trouvée' };
114
103
  });
115
104
  };
116
105
  //# sourceMappingURL=mrTracking.routes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mrTracking.routes.js","sourceRoot":"","sources":["../../../../../../src/modules/tracking/interface-adapters/controllers/http/mrTracking.routes.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAEtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wDAAwD,CAAC;AAE7F,OAAO,EAAE,oBAAoB,EAAE,MAAM,2EAA2E,CAAC;AACjH,OAAO,EAAE,sBAAsB,EAAE,MAAM,iEAAiE,CAAC;AAQzG,SAAS,mBAAmB,CAC1B,IAAwB;IAExB,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,yBAAyB,EAAE,CAAC;IAC5D,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACvD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC;IACpD,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AACxC,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAgD,KAAK,EAChF,OAAO,EACP,IAAI,EACJ,EAAE;IACF,MAAM,EAAE,4BAA4B,EAAE,mBAAmB,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;IACjF,MAAM,oBAAoB,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAExD,OAAO,CAAC,GAAG,CAAqC,kBAAkB,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QAC3F,MAAM,UAAU,GAAG,mBAAmB,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAE3D,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YACtB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAChB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,CAAC;QACrD,CAAC;QAED,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,4BAA4B,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;YAC3F,MAAM,eAAe,GAAG,4BAA4B,CAAC,UAAU,CAC7D,UAAU,CAAC,IAAI,EACf,kBAAkB,CACnB,CAAC;YACF,MAAM,KAAK,GAAG,YAAY,EAAE,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;YACtE,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,UAAU,EAAE,oBAAoB,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC;gBAC3D,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC;aACtE,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,QAAQ,CAAC,4BAA4B,EAAE,EAAE,WAAW,EAAE,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;YACzF,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;QAC5C,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,IAAI,CACV,0BAA0B,EAC1B,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QACvB,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;QAE3C,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAChB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;QAClD,CAAC;QAED,MAAM,UAAU,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;QACpD,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YACtB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAChB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,CAAC;QACrD,CAAC;QAED,MAAM,eAAe,GAAG,IAAI,sBAAsB,CAAC,4BAA4B,CAAC,CAAC;QACjF,MAAM,SAAS,GAAG,mBAAmB,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;QACjE,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC;YACrC,WAAW,EAAE,UAAU,CAAC,IAAI;YAC5B,IAAI;YACJ,WAAW,EAAE,UAAU;YACvB,YAAY,EAAE,CAAC,EAAE,EAAE,EAAE,CACnB,mBAAmB,CAAC;gBAClB,WAAW,EAAE,EAAE,CAAC,WAAW;gBAC3B,cAAc,EAAE,EAAE,CAAC,WAAW;gBAC9B,SAAS;aACV,CAAC;SACL,CAAC,CAAC;QAEH,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;YACd,OAAO,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;YAClC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,4BAA4B,EAAE,CAAC;QACxE,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,KAAK,cAAc,EAAE,CAAC;YACrC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAChB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;QACnD,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC;IACrD,CAAC,CACF,CAAC;IAEF,OAAO,CAAC,IAAI,CACV,iCAAiC,EACjC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QACvB,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;QAE3C,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAChB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;QAClD,CAAC;QAED,MAAM,UAAU,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;QACpD,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YACtB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAChB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,CAAC;QACrD,CAAC;QAED,MAAM,eAAe,GAAG,IAAI,sBAAsB,CAAC,4BAA4B,CAAC,CAAC;QACjF,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC;YACrC,WAAW,EAAE,UAAU,CAAC,IAAI;YAC5B,IAAI;YACJ,WAAW,EAAE,QAAQ;YACrB,mBAAmB,EAAE,aAAa;SACnC,CAAC,CAAC;QAEH,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;YACd,OAAO,CAAC,yBAAyB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,yBAAyB,EAAE,CAAC;QACrE,CAAC;QAED,QAAQ,MAAM,CAAC,MAAM,EAAE,CAAC;YACtB,KAAK,WAAW;gBACd,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAChB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC;YACrD,KAAK,uBAAuB;gBAC1B,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAChB,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,iEAAiE;iBACzE,CAAC;YACJ,KAAK,cAAc;gBACjB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAChB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;YACnD,OAAO,CAAC,CAAC,CAAC;gBACR,MAAM,WAAW,GAAU,MAAM,CAAC;gBAClC,MAAM,IAAI,KAAK,CAAC,mCAAmC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YACpF,CAAC;QACH,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"mrTracking.routes.js","sourceRoot":"","sources":["../../../../../../src/modules/tracking/interface-adapters/controllers/http/mrTracking.routes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import type { Logger } from 'pino';
2
+ import type { ReviewContextGateway } from '../../../../modules/review-execution/entities/reviewContext/reviewContext.gateway.js';
3
+ import type { Platform, ReviewRequestTrackingGateway } from '../../../../modules/tracking/entities/tracking/reviewRequestTracking.gateway.js';
4
+ import type { RemoveWorktreeAction } from '../../../../modules/worktree-management/entities/worktree/worktree.schema.js';
5
+ import type { UseCase } from '../../../../shared/foundation/usecase.base.js';
6
+ export interface MarkReviewAsMergedInput {
7
+ projectPath: string;
8
+ mrId: string;
9
+ }
10
+ export type MarkReviewAsMergedResult = {
11
+ ok: true;
12
+ jobCancelled: boolean;
13
+ contextReleased: boolean;
14
+ recordRetained: true;
15
+ } | {
16
+ ok: false;
17
+ reason: 'not-found';
18
+ };
19
+ export interface MarkReviewAsMergedDependencies {
20
+ trackingGateway: Pick<ReviewRequestTrackingGateway, 'getById' | 'update'>;
21
+ reviewContextGateway: Pick<ReviewContextGateway, 'delete'>;
22
+ cancelJob: (jobId: string) => boolean;
23
+ buildJobId: (platform: Platform, projectPath: string, mrNumber: number) => string;
24
+ removeWorktree: RemoveWorktreeAction;
25
+ logger: Logger;
26
+ }
27
+ export declare class MarkReviewAsMergedUseCase implements UseCase<MarkReviewAsMergedInput, Promise<MarkReviewAsMergedResult>> {
28
+ private readonly deps;
29
+ constructor(deps: MarkReviewAsMergedDependencies);
30
+ execute(input: MarkReviewAsMergedInput): Promise<MarkReviewAsMergedResult>;
31
+ private removeWorktreeBestEffort;
32
+ }
33
+ //# sourceMappingURL=markReviewAsMerged.usecase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markReviewAsMerged.usecase.d.ts","sourceRoot":"","sources":["../../../../../src/modules/tracking/usecases/tracking/markReviewAsMerged.usecase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAEnC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4EAA4E,CAAC;AACvH,OAAO,KAAK,EACV,QAAQ,EACR,4BAA4B,EAC7B,MAAM,uEAAuE,CAAC;AAE/E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oEAAoE,CAAC;AAC/G,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qCAAqC,CAAC;AAEnE,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,wBAAwB,GAChC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,YAAY,EAAE,OAAO,CAAC;IAAC,eAAe,EAAE,OAAO,CAAC;IAAC,cAAc,EAAE,IAAI,CAAA;CAAE,GACnF;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,WAAW,CAAA;CAAE,CAAC;AAEvC,MAAM,WAAW,8BAA8B;IAC7C,eAAe,EAAE,IAAI,CAAC,4BAA4B,EAAE,SAAS,GAAG,QAAQ,CAAC,CAAC;IAC1E,oBAAoB,EAAE,IAAI,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAC;IAC3D,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IACtC,UAAU,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;IAClF,cAAc,EAAE,oBAAoB,CAAC;IACrC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,yBAA0B,YAAW,OAAO,CACvD,uBAAuB,EACvB,OAAO,CAAC,wBAAwB,CAAC,CAClC;IACa,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,8BAA8B;IAE3D,OAAO,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,wBAAwB,CAAC;YAuBlE,wBAAwB;CAuBvC"}
@@ -0,0 +1,42 @@
1
+ export class MarkReviewAsMergedUseCase {
2
+ deps;
3
+ constructor(deps) {
4
+ this.deps = deps;
5
+ }
6
+ async execute(input) {
7
+ const { projectPath, mrId } = input;
8
+ const mr = this.deps.trackingGateway.getById(projectPath, mrId);
9
+ if (!mr)
10
+ return { ok: false, reason: 'not-found' };
11
+ if (mr.state === 'merged') {
12
+ return { ok: true, jobCancelled: false, contextReleased: false, recordRetained: true };
13
+ }
14
+ const jobCancelled = this.deps.cancelJob(this.deps.buildJobId(mr.platform, projectPath, mr.mrNumber));
15
+ const contextReleased = this.deps.reviewContextGateway.delete(projectPath, mrId).deleted;
16
+ await this.removeWorktreeBestEffort(mr, projectPath);
17
+ this.deps.trackingGateway.update(projectPath, mrId, {
18
+ state: 'merged',
19
+ mergedAt: new Date().toISOString(),
20
+ });
21
+ return { ok: true, jobCancelled, contextReleased, recordRetained: true };
22
+ }
23
+ async removeWorktreeBestEffort(mr, projectPath) {
24
+ try {
25
+ const removal = await this.deps.removeWorktree({
26
+ identity: { platform: mr.platform, projectPath, mrNumber: mr.mrNumber },
27
+ sourceCheckoutPath: projectPath,
28
+ });
29
+ if (removal.status === 'failed') {
30
+ this.deps.logger.warn({ projectPath, mrNumber: mr.mrNumber, warning: removal.warning }, 'removeWorktree failed on mark-as-merged');
31
+ }
32
+ }
33
+ catch (error) {
34
+ this.deps.logger.warn({
35
+ projectPath,
36
+ mrNumber: mr.mrNumber,
37
+ error: error instanceof Error ? error.message : String(error),
38
+ }, 'removeWorktree threw on mark-as-merged');
39
+ }
40
+ }
41
+ }
42
+ //# sourceMappingURL=markReviewAsMerged.usecase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markReviewAsMerged.usecase.js","sourceRoot":"","sources":["../../../../../src/modules/tracking/usecases/tracking/markReviewAsMerged.usecase.ts"],"names":[],"mappings":"AA6BA,MAAM,OAAO,yBAAyB;IAIP;IAA7B,YAA6B,IAAoC;QAApC,SAAI,GAAJ,IAAI,CAAgC;IAAG,CAAC;IAErE,KAAK,CAAC,OAAO,CAAC,KAA8B;QAC1C,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;QACpC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAChE,IAAI,CAAC,EAAE;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;QAEnD,IAAI,EAAE,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC1B,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;QACzF,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CACtC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,CAAC,QAAQ,CAAC,CAC5D,CAAC;QACF,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC;QACzF,MAAM,IAAI,CAAC,wBAAwB,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;QAErD,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,EAAE;YAClD,KAAK,EAAE,QAAQ;YACf,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACnC,CAAC,CAAC;QAEH,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;IAC3E,CAAC;IAEO,KAAK,CAAC,wBAAwB,CAAC,EAAa,EAAE,WAAmB;QACvE,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;gBAC7C,QAAQ,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE;gBACvE,kBAAkB,EAAE,WAAW;aAChC,CAAC,CAAC;YACH,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAChC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CACnB,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,EAChE,yCAAyC,CAC1C,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CACnB;gBACE,WAAW;gBACX,QAAQ,EAAE,EAAE,CAAC,QAAQ;gBACrB,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,EACD,wCAAwC,CACzC,CAAC;QACJ,CAAC;IACH,CAAC;CACF"}