reviewflow 3.43.0 → 3.43.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +13 -0
- package/dist/modules/platform-integration/usecases/guardDiffSize.usecase.d.ts.map +1 -1
- package/dist/modules/platform-integration/usecases/guardDiffSize.usecase.js +6 -3
- package/dist/modules/platform-integration/usecases/guardDiffSize.usecase.js.map +1 -1
- package/dist/tests/units/modules/platform-integration/usecases/guardDiffSize.usecase.test.js +4 -3
- package/dist/tests/units/modules/platform-integration/usecases/guardDiffSize.usecase.test.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,13 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [3.43.1](https://github.com/DGouron/review-flow/compare/reviewflow-v3.43.0...reviewflow-v3.43.1) (2026-07-15)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Fixed
|
|
12
|
+
|
|
13
|
+
* **webhook:** soften the oversized-MR split message tone ([#342](https://github.com/DGouron/review-flow/issues/342)) ([27a967f](https://github.com/DGouron/review-flow/commit/27a967f6e129998e3d6049269770a221ebf0c68f))
|
|
14
|
+
|
|
8
15
|
## [3.43.0](https://github.com/DGouron/review-flow/compare/reviewflow-v3.42.2...reviewflow-v3.43.0) (2026-07-14)
|
|
9
16
|
|
|
10
17
|
|
|
@@ -12,12 +19,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
12
19
|
|
|
13
20
|
* **templates:** add review-advanced and followup-advanced skill templates ([#337](https://github.com/DGouron/review-flow/issues/337)) ([f4aa52e](https://github.com/DGouron/review-flow/commit/f4aa52e77555a13e93492010a8bd165a3bfc6bbd))
|
|
14
21
|
|
|
22
|
+
|
|
23
|
+
### Fixed
|
|
24
|
+
|
|
25
|
+
* [#339](https://github.com/DGouron/review-flow/issues/339) dashboard loading state stuck after successful fetch ([#340](https://github.com/DGouron/review-flow/issues/340)) ([45bce47](https://github.com/DGouron/review-flow/commit/45bce4789215cb24dd556800932734e3fa6dc0e8))
|
|
26
|
+
|
|
15
27
|
## [3.42.2](https://github.com/DGouron/review-flow/compare/reviewflow-v3.42.1...reviewflow-v3.42.2) (2026-07-13)
|
|
16
28
|
|
|
17
29
|
|
|
18
30
|
### Fixed
|
|
19
31
|
|
|
20
32
|
* **claude-invocation:** strip ANSI codes before parsing --bg session id ([#334](https://github.com/DGouron/review-flow/issues/334)) ([88c66e3](https://github.com/DGouron/review-flow/commit/88c66e31b07988b3f275c803722474048e4e82a9))
|
|
33
|
+
* **setup:** write the project review-config shape the review engine actually expects ([#333](https://github.com/DGouron/review-flow/issues/333)) ([34c6c8b](https://github.com/DGouron/review-flow/commit/34c6c8b7cd6478f7aa036aca3a8c750ea8865716))
|
|
21
34
|
|
|
22
35
|
## [3.42.1](https://github.com/DGouron/review-flow/compare/reviewflow-v3.42.0...reviewflow-v3.42.1) (2026-07-13)
|
|
23
36
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guardDiffSize.usecase.d.ts","sourceRoot":"","sources":["../../../../src/modules/platform-integration/usecases/guardDiffSize.usecase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,4EAA4E,CAAC;AAE3H,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qCAAqC,CAAC;AAEnE,UAAU,kBAAkB;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,oBAAoB,GAC5B;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAE/E,UAAU,yBAAyB;IACjC,wBAAwB,EAAE,wBAAwB,CAAC;CACpD;
|
|
1
|
+
{"version":3,"file":"guardDiffSize.usecase.d.ts","sourceRoot":"","sources":["../../../../src/modules/platform-integration/usecases/guardDiffSize.usecase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,4EAA4E,CAAC;AAE3H,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qCAAqC,CAAC;AAEnE,UAAU,kBAAkB;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,oBAAoB,GAC5B;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAE/E,UAAU,yBAAyB;IACjC,wBAAwB,EAAE,wBAAwB,CAAC;CACpD;AAeD,qBAAa,oBAAqB,YAAW,OAAO,CAAC,kBAAkB,EAAE,oBAAoB,CAAC;IAChF,OAAO,CAAC,QAAQ,CAAC,YAAY;gBAAZ,YAAY,EAAE,yBAAyB;IAEpE,OAAO,CAAC,KAAK,EAAE,kBAAkB,GAAG,oBAAoB;IAuBxD,OAAO,CAAC,iBAAiB;CAU1B"}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import { evaluateDiffSizeGate } from '../../../modules/shared-kernel/entities/diffSizeGate/diffSizeGate.js';
|
|
2
2
|
function buildSplitMessage(countedLines, budget) {
|
|
3
|
-
return (`
|
|
4
|
-
`(budget ${budget})
|
|
3
|
+
return (`Petite pause avant la revue : cette merge request compte ${countedLines} lignes ` +
|
|
4
|
+
`(budget ${budget}), un peu trop pour une revue de qualité en une seule fois. ` +
|
|
5
|
+
'Découpée en plus petits morceaux, elle sera revue plus vite, plus finement, ' +
|
|
6
|
+
'et bien plus simple à corriger si besoin. Une piste pour la découper : ' +
|
|
5
7
|
'1) séparez les refactorings des nouvelles fonctionnalités, ' +
|
|
6
8
|
'2) extrayez les changements indépendants dans des MR dédiées, ' +
|
|
7
|
-
'3) limitez chaque MR à une seule intention.'
|
|
9
|
+
'3) limitez chaque MR à une seule intention. ' +
|
|
10
|
+
'Merci pour le travail, hâte de la relire découpée !');
|
|
8
11
|
}
|
|
9
12
|
export class GuardDiffSizeUseCase {
|
|
10
13
|
dependencies;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guardDiffSize.usecase.js","sourceRoot":"","sources":["../../../../src/modules/platform-integration/usecases/guardDiffSize.usecase.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,+DAA+D,CAAC;AAiBrG,SAAS,iBAAiB,CAAC,YAAoB,EAAE,MAAc;IAC7D,OAAO,CACL,
|
|
1
|
+
{"version":3,"file":"guardDiffSize.usecase.js","sourceRoot":"","sources":["../../../../src/modules/platform-integration/usecases/guardDiffSize.usecase.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,+DAA+D,CAAC;AAiBrG,SAAS,iBAAiB,CAAC,YAAoB,EAAE,MAAc;IAC7D,OAAO,CACL,4DAA4D,YAAY,UAAU;QAClF,WAAW,MAAM,8DAA8D;QAC/E,8EAA8E;QAC9E,yEAAyE;QACzE,6DAA6D;QAC7D,gEAAgE;QAChE,8CAA8C;QAC9C,qDAAqD,CACtD,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,oBAAoB;IACF;IAA7B,YAA6B,YAAuC;QAAvC,iBAAY,GAAZ,YAAY,CAA2B;IAAG,CAAC;IAExE,OAAO,CAAC,KAAyB;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC5C,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC7B,CAAC;QAED,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,oBAAoB,CAAC;YAC/D,KAAK;YACL,MAAM,EAAE,KAAK,CAAC,MAAM;SACrB,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC7B,CAAC;QAED,OAAO;YACL,IAAI,EAAE,SAAS;YACf,YAAY;YACZ,MAAM;YACN,OAAO,EAAE,iBAAiB,CAAC,YAAY,EAAE,MAAM,CAAC;SACjD,CAAC;IACJ,CAAC;IAEO,iBAAiB,CAAC,KAAyB;QACjD,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,YAAY,CAAC,wBAAwB,CAAC,iBAAiB,CACjE,KAAK,CAAC,iBAAiB,EACvB,KAAK,CAAC,kBAAkB,CACzB,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;CACF"}
|
package/dist/tests/units/modules/platform-integration/usecases/guardDiffSize.usecase.test.js
CHANGED
|
@@ -33,7 +33,7 @@ describe('GuardDiffSizeUseCase', () => {
|
|
|
33
33
|
});
|
|
34
34
|
expect(verdict).toEqual({ kind: 'allowed' });
|
|
35
35
|
});
|
|
36
|
-
it('posts a French split message mentioning actionable tips', () => {
|
|
36
|
+
it('posts a kind French split message mentioning actionable tips, not a harsh rejection', () => {
|
|
37
37
|
const { gateway, useCase } = buildUseCase();
|
|
38
38
|
gateway.setResponse(42, ChangedFilesFactory.list([{ path: 'src/big.ts', additions: 2100, deletions: 0 }]));
|
|
39
39
|
const verdict = useCase.execute({
|
|
@@ -43,8 +43,9 @@ describe('GuardDiffSizeUseCase', () => {
|
|
|
43
43
|
});
|
|
44
44
|
expect(verdict.kind).toBe('blocked');
|
|
45
45
|
if (verdict.kind === 'blocked') {
|
|
46
|
-
expect(verdict.message).toContain('Revue refusée');
|
|
47
|
-
expect(verdict.message).toContain('
|
|
46
|
+
expect(verdict.message).not.toContain('Revue refusée');
|
|
47
|
+
expect(verdict.message).toContain('découp');
|
|
48
|
+
expect(verdict.message).toContain('Merci');
|
|
48
49
|
}
|
|
49
50
|
});
|
|
50
51
|
it('is fail-open when the gateway throws (processed normally, no message)', () => {
|
package/dist/tests/units/modules/platform-integration/usecases/guardDiffSize.usecase.test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guardDiffSize.usecase.test.js","sourceRoot":"","sources":["../../../../../../src/tests/units/modules/platform-integration/usecases/guardDiffSize.usecase.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,kEAAkE,CAAC;AACxG,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAChF,OAAO,EAAE,4BAA4B,EAAE,MAAM,yCAAyC,CAAC;AAEvF,SAAS,YAAY;IAInB,MAAM,OAAO,GAAG,IAAI,4BAA4B,EAAE,CAAC;IACnD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,oBAAoB,CAAC,EAAE,wBAAwB,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;AAC/F,CAAC;AAED,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,EAAE,CAAC,gFAAgF,EAAE,GAAG,EAAE;QACxF,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,YAAY,EAAE,CAAC;QAC5C,OAAO,CAAC,WAAW,CACjB,EAAE,EACF,mBAAmB,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,CACpF,CAAC;QAEF,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;YAC9B,iBAAiB,EAAE,eAAe;YAClC,kBAAkB,EAAE,EAAE;YACtB,MAAM,EAAE,IAAI;SACb,CAAC,CAAC;QAEH,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACrC,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC/B,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAC1C,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACnE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,YAAY,EAAE,CAAC;QAC5C,OAAO,CAAC,WAAW,CACjB,EAAE,EACF,mBAAmB,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC,CAC/E,CAAC;QAEF,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;YAC9B,iBAAiB,EAAE,eAAe;YAClC,kBAAkB,EAAE,EAAE;YACtB,MAAM,EAAE,IAAI;SACb,CAAC,CAAC;QAEH,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"guardDiffSize.usecase.test.js","sourceRoot":"","sources":["../../../../../../src/tests/units/modules/platform-integration/usecases/guardDiffSize.usecase.test.ts"],"names":[],"mappings":"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"}
|