@kernlang/review 3.3.9 → 3.4.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.
- package/dist/call-graph.d.ts +10 -0
- package/dist/call-graph.js +138 -9
- package/dist/call-graph.js.map +1 -1
- package/dist/concept-rules/auth-drift.js +2 -0
- package/dist/concept-rules/auth-drift.js.map +1 -1
- package/dist/concept-rules/auth-propagation-drift.js +2 -0
- package/dist/concept-rules/auth-propagation-drift.js.map +1 -1
- package/dist/concept-rules/body-shape-drift.d.ts +1 -1
- package/dist/concept-rules/body-shape-drift.js +5 -3
- package/dist/concept-rules/body-shape-drift.js.map +1 -1
- package/dist/concept-rules/contract-drift.js +3 -1
- package/dist/concept-rules/contract-drift.js.map +1 -1
- package/dist/concept-rules/contract-method-drift.js +2 -0
- package/dist/concept-rules/contract-method-drift.js.map +1 -1
- package/dist/concept-rules/index.js +2 -33
- package/dist/concept-rules/index.js.map +1 -1
- package/dist/concept-rules/request-validation-drift.js +3 -0
- package/dist/concept-rules/request-validation-drift.js.map +1 -1
- package/dist/concept-rules/root-cause.d.ts +4 -0
- package/dist/concept-rules/root-cause.js +31 -0
- package/dist/concept-rules/root-cause.js.map +1 -0
- package/dist/concept-rules/unbounded-collection-query.js +2 -0
- package/dist/concept-rules/unbounded-collection-query.js.map +1 -1
- package/dist/concept-rules/unhandled-api-error-shape.js +2 -0
- package/dist/concept-rules/unhandled-api-error-shape.js.map +1 -1
- package/dist/default-export.d.ts +41 -0
- package/dist/default-export.js +76 -0
- package/dist/default-export.js.map +1 -0
- package/dist/eval.d.ts +67 -0
- package/dist/eval.js +177 -0
- package/dist/eval.js.map +1 -0
- package/dist/file-context.js +32 -13
- package/dist/file-context.js.map +1 -1
- package/dist/file-role.d.ts +6 -0
- package/dist/file-role.js +27 -0
- package/dist/file-role.js.map +1 -1
- package/dist/framework-seeds.d.ts +46 -0
- package/dist/framework-seeds.js +245 -0
- package/dist/framework-seeds.js.map +1 -0
- package/dist/git-env.d.ts +1 -0
- package/dist/git-env.js +25 -0
- package/dist/git-env.js.map +1 -0
- package/dist/graph.js +246 -21
- package/dist/graph.js.map +1 -1
- package/dist/index.d.ts +10 -2
- package/dist/index.js +200 -56
- package/dist/index.js.map +1 -1
- package/dist/mappers/ts-concepts.js +87 -20
- package/dist/mappers/ts-concepts.js.map +1 -1
- package/dist/path-canonical.d.ts +34 -0
- package/dist/path-canonical.js +85 -0
- package/dist/path-canonical.js.map +1 -0
- package/dist/policy.d.ts +22 -0
- package/dist/policy.js +47 -0
- package/dist/policy.js.map +1 -0
- package/dist/project-context.d.ts +135 -0
- package/dist/project-context.js +563 -0
- package/dist/project-context.js.map +1 -0
- package/dist/public-api.d.ts +21 -0
- package/dist/public-api.js +17 -2
- package/dist/public-api.js.map +1 -1
- package/dist/reporter.js +22 -0
- package/dist/reporter.js.map +1 -1
- package/dist/rule-quality.d.ts +58 -0
- package/dist/rule-quality.js +357 -0
- package/dist/rule-quality.js.map +1 -0
- package/dist/rules/dead-code.d.ts +2 -2
- package/dist/rules/dead-code.js +88 -4
- package/dist/rules/dead-code.js.map +1 -1
- package/dist/rules/index.d.ts +22 -0
- package/dist/rules/index.js +32 -0
- package/dist/rules/index.js.map +1 -1
- package/dist/rules/kern-source.d.ts +4 -0
- package/dist/rules/kern-source.js +183 -0
- package/dist/rules/kern-source.js.map +1 -1
- package/dist/rules/react.js +52 -3
- package/dist/rules/react.js.map +1 -1
- package/dist/rules/suggest-kern-primitive.js +0 -1
- package/dist/rules/suggest-kern-primitive.js.map +1 -1
- package/dist/semantic-diff.js +2 -0
- package/dist/semantic-diff.js.map +1 -1
- package/dist/suppression/apply-suppression.js +2 -0
- package/dist/suppression/apply-suppression.js.map +1 -1
- package/dist/suppression/parse-directives.d.ts +13 -5
- package/dist/suppression/parse-directives.js +62 -8
- package/dist/suppression/parse-directives.js.map +1 -1
- package/dist/suppression/types.d.ts +9 -0
- package/dist/suppression/types.js +6 -1
- package/dist/suppression/types.js.map +1 -1
- package/dist/taint-crossfile.js +15 -8
- package/dist/taint-crossfile.js.map +1 -1
- package/dist/telemetry.d.ts +126 -0
- package/dist/telemetry.js +303 -0
- package/dist/telemetry.js.map +1 -0
- package/dist/types.d.ts +165 -1
- package/dist/types.js.map +1 -1
- package/package.json +4 -3
|
@@ -6,6 +6,6 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import type { CallGraph } from '../call-graph.js';
|
|
8
8
|
import { type PublicApiMap } from '../public-api.js';
|
|
9
|
-
import type { ReviewFinding } from '../types.js';
|
|
10
|
-
export declare function deadExportRule(callGraph: CallGraph, filePath: string, publicApi?: PublicApiMap): ReviewFinding[];
|
|
9
|
+
import type { ReachabilityBlocker, ReviewFinding } from '../types.js';
|
|
10
|
+
export declare function deadExportRule(callGraph: CallGraph, filePath: string, publicApi?: PublicApiMap, blockers?: readonly ReachabilityBlocker[]): ReviewFinding[];
|
|
11
11
|
export declare function crossFileAsyncRule(callGraph: CallGraph, filePath: string): ReviewFinding[];
|
package/dist/rules/dead-code.js
CHANGED
|
@@ -11,8 +11,54 @@ function span(file, line, col = 1) {
|
|
|
11
11
|
}
|
|
12
12
|
// ── Rule: dead-export ───────────────────────────────────────────────────
|
|
13
13
|
// Exported function/variable that is never imported by any file in the graph.
|
|
14
|
-
|
|
14
|
+
/**
|
|
15
|
+
* The confidence ceiling step 9b applies when a ReachabilityBlocker matches
|
|
16
|
+
* a finding's symbol scope. CAP, not floor: `Math.min(confidence, 0.4)`.
|
|
17
|
+
* A real floor would *raise* low-confidence findings (e.g. a 0.6 codegen-
|
|
18
|
+
* demoted dead-export bouncing back up to 0.4 — wait, 0.4 < 0.6, so a
|
|
19
|
+
* floor wouldn't help here, but the principle holds: blockers indicate
|
|
20
|
+
* uncertainty, they should never strengthen a finding). Codex flagged
|
|
21
|
+
* the floor-vs-cap terminology in plan-review #66 as a HIGH-severity
|
|
22
|
+
* gotcha; this constant is named CAP to make the intent obvious.
|
|
23
|
+
*/
|
|
24
|
+
const REACHABILITY_BLOCKER_CAP = 0.4;
|
|
25
|
+
/**
|
|
26
|
+
* Match a (filePath, exportName) blocker against a finding, with the
|
|
27
|
+
* default-alias step 9a wired in: when the seed says `'default'` is
|
|
28
|
+
* blocked but the call graph stored the symbol under its declaration
|
|
29
|
+
* name (`'Page'`), the file's `defaultExportNames` entry tells us the
|
|
30
|
+
* two key the same on-disk symbol.
|
|
31
|
+
*
|
|
32
|
+
* Returns the matched blocker, or undefined when nothing applies.
|
|
33
|
+
*/
|
|
34
|
+
function findMatchingBlocker(blockers, filePath, exportName, defaultExportName) {
|
|
35
|
+
for (const b of blockers) {
|
|
36
|
+
if (b.filePath !== filePath)
|
|
37
|
+
continue;
|
|
38
|
+
if (b.exportName === exportName)
|
|
39
|
+
return b;
|
|
40
|
+
// Default alias: blocker says (path, 'default'), and `exportName` IS
|
|
41
|
+
// the file's default — same symbol.
|
|
42
|
+
if (b.exportName === 'default' && defaultExportName === exportName)
|
|
43
|
+
return b;
|
|
44
|
+
}
|
|
45
|
+
return undefined;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Public-API check with the step 9a default-alias wired in: a seed of
|
|
49
|
+
* `(filePath, 'default')` proves `(filePath, internalName)` is public
|
|
50
|
+
* when internalName IS the file's default export.
|
|
51
|
+
*/
|
|
52
|
+
function isPublicApiWithDefaultAlias(publicApi, filePath, exportName, defaultExportName) {
|
|
53
|
+
if (isPublicApi(publicApi, filePath, exportName))
|
|
54
|
+
return true;
|
|
55
|
+
if (defaultExportName === exportName && isPublicApi(publicApi, filePath, 'default'))
|
|
56
|
+
return true;
|
|
57
|
+
return false;
|
|
58
|
+
}
|
|
59
|
+
export function deadExportRule(callGraph, filePath, publicApi, blockers = []) {
|
|
15
60
|
const findings = [];
|
|
61
|
+
const defaultExportName = callGraph.defaultExportNames.get(filePath);
|
|
16
62
|
for (const key of callGraph.deadExports) {
|
|
17
63
|
const fn = callGraph.functions.get(key);
|
|
18
64
|
if (!fn || fn.filePath !== filePath)
|
|
@@ -23,7 +69,7 @@ export function deadExportRule(callGraph, filePath, publicApi) {
|
|
|
23
69
|
// Skip intentional public API — package.json entries, curated barrels, config overrides.
|
|
24
70
|
// External consumers (other packages, dynamic loaders, platform entry points) won't
|
|
25
71
|
// appear in the analyzed graph, so their imports can't be observed.
|
|
26
|
-
if (publicApi &&
|
|
72
|
+
if (publicApi && isPublicApiWithDefaultAlias(publicApi, fn.filePath, fn.name, defaultExportName))
|
|
27
73
|
continue;
|
|
28
74
|
// Class methods inherit public-API status from their enclosing class. The
|
|
29
75
|
// call graph tracks `Class.method` as a separate exported symbol whose
|
|
@@ -40,11 +86,48 @@ export function deadExportRule(callGraph, filePath, publicApi) {
|
|
|
40
86
|
// If lots of calls are unresolved, the dead export might actually be used via a dynamic path
|
|
41
87
|
const totalCalls = [...callGraph.functions.values()].reduce((sum, f) => sum + f.calls.length, 0);
|
|
42
88
|
const unresolvedRatio = totalCalls > 0 ? callGraph.unresolvedCallCount / totalCalls : 0;
|
|
43
|
-
const
|
|
89
|
+
const baseConfidence = unresolvedRatio > 0.3 ? 0.6 : unresolvedRatio > 0.1 ? 0.7 : 0.85;
|
|
90
|
+
// Step 9b: symbol-scoped reachability blocker. When the graph couldn't
|
|
91
|
+
// prove this specific (file, name) is unreachable — say a candidate
|
|
92
|
+
// dead export is referenced by an unresolved re-export — the finding
|
|
93
|
+
// STILL emits (so telemetry sees it and fpRateEstimate stays honest)
|
|
94
|
+
// but at info severity with a CAP at 0.4 plus a calibration trail
|
|
95
|
+
// entry. Hard suppression was the v3 design that red-team killed:
|
|
96
|
+
// one weak signal silenced 50 unrelated symbols and fpRateEstimate
|
|
97
|
+
// went out of sync with reality.
|
|
98
|
+
const blocker = findMatchingBlocker(blockers, fn.filePath, fn.name, defaultExportName);
|
|
99
|
+
let severity = 'warning';
|
|
100
|
+
let confidence = baseConfidence;
|
|
101
|
+
let calibrationTrail;
|
|
102
|
+
if (blocker) {
|
|
103
|
+
severity = 'info';
|
|
104
|
+
const before = baseConfidence;
|
|
105
|
+
confidence = Math.min(before, REACHABILITY_BLOCKER_CAP);
|
|
106
|
+
// baseConfidence is one of the dead-export ladder values (0.6/0.7/0.85);
|
|
107
|
+
// it can never be 0, so the division is safe without a guard.
|
|
108
|
+
//
|
|
109
|
+
// INVARIANT — fresh array, never append. The trail is recreated each
|
|
110
|
+
// time deadExportRule fires, so it can't accumulate stages across
|
|
111
|
+
// repeated calls. This pairs with applyRuleQualityCalibration's
|
|
112
|
+
// `calibrated` guard (rule-quality.ts:91) to keep the trail length
|
|
113
|
+
// bounded across the lifetime of any single ReviewFinding object.
|
|
114
|
+
// If a future change introduces persistent ReviewFinding objects
|
|
115
|
+
// reused across watch-mode runs, BOTH guarantees must be revisited
|
|
116
|
+
// — see the idempotence test in rule-quality.test.ts:125.
|
|
117
|
+
calibrationTrail = [
|
|
118
|
+
{
|
|
119
|
+
stage: 'reachability:blocker',
|
|
120
|
+
factor: confidence / before,
|
|
121
|
+
reason: blocker.reason,
|
|
122
|
+
beforeConfidence: before,
|
|
123
|
+
afterConfidence: confidence,
|
|
124
|
+
},
|
|
125
|
+
];
|
|
126
|
+
}
|
|
44
127
|
findings.push({
|
|
45
128
|
source: 'kern',
|
|
46
129
|
ruleId: 'dead-export',
|
|
47
|
-
severity
|
|
130
|
+
severity,
|
|
48
131
|
category: 'structure',
|
|
49
132
|
message: `Exported function '${fn.name}' is never imported in the analyzed codebase`,
|
|
50
133
|
primarySpan: span(filePath, fn.line),
|
|
@@ -64,6 +147,7 @@ export function deadExportRule(callGraph, filePath, publicApi) {
|
|
|
64
147
|
},
|
|
65
148
|
],
|
|
66
149
|
},
|
|
150
|
+
...(calibrationTrail ? { calibrationTrail } : {}),
|
|
67
151
|
});
|
|
68
152
|
}
|
|
69
153
|
return findings;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dead-code.js","sourceRoot":"","sources":["../../src/rules/dead-code.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,WAAW,EAAqB,MAAM,kBAAkB,CAAC;AAElE,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,SAAS,IAAI,CAAC,IAAY,EAAE,IAAY,EAAE,GAAG,GAAG,CAAC;IAC/C,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAC9E,CAAC;AAED,2EAA2E;AAC3E,8EAA8E;AAE9E,MAAM,
|
|
1
|
+
{"version":3,"file":"dead-code.js","sourceRoot":"","sources":["../../src/rules/dead-code.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,WAAW,EAAqB,MAAM,kBAAkB,CAAC;AAElE,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,SAAS,IAAI,CAAC,IAAY,EAAE,IAAY,EAAE,GAAG,GAAG,CAAC;IAC/C,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAC9E,CAAC;AAED,2EAA2E;AAC3E,8EAA8E;AAE9E;;;;;;;;;GASG;AACH,MAAM,wBAAwB,GAAG,GAAG,CAAC;AAErC;;;;;;;;GAQG;AACH,SAAS,mBAAmB,CAC1B,QAAwC,EACxC,QAAgB,EAChB,UAAkB,EAClB,iBAAqC;IAErC,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,IAAI,CAAC,CAAC,QAAQ,KAAK,QAAQ;YAAE,SAAS;QACtC,IAAI,CAAC,CAAC,UAAU,KAAK,UAAU;YAAE,OAAO,CAAC,CAAC;QAC1C,qEAAqE;QACrE,oCAAoC;QACpC,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS,IAAI,iBAAiB,KAAK,UAAU;YAAE,OAAO,CAAC,CAAC;IAC/E,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;GAIG;AACH,SAAS,2BAA2B,CAClC,SAAuB,EACvB,QAAgB,EAChB,UAAkB,EAClB,iBAAqC;IAErC,IAAI,WAAW,CAAC,SAAS,EAAE,QAAQ,EAAE,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9D,IAAI,iBAAiB,KAAK,UAAU,IAAI,WAAW,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC;QAAE,OAAO,IAAI,CAAC;IACjG,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,SAAoB,EACpB,QAAgB,EAChB,SAAwB,EACxB,WAA2C,EAAE;IAE7C,MAAM,QAAQ,GAAoB,EAAE,CAAC;IACrC,MAAM,iBAAiB,GAAG,SAAS,CAAC,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAErE,KAAK,MAAM,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC;QACxC,MAAM,EAAE,GAAG,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,QAAQ,KAAK,QAAQ;YAAE,SAAS;QAE9C,kBAAkB;QAClB,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAAE,SAAS;QAE/E,yFAAyF;QACzF,oFAAoF;QACpF,oEAAoE;QACpE,IAAI,SAAS,IAAI,2BAA2B,CAAC,SAAS,EAAE,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,EAAE,iBAAiB,CAAC;YAAE,SAAS;QAE3G,0EAA0E;QAC1E,uEAAuE;QACvE,sEAAsE;QACtE,oEAAoE;QACpE,uEAAuE;QACvE,4DAA4D;QAC5D,IAAI,SAAS,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACvC,MAAM,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACxC,IAAI,WAAW,CAAC,SAAS,EAAE,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC;gBAAE,SAAS;QAC/D,CAAC;QAED,oEAAoE;QACpE,6FAA6F;QAC7F,MAAM,UAAU,GAAG,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACjG,MAAM,eAAe,GAAG,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,mBAAmB,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QACxF,MAAM,cAAc,GAAG,eAAe,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,eAAe,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;QAExF,uEAAuE;QACvE,oEAAoE;QACpE,qEAAqE;QACrE,qEAAqE;QACrE,kEAAkE;QAClE,kEAAkE;QAClE,mEAAmE;QACnE,iCAAiC;QACjC,MAAM,OAAO,GAAG,mBAAmB,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;QACvF,IAAI,QAAQ,GAA8B,SAAS,CAAC;QACpD,IAAI,UAAU,GAAG,cAAc,CAAC;QAChC,IAAI,gBAAgD,CAAC;QACrD,IAAI,OAAO,EAAE,CAAC;YACZ,QAAQ,GAAG,MAAM,CAAC;YAClB,MAAM,MAAM,GAAG,cAAc,CAAC;YAC9B,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;YACxD,yEAAyE;YACzE,8DAA8D;YAC9D,EAAE;YACF,qEAAqE;YACrE,kEAAkE;YAClE,gEAAgE;YAChE,mEAAmE;YACnE,kEAAkE;YAClE,iEAAiE;YACjE,mEAAmE;YACnE,0DAA0D;YAC1D,gBAAgB,GAAG;gBACjB;oBACE,KAAK,EAAE,sBAAsB;oBAC7B,MAAM,EAAE,UAAU,GAAG,MAAM;oBAC3B,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,gBAAgB,EAAE,MAAM;oBACxB,eAAe,EAAE,UAAU;iBAC5B;aACF,CAAC;QACJ,CAAC;QAED,QAAQ,CAAC,IAAI,CAAC;YACZ,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,aAAa;YACrB,QAAQ;YACR,QAAQ,EAAE,WAAW;YACrB,OAAO,EAAE,sBAAsB,EAAE,CAAC,IAAI,8CAA8C;YACpF,WAAW,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC;YACpC,WAAW,EAAE,iBAAiB,CAAC,aAAa,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;YACzD,UAAU;YACV,UAAU,EAAE,+GAA+G;YAC3H,UAAU,EAAE;gBACV,OAAO,EACL,EAAE,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;oBACtB,CAAC,CAAC,wDAAwD,EAAE,CAAC,IAAI,IAAI;oBACrE,CAAC,CAAC,2CAA2C,EAAE,CAAC,IAAI,IAAI;gBAC5D,KAAK,EAAE;oBACL;wBACE,IAAI,EAAE,QAAQ;wBACd,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC;wBACjC,KAAK,EAAE,UAAU,EAAE,CAAC,IAAI,EAAE;wBAC1B,MAAM,EAAE,oBAAoB,EAAE,CAAC,IAAI,8DAA8D;qBAClG;iBACF;aACF;YACD,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAClD,CAAC,CAAC;IACL,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,2EAA2E;AAC3E,2DAA2D;AAE3D,MAAM,UAAU,kBAAkB,CAAC,SAAoB,EAAE,QAAgB;IACvE,MAAM,QAAQ,GAAoB,EAAE,CAAC;IAErC,KAAK,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;QACzC,IAAI,EAAE,CAAC,QAAQ,KAAK,QAAQ;YAAE,SAAS;QAEvC,KAAK,MAAM,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;YAC5B,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ;gBAAE,SAAS;YAE9C,MAAM,SAAS,GAAG,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAC1D,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAClD,IAAI,CAAC,MAAM,EAAE,OAAO;gBAAE,SAAS;YAE/B,oFAAoF;YACpF,IAAI,IAAI,CAAC,UAAU,KAAK,QAAQ;gBAAE,SAAS;YAE3C,QAAQ,CAAC,IAAI,CAAC;gBACZ,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE,kBAAkB;gBAC1B,QAAQ,EAAE,OAAO;gBACjB,QAAQ,EAAE,KAAK;gBACf,OAAO,EAAE,gBAAgB,IAAI,CAAC,UAAU,YAAY,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,oCAAoC;gBACxH,WAAW,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC;gBACtC,YAAY,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;gBAClD,WAAW,EAAE,iBAAiB,CAAC,kBAAkB,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gBAChE,UAAU,EAAE,GAAG;gBACf,UAAU,EAAE,8EAA8E;gBAC1F,UAAU,EAAE;oBACV,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,kBAAkB,MAAM,CAAC,IAAI,0CAA0C;oBAC1F,KAAK,EAAE;wBACL;4BACE,IAAI,EAAE,MAAM;4BACZ,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC;4BACnC,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,QAAQ,IAAI,CAAC,UAAU,IAAI;4BAC5C,MAAM,EAAE,sBAAsB,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,kBAAkB;yBAC1E;wBACD;4BACE,IAAI,EAAE,MAAM;4BACZ,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC;4BAC5C,KAAK,EAAE,SAAS,MAAM,CAAC,IAAI,IAAI;4BAC/B,MAAM,EAAE,wCAAwC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG;yBACpF;qBACF;iBACF;aACF,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
package/dist/rules/index.d.ts
CHANGED
|
@@ -31,6 +31,28 @@ export interface RuleInfo {
|
|
|
31
31
|
* 'experimental' — rule may be noisy; hide-by-default, promote after signal data proves it out.
|
|
32
32
|
*/
|
|
33
33
|
precision?: 'high' | 'medium' | 'experimental';
|
|
34
|
+
/**
|
|
35
|
+
* Lifecycle controls how aggressively a rule should participate in default
|
|
36
|
+
* guard/CI runs. Omitted entries are inferred from precision and rolloutPhase.
|
|
37
|
+
*/
|
|
38
|
+
lifecycle?: 'stable' | 'candidate' | 'experimental';
|
|
39
|
+
/**
|
|
40
|
+
* Default CI posture:
|
|
41
|
+
* - on: participates at declared severity
|
|
42
|
+
* - guarded: can be softened in high-signal guard runs
|
|
43
|
+
* - off: emitted as informational unless audit mode is enabled
|
|
44
|
+
*/
|
|
45
|
+
ciDefault?: 'on' | 'guarded' | 'off';
|
|
46
|
+
/**
|
|
47
|
+
* Analysis substrates required for high precision. This is intentionally
|
|
48
|
+
* declarative so new rules have to state their dependency on graph/type/evidence
|
|
49
|
+
* rather than hiding it in implementation comments.
|
|
50
|
+
*/
|
|
51
|
+
requires?: Array<'graph' | 'type-info' | 'concepts' | 'taint' | 'external-tool'>;
|
|
52
|
+
/** Rule IDs that this rule makes redundant when both fire on the same root cause. */
|
|
53
|
+
supersedes?: string[];
|
|
54
|
+
/** True when findings from this rule can safely carry structured autofix actions. */
|
|
55
|
+
fixable?: boolean;
|
|
34
56
|
/**
|
|
35
57
|
* Wave number in the rollout plan. Used by kern-sight to group new rules
|
|
36
58
|
* visually and by `--list-rules` to surface what just landed. Wave 0 = substrate.
|
package/dist/rules/index.js
CHANGED
|
@@ -1071,6 +1071,38 @@ const REGISTRY = [
|
|
|
1071
1071
|
severity: 'warning',
|
|
1072
1072
|
description: 'Network/DB effect without error recovery',
|
|
1073
1073
|
},
|
|
1074
|
+
{
|
|
1075
|
+
id: 'auth-drift',
|
|
1076
|
+
layer: 'concept',
|
|
1077
|
+
severity: 'warning',
|
|
1078
|
+
description: 'Authenticated backend route called by raw client request without visible auth propagation',
|
|
1079
|
+
precision: 'high',
|
|
1080
|
+
supersedes: ['auth-propagation-drift', 'unhandled-api-error-shape'],
|
|
1081
|
+
},
|
|
1082
|
+
{
|
|
1083
|
+
id: 'contract-drift',
|
|
1084
|
+
layer: 'concept',
|
|
1085
|
+
severity: 'warning',
|
|
1086
|
+
description: 'Client network call has no matching server route contract',
|
|
1087
|
+
precision: 'high',
|
|
1088
|
+
supersedes: ['unhandled-api-error-shape', 'unbounded-collection-query', 'request-validation-drift'],
|
|
1089
|
+
},
|
|
1090
|
+
{
|
|
1091
|
+
id: 'contract-method-drift',
|
|
1092
|
+
layer: 'concept',
|
|
1093
|
+
severity: 'warning',
|
|
1094
|
+
description: 'Client network method does not match the server route method for the same path',
|
|
1095
|
+
precision: 'high',
|
|
1096
|
+
supersedes: ['unhandled-api-error-shape', 'unbounded-collection-query', 'request-validation-drift'],
|
|
1097
|
+
},
|
|
1098
|
+
{
|
|
1099
|
+
id: 'body-shape-drift',
|
|
1100
|
+
layer: 'concept',
|
|
1101
|
+
severity: 'warning',
|
|
1102
|
+
description: 'Client request body fields differ from backend route body usage',
|
|
1103
|
+
precision: 'high',
|
|
1104
|
+
supersedes: ['request-validation-drift'],
|
|
1105
|
+
},
|
|
1074
1106
|
{
|
|
1075
1107
|
id: 'unhandled-api-error-shape',
|
|
1076
1108
|
layer: 'concept',
|
package/dist/rules/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rules/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rules/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,5 +12,9 @@ export declare const typeModelMismatch: KernSourceRule;
|
|
|
12
12
|
export declare const unusedState: KernSourceRule;
|
|
13
13
|
export declare const handlerHeavy: KernSourceRule;
|
|
14
14
|
export declare const missingConfidence: KernSourceRule;
|
|
15
|
+
export declare const asyncPredicateReturn: KernSourceRule;
|
|
16
|
+
export declare const thisIsOutsideClass: KernSourceRule;
|
|
17
|
+
export declare const multipleStringIndexers: KernSourceRule;
|
|
18
|
+
export declare const trailingPipeEnumValues: KernSourceRule;
|
|
15
19
|
export declare function lintKernSourceIR(nodes: IRNode[], filePath: string, rules?: KernSourceRule[]): ReviewFinding[];
|
|
16
20
|
export declare const KERN_SOURCE_RULES: KernSourceRule[];
|
|
@@ -1011,6 +1011,185 @@ export const missingConfidence = (nodes, filePath) => {
|
|
|
1011
1011
|
}),
|
|
1012
1012
|
];
|
|
1013
1013
|
};
|
|
1014
|
+
function readBooleanProp(node, key) {
|
|
1015
|
+
const v = props(node)[key];
|
|
1016
|
+
if (typeof v === 'boolean')
|
|
1017
|
+
return v;
|
|
1018
|
+
if (typeof v === 'string')
|
|
1019
|
+
return v === 'true';
|
|
1020
|
+
return false;
|
|
1021
|
+
}
|
|
1022
|
+
function readStringPropFlat(node, key) {
|
|
1023
|
+
const v = props(node)[key];
|
|
1024
|
+
if (typeof v === 'string')
|
|
1025
|
+
return v;
|
|
1026
|
+
if (v && typeof v === 'object') {
|
|
1027
|
+
const text = v.text;
|
|
1028
|
+
if (typeof text === 'string')
|
|
1029
|
+
return text;
|
|
1030
|
+
const code = v.code;
|
|
1031
|
+
if (typeof code === 'string')
|
|
1032
|
+
return code;
|
|
1033
|
+
}
|
|
1034
|
+
return undefined;
|
|
1035
|
+
}
|
|
1036
|
+
const PREDICATE_METHODS = ['filter', 'find', 'some', 'every', 'findIndex', 'findLast', 'findLastIndex'];
|
|
1037
|
+
export const asyncPredicateReturn = (nodes, filePath) => {
|
|
1038
|
+
const parentMap = buildParentMap(nodes);
|
|
1039
|
+
const rootNodes = nodes.filter((n) => parentMap.get(n) === undefined);
|
|
1040
|
+
const asyncFnsByName = new Map();
|
|
1041
|
+
for (const node of parentMap.keys()) {
|
|
1042
|
+
if (node.type !== 'fn' && node.type !== 'method' && node.type !== 'callback' && node.type !== 'hook') {
|
|
1043
|
+
continue;
|
|
1044
|
+
}
|
|
1045
|
+
if (!readBooleanProp(node, 'async'))
|
|
1046
|
+
continue;
|
|
1047
|
+
const name = props(node).name;
|
|
1048
|
+
if (typeof name !== 'string' || !name)
|
|
1049
|
+
continue;
|
|
1050
|
+
asyncFnsByName.set(name, node);
|
|
1051
|
+
}
|
|
1052
|
+
if (asyncFnsByName.size === 0)
|
|
1053
|
+
return [];
|
|
1054
|
+
const project = createInMemoryProject();
|
|
1055
|
+
const findings = [];
|
|
1056
|
+
const seen = new Set();
|
|
1057
|
+
for (const node of parentMap.keys()) {
|
|
1058
|
+
if (node.type !== 'handler')
|
|
1059
|
+
continue;
|
|
1060
|
+
const code = getCodeProp(node);
|
|
1061
|
+
if (!code)
|
|
1062
|
+
continue;
|
|
1063
|
+
let analysis;
|
|
1064
|
+
let visibleBindings;
|
|
1065
|
+
for (const [fnName, fnNode] of asyncFnsByName) {
|
|
1066
|
+
const escaped = fnName.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
1067
|
+
const re = new RegExp(`\\.(?:${PREDICATE_METHODS.join('|')})\\(\\s*${escaped}\\s*[,)]`);
|
|
1068
|
+
if (!re.test(code))
|
|
1069
|
+
continue;
|
|
1070
|
+
// Codex P2 fix: resolve fnName in handler scope. If the name is shadowed
|
|
1071
|
+
// by a handler-local binding or a closer ancestor scope, the file-level
|
|
1072
|
+
// async fn isn't what's actually being passed — skip the false positive.
|
|
1073
|
+
if (!analysis)
|
|
1074
|
+
analysis = createSnippetAnalysis(project, code, `async_pred_${loc(node).line}`, 'block');
|
|
1075
|
+
if (analysis.localBindings.has(fnName))
|
|
1076
|
+
continue;
|
|
1077
|
+
if (!visibleBindings)
|
|
1078
|
+
visibleBindings = collectVisibleBindings(node, parentMap, rootNodes);
|
|
1079
|
+
const visible = visibleBindings.get(fnName);
|
|
1080
|
+
if (!visible || visible.node !== fnNode)
|
|
1081
|
+
continue;
|
|
1082
|
+
const key = `${fnName}@${loc(fnNode).line}:${loc(fnNode).col}:${loc(node).line}`;
|
|
1083
|
+
if (seen.has(key))
|
|
1084
|
+
continue;
|
|
1085
|
+
seen.add(key);
|
|
1086
|
+
findings.push(finding('async-predicate-return', 'error', 'bug', `Async function '${fnName}' is passed directly to a predicate-style array method (filter/find/some/every/findIndex). The callback returns Promise<boolean>, which is always truthy — the predicate cannot work as intended.`, filePath, fnNode, {
|
|
1087
|
+
suggestion: `Drop async=true and resolve any awaits before the call (e.g. preload data and use a synchronous predicate), or use a for-await loop instead of .filter/.find.`,
|
|
1088
|
+
}));
|
|
1089
|
+
}
|
|
1090
|
+
}
|
|
1091
|
+
return findings;
|
|
1092
|
+
};
|
|
1093
|
+
const THIS_IS_RE = /\bthis\s+is\s+\S/;
|
|
1094
|
+
const THIS_PARAM_RE = /(?:^|,)\s*this\s*:/;
|
|
1095
|
+
function fnHasThisParam(node) {
|
|
1096
|
+
const params = readStringPropFlat(node, 'params');
|
|
1097
|
+
if (params && THIS_PARAM_RE.test(params))
|
|
1098
|
+
return true;
|
|
1099
|
+
for (const child of node.children || []) {
|
|
1100
|
+
if (child.type !== 'param')
|
|
1101
|
+
continue;
|
|
1102
|
+
const name = props(child).name;
|
|
1103
|
+
if (name === 'this')
|
|
1104
|
+
return true;
|
|
1105
|
+
}
|
|
1106
|
+
return false;
|
|
1107
|
+
}
|
|
1108
|
+
export const thisIsOutsideClass = (nodes, filePath) => {
|
|
1109
|
+
const findings = [];
|
|
1110
|
+
const parentMap = buildParentMap(nodes);
|
|
1111
|
+
for (const node of parentMap.keys()) {
|
|
1112
|
+
const returns = readStringPropFlat(node, 'returns');
|
|
1113
|
+
if (!returns || !THIS_IS_RE.test(returns))
|
|
1114
|
+
continue;
|
|
1115
|
+
// Codex P2 fix: TS allows `this is T` only on methods (implicit this) or on
|
|
1116
|
+
// standalone fns with an explicit `this:` parameter. Accessors (getter/setter)
|
|
1117
|
+
// are NOT allowed — TS rejects type predicates on accessors. Constructors
|
|
1118
|
+
// can't have return types so they're irrelevant here.
|
|
1119
|
+
if (node.type === 'method')
|
|
1120
|
+
continue;
|
|
1121
|
+
if (node.type === 'fn' && fnHasThisParam(node))
|
|
1122
|
+
continue;
|
|
1123
|
+
findings.push(finding('this-is-outside-class', 'error', 'type', `'${node.type}' '${props(node).name ?? '<unnamed>'}' uses a 'this is …' type predicate. TypeScript only allows 'this' in a return type on methods, or on standalone fns that declare an explicit 'this:' parameter.`, filePath, node, {
|
|
1124
|
+
suggestion: `Either move this onto a method, add an explicit \`this: T\` parameter to the fn, or change the return type to a non-'this' predicate like 'x is T'.`,
|
|
1125
|
+
}));
|
|
1126
|
+
}
|
|
1127
|
+
return findings;
|
|
1128
|
+
};
|
|
1129
|
+
export const multipleStringIndexers = (nodes, filePath) => {
|
|
1130
|
+
const findings = [];
|
|
1131
|
+
const parentMap = buildParentMap(nodes);
|
|
1132
|
+
for (const node of parentMap.keys()) {
|
|
1133
|
+
const children = node.children || [];
|
|
1134
|
+
if (children.length === 0)
|
|
1135
|
+
continue;
|
|
1136
|
+
const stringIndexers = children.filter((c) => {
|
|
1137
|
+
if (c.type !== 'indexer')
|
|
1138
|
+
return false;
|
|
1139
|
+
const keyType = readStringPropFlat(c, 'keyType');
|
|
1140
|
+
return keyType?.trim() === 'string';
|
|
1141
|
+
});
|
|
1142
|
+
if (stringIndexers.length < 2)
|
|
1143
|
+
continue;
|
|
1144
|
+
const parentName = props(node).name;
|
|
1145
|
+
const owner = typeof parentName === 'string' && parentName ? `'${parentName}'` : `'${node.type}'`;
|
|
1146
|
+
findings.push(finding('multiple-string-indexers', 'error', 'type', `${owner} declares ${stringIndexers.length} string-keyed indexers. TypeScript permits at most one string indexer per type.`, filePath, stringIndexers[1], {
|
|
1147
|
+
suggestion: `Merge the string indexers into a single 'indexer keyType=string' whose value type is the union of the colliding value types.`,
|
|
1148
|
+
relatedSpans: stringIndexers.slice(0, 1).map((dup) => ({
|
|
1149
|
+
file: filePath,
|
|
1150
|
+
startLine: loc(dup).line,
|
|
1151
|
+
startCol: loc(dup).col,
|
|
1152
|
+
endLine: loc(dup).line,
|
|
1153
|
+
endCol: loc(dup).col,
|
|
1154
|
+
})),
|
|
1155
|
+
}));
|
|
1156
|
+
}
|
|
1157
|
+
return findings;
|
|
1158
|
+
};
|
|
1159
|
+
export const trailingPipeEnumValues = (nodes, filePath) => {
|
|
1160
|
+
const findings = [];
|
|
1161
|
+
const parentMap = buildParentMap(nodes);
|
|
1162
|
+
for (const node of parentMap.keys()) {
|
|
1163
|
+
if (node.type !== 'type')
|
|
1164
|
+
continue;
|
|
1165
|
+
const values = readStringPropFlat(node, 'values');
|
|
1166
|
+
if (!values)
|
|
1167
|
+
continue;
|
|
1168
|
+
const trimmed = values.trim();
|
|
1169
|
+
if (!trimmed.includes('|'))
|
|
1170
|
+
continue;
|
|
1171
|
+
const hasLeading = /^\|/.test(trimmed);
|
|
1172
|
+
const hasTrailing = /\|$/.test(trimmed);
|
|
1173
|
+
const hasDouble = /\|\s*\|/.test(trimmed);
|
|
1174
|
+
if (!hasLeading && !hasTrailing && !hasDouble)
|
|
1175
|
+
continue;
|
|
1176
|
+
const parts = [];
|
|
1177
|
+
if (hasLeading)
|
|
1178
|
+
parts.push('leading');
|
|
1179
|
+
if (hasTrailing)
|
|
1180
|
+
parts.push('trailing');
|
|
1181
|
+
if (hasDouble)
|
|
1182
|
+
parts.push('empty middle');
|
|
1183
|
+
// Codex P2 fix: core's generateType wraps each member in quotes, so
|
|
1184
|
+
// values="active|" is technically valid TS — `'active' | ''` (empty-string
|
|
1185
|
+
// member). Almost always a typo, but not invalid. Demoted from error/type
|
|
1186
|
+
// to info/style as a likely-typo hint.
|
|
1187
|
+
findings.push(finding('trailing-pipe-enum', 'info', 'style', `Type alias '${props(node).name ?? '<unnamed>'}' has ${parts.join(', ')} pipe in values="${values}" — produces a literal '' (empty-string) union member, which is valid TS but usually a typo.`, filePath, node, {
|
|
1188
|
+
suggestion: `If the empty-string member is intentional, ignore this hint. Otherwise remove the stray '|' so each member is non-empty.`,
|
|
1189
|
+
}));
|
|
1190
|
+
}
|
|
1191
|
+
return findings;
|
|
1192
|
+
};
|
|
1014
1193
|
export function lintKernSourceIR(nodes, filePath, rules = KERN_SOURCE_RULES) {
|
|
1015
1194
|
return rules.flatMap((rule) => rule(nodes, filePath));
|
|
1016
1195
|
}
|
|
@@ -1021,5 +1200,9 @@ export const KERN_SOURCE_RULES = [
|
|
|
1021
1200
|
handlerHeavy,
|
|
1022
1201
|
missingConfidence,
|
|
1023
1202
|
setSetterCollision,
|
|
1203
|
+
asyncPredicateReturn,
|
|
1204
|
+
thisIsOutsideClass,
|
|
1205
|
+
multipleStringIndexers,
|
|
1206
|
+
trailingPipeEnumValues,
|
|
1024
1207
|
];
|
|
1025
1208
|
//# sourceMappingURL=kern-source.js.map
|