@stacknext/diagnostics 0.8.0 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/engine.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { type DiagnosticCounts, type DiagnosticDetailResponse, type DiagnosticFilters, type DiagnosticFinding, type DiagnosticListResponse, type DiagnosticOverview, type DiagnosticReport, type DiagnosticSnapshot, type StackNextConfig } from '@stacknext/core';
2
- export declare const DIAGNOSTICS_ENGINE_VERSION = "0.8.0";
2
+ export declare const DIAGNOSTICS_ENGINE_VERSION = "0.10.0";
3
3
  export interface DiagnosticEngineOptions {
4
4
  projectName: string;
5
5
  collectorVersion: string;
@@ -1 +1 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,gBAAgB,EACrB,KAAK,wBAAwB,EAC7B,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EAErB,KAAK,kBAAkB,EAEvB,KAAK,eAAe,EACrB,MAAM,iBAAiB,CAAA;AAKxB,eAAO,MAAM,0BAA0B,UAAU,CAAA;AAEjD,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,MAAM,CAAA;IACnB,gBAAgB,EAAE,MAAM,CAAA;IACxB,MAAM,EAAE,eAAe,CAAC,aAAa,CAAC,CAAA;IACtC,oEAAoE;IACpE,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AA8BD,wBAAgB,aAAa,CAAC,QAAQ,EAAE,iBAAiB,EAAE,GAAG,gBAAgB,CAS7E;AAwGD,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,kBAAkB,EAC5B,OAAO,EAAE,uBAAuB,GAC/B,gBAAgB,CA2BlB;AAOD,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,gBAAgB,EACxB,OAAO,GAAE,iBAAsB,GAC9B,sBAAsB,CA4CxB;AAmDD,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,gBAAgB,EACxB,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,kBAAkB,GAC3B,wBAAwB,GAAG,IAAI,CAQjC;AAED,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,gBAAgB,EACxB,QAAQ,SAAI,GACX,kBAAkB,CAUpB"}
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,gBAAgB,EACrB,KAAK,wBAAwB,EAC7B,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EAErB,KAAK,kBAAkB,EAEvB,KAAK,eAAe,EACrB,MAAM,iBAAiB,CAAA;AAKxB,eAAO,MAAM,0BAA0B,WAAW,CAAA;AAElD,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,MAAM,CAAA;IACnB,gBAAgB,EAAE,MAAM,CAAA;IACxB,MAAM,EAAE,eAAe,CAAC,aAAa,CAAC,CAAA;IACtC,oEAAoE;IACpE,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AA8BD,wBAAgB,aAAa,CAAC,QAAQ,EAAE,iBAAiB,EAAE,GAAG,gBAAgB,CAS7E;AAwGD,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,kBAAkB,EAC5B,OAAO,EAAE,uBAAuB,GAC/B,gBAAgB,CA2BlB;AAOD,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,gBAAgB,EACxB,OAAO,GAAE,iBAAsB,GAC9B,sBAAsB,CA4CxB;AAmDD,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,gBAAgB,EACxB,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,kBAAkB,GAC3B,wBAAwB,GAAG,IAAI,CAQjC;AAED,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,gBAAgB,EACxB,QAAQ,SAAI,GACX,kBAAkB,CAUpB"}
package/dist/engine.js CHANGED
@@ -2,7 +2,7 @@ import { STACKNEXT_DIAGNOSTICS_FORMAT, STACKNEXT_DIAGNOSTICS_FORMAT_VERSION, STA
2
2
  import { isControlFlowError } from './fingerprints.js';
3
3
  import { evaluateDiagnosticRules, findingMatchesTrace } from './rules.js';
4
4
  import { buildTraceIndex } from './trace.js';
5
- export const DIAGNOSTICS_ENGINE_VERSION = '0.8.0';
5
+ export const DIAGNOSTICS_ENGINE_VERSION = '0.10.0';
6
6
  const REPORT_LIMITATIONS = [
7
7
  'Findings are deterministic heuristics over the current in-memory sample, not confirmed root causes.',
8
8
  'StackNext does not read application source, run EXPLAIN, inspect query plans or modify code.',
@@ -1 +1 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,120 @@
1
+ ---
2
+ title: Findings
3
+ description: Diagnostic report, finding, evidence and filter shapes, including bounds and determinism.
4
+ ---
5
+
6
+ # Findings
7
+
8
+ ## Report
9
+
10
+ `generateDiagnosticReport()` returns `DiagnosticReport`:
11
+
12
+ | Field | Meaning |
13
+ | --- | --- |
14
+ | `format` / `version` | `stacknext-diagnostics` / `1`. |
15
+ | `engineVersion` | Diagnostics package version. |
16
+ | `ruleSetVersion` | Rules contract version (`2`). |
17
+ | `generatedAt` | Computation time. |
18
+ | `projectName`, `collectorVersion` | Source context. |
19
+ | `sample` | Requests, request traces, spans, errors, database queries, missing parents, excluded control-flow errors and the event window. |
20
+ | `counts` | Total, severity, category and status counts. |
21
+ | `findings` | Bounded finding array. |
22
+ | `notes` | Sample-specific caveats. |
23
+ | `limitations` | Engine-level limits. |
24
+
25
+ <!-- coderabbit-ai-generated:v1 -->
26
+
27
+ <!-- coderabbit-ai-generated-section:v1:5887425eb7c9a43245e26845f65dc19ead389e09ea90c9f1599e7af4699b512c -->
28
+
29
+ `parseStackNextConfig` defaults `diagnostics.maxFindings` to 100 and rejects
30
+ values outside 10–1,000. `generateDiagnosticReport` uses the supplied value
31
+ without validating or capping it. A capped report is not a complete inventory.
32
+
33
+ <!-- /coderabbit-ai-generated:v1 -->
34
+
35
+ ## Finding
36
+
37
+ Each `DiagnosticFinding` includes:
38
+
39
+ - `id` — deterministic `diag-...` reference for the current sample;
40
+ - `ruleId`, `category`, `severity`, `status`;
41
+ - `title`, `summary`, `detail`;
42
+ - `route`, `method`, `firstSeen`, `lastSeen`;
43
+ - `fingerprint`;
44
+ - `affectedTraceCount`, `traceIds`;
45
+ - `evidence`;
46
+ - `verification[]` and `limitations[]`.
47
+
48
+ Ids are deterministic references, not credentials. A finding can disappear when
49
+ the underlying evidence ages out of the retention window.
50
+
51
+ ## Evidence
52
+
53
+ Evidence is bounded and re-sanitized before it is returned. Fields may include:
54
+
55
+ - `measurements` — labels, values and units;
56
+ - `spans` — name, ids, duration, self duration, category, Next.js phase;
57
+ - `contributors` — self-time labels and phases;
58
+ - `traces` — trace id, occurrence count, duration and dominant contributor;
59
+ - `queries` — database system, operation, nullable duration, redacted SQL
60
+ preview;
61
+ - `errors` — name, message, ids, route/render context and timestamp.
62
+
63
+ <!-- coderabbit-ai-generated:v1 -->
64
+
65
+ <!-- coderabbit-ai-generated-section:v1:e80d88b864f4308ac871adb9b30807e2b34389a656aed3ed4915afa83596c76b -->
66
+
67
+ Request bodies, headers, cookies, URL query values and SQL bind parameters
68
+ are not captured directly. Application error messages may include body values
69
+ that appear in diagnostic evidence despite text redaction. Review reports for
70
+ sensitive information before sharing them.
71
+
72
+ <!-- /coderabbit-ai-generated:v1 -->
73
+
74
+ ## List and filters
75
+
76
+ ```ts
77
+ listDiagnosticFindings(report, {
78
+ category: 'performance',
79
+ severity: 'warning',
80
+ status: 'observed',
81
+ ruleId: 'slow-request',
82
+ route: '/api/orders',
83
+ traceId: '...',
84
+ since: Date.now() - 60_000,
85
+ until: Date.now(),
86
+ q: 'orders',
87
+ limit: 50,
88
+ offset: 0,
89
+ })
90
+ ```
91
+
92
+ - `limit` is clamped to 1–200, default 50.
93
+ - `route` is a case-insensitive substring match.
94
+ - `q` searches title, summary, detail, fingerprint, route and rule id.
95
+ - `since`/`until` are epoch milliseconds.
96
+
97
+ The response includes `items`, `total`, `limit`, `offset`, `counts`, `sample`,
98
+ `notes`, `limitations`, `engineVersion` and `ruleSetVersion`. `total` counts all
99
+ matching findings; `items` is the current page.
100
+
101
+ ## Detail
102
+
103
+ `getDiagnosticDetail(report, id, snapshot)` returns
104
+ `{ finding, trace }` or `null`. The trace is a bounded context: span count,
105
+ errors, queries and missing parents. Use the collector trace API for the full
106
+ tree when it is truncated.
107
+
108
+ `diagnosticOverview(report, topLimit = 5)` returns counts, sample metadata and
109
+ the top findings for dashboards and MCP summaries.
110
+
111
+ ## Status semantics
112
+
113
+ | Status | Meaning |
114
+ | --- | --- |
115
+ | `observed` | A measurement or status was directly established. |
116
+ | `possible` | The pattern is consistent with a problem but not proven. |
117
+ | `insufficient-evidence` | The sample cannot support a conclusion. |
118
+
119
+ `possible` and `observed` never mean "confirmed root cause". See the repository
120
+ the repository `docs/limitations.md` for the full boundary.
package/docs/index.md ADDED
@@ -0,0 +1,113 @@
1
+ ---
2
+ title: "@stacknext/diagnostics"
3
+ description: Deterministic, evidence-backed diagnostic rules over a StackNext telemetry sample.
4
+ ---
5
+
6
+ # @stacknext/diagnostics
7
+
8
+ `@stacknext/diagnostics` turns one bounded telemetry sample into deterministic
9
+ findings. It implements fingerprinting, rule evaluation, report filtering and
10
+ the overview/detail shapes used by the CLI, dashboard and MCP server.
11
+
12
+ ## Who should read this
13
+
14
+ Maintainers and advanced contributors. This is an **internal implementation
15
+ package**: applications do not install it directly. It is a dependency of
16
+ `@stacknext/cli`, `@stacknext/regression` and `@stacknext/mcp`.
17
+
18
+ ## Package boundary
19
+
20
+ `diagnostics` depends on `@stacknext/core`. It does not read source files, run
21
+ SQL or EXPLAIN, call an AI provider, write storage or expose an HTTP server.
22
+ The caller provides a snapshot of the current sample and its config.
23
+
24
+ ## Public API
25
+
26
+ <!-- coderabbit-ai-generated:v1 -->
27
+
28
+ <!-- coderabbit-ai-generated-section:v1:229f05792b12cd2c7b8ecfd7ca0dd7a43169429e4dafaf6f3a989b137a4d9d1d -->
29
+
30
+ ```ts
31
+ import {
32
+ generateDiagnosticReport,
33
+ listDiagnosticFindings,
34
+ getDiagnosticDetail,
35
+ diagnosticOverview,
36
+ evaluateDiagnosticRules,
37
+ DIAGNOSTICS_ENGINE_VERSION,
38
+ } from '@stacknext/diagnostics'
39
+ import {
40
+ DIAGNOSTIC_RULES,
41
+ STACKNEXT_DIAGNOSTICS_FORMAT,
42
+ STACKNEXT_DIAGNOSTICS_FORMAT_VERSION,
43
+ STACKNEXT_DIAGNOSTICS_RULE_SET_VERSION,
44
+ } from '@stacknext/core'
45
+ ```
46
+
47
+ <!-- /coderabbit-ai-generated:v1 -->
48
+
49
+ | Function | Purpose |
50
+ | --- | --- |
51
+ | `generateDiagnosticReport(snapshot, options)` | Runs enabled rules and returns a bounded `DiagnosticReport`. |
52
+ | `evaluateDiagnosticRules(context)` | Runs the six rules without building the report envelope. |
53
+ | `listDiagnosticFindings(report, filters?)` | Applies category/severity/status/rule/route/trace/time/search filters and pagination. |
54
+ | `getDiagnosticDetail(report, id, snapshot)` | Returns one finding and a bounded related trace. |
55
+ | `diagnosticOverview(report, topLimit?)` | Returns counts and the top findings for the dashboard/MCP summary. |
56
+
57
+ Fingerprint and classification helpers are also exported for tests and custom
58
+ tooling. See the installed TypeScript declarations for the complete list.
59
+
60
+ ## Usage
61
+
62
+ ```ts
63
+ const report = generateDiagnosticReport(
64
+ {
65
+ spans,
66
+ errors,
67
+ databaseQueries,
68
+ requestTraces,
69
+ missingParentSpanIds,
70
+ },
71
+ {
72
+ projectName: 'my-app',
73
+ collectorVersion: '<installed-version>',
74
+ config,
75
+ slowRequestMs: 500,
76
+ },
77
+ )
78
+
79
+ const page = listDiagnosticFindings(report, {
80
+ category: 'database',
81
+ severity: 'warning',
82
+ limit: 20,
83
+ })
84
+ ```
85
+
86
+ `DiagnosticSnapshot` is the current sample, not storage. The engine reads only
87
+ what the caller passes and does not mutate it.
88
+
89
+ ## Engine versions
90
+
91
+ - `STACKNEXT_DIAGNOSTICS_FORMAT` — `stacknext-diagnostics`.
92
+ - `STACKNEXT_DIAGNOSTICS_FORMAT_VERSION` — `1`.
93
+ - `STACKNEXT_DIAGNOSTICS_RULE_SET_VERSION` — `2`.
94
+ - `DIAGNOSTICS_ENGINE_VERSION` — the installed package version.
95
+
96
+ Regression comparisons consider the rule-set version part of the environment.
97
+ A mismatch makes a comparison inconclusive by default.
98
+
99
+ ## Required reasoning
100
+
101
+ Findings are conservative heuristics, not confirmed root causes:
102
+
103
+ - `possible` means the pattern is consistent with a problem.
104
+ - `observed` means the measurement exists.
105
+ - `insufficient-evidence` means the sample cannot support a conclusion.
106
+
107
+ Never present a finding as proof of why the application behaves a certain way.
108
+ Read the evidence, verification steps and limitations.
109
+
110
+ ## Documentation map
111
+
112
+ - [Rules](rules.md) — the six rules, thresholds and exclusions.
113
+ - [Findings](findings.md) — report shape, evidence fields and limits.
package/docs/rules.md ADDED
@@ -0,0 +1,99 @@
1
+ ---
2
+ title: Rules
3
+ description: The six deterministic diagnostic rules, their thresholds, evidence and exclusions.
4
+ ---
5
+
6
+ # Rules
7
+
8
+ The engine implements exactly six rules. `DIAGNOSTIC_RULES` exports their ids,
9
+ labels, categories and default severities.
10
+
11
+ <!-- coderabbit-ai-generated:v1 -->
12
+
13
+ <!-- coderabbit-ai-generated-section:v1:10596212a48954811031c9de36743ec468719d7e83705fad34d911da5d4e0455 -->
14
+
15
+ | Rule id | Category | Status | Severity | Trigger |
16
+ | --- | --- | --- | --- | --- |
17
+ | `n-plus-one-queries` | `database` | `possible` | `warning` | One normalized SQL shape repeats at least `diagnostics.repeatedQueryMin` times (default 5) in a request trace; each counted query must have a `spanId` attributed to the request root. |
18
+ | `slow-request` | `performance` | `observed` | `warning` | A request root reaches or exceeds `slowRequestMs` (default 500 ms). |
19
+ | `slow-span` | `performance` | `observed` | `warning` | A non-root span's self time exceeds its category threshold while the request itself is not already reported as slow. |
20
+ | `repeated-external-http` | `http` | `possible` | `warning` | One normalized outbound endpoint repeats at least `diagnostics.repeatedHttpMin` times (default 3) in one trace. |
21
+ | `error-fingerprint` | `errors` | `observed` | `error` | A single or repeated request error grouped by canonical route and normalized signature. |
22
+ | `server-error-response` | `errors` | `observed` | `error` | A request root returns 5xx without a correlated non-control-flow error record. |
23
+
24
+ <!-- /coderabbit-ai-generated:v1 -->
25
+
26
+ ## N+1 queries
27
+
28
+ - SQL is fingerprinted by normalized shape. Literal values and id-like path
29
+ segments do not create a new shape.
30
+ - A finding aggregates matching traces by canonical Next.js route.
31
+ - Bind parameters are never available, so the engine cannot prove a loop.
32
+ - A batched query can still repeat for unrelated reasons.
33
+
34
+ ## Slow requests
35
+
36
+ - The measurement is the request root duration, not the sum of spans.
37
+ - Findings group by method and canonical route.
38
+ - The engine attributes self time to the deepest measured spans and names the
39
+ dominant contributor. Self time subtracts the union of direct child intervals;
40
+ it attributes measured time and does not prove causality.
41
+ - Parent duration already includes child work. Never add overlapping spans.
42
+
43
+ ## Slow spans
44
+
45
+ - Evaluated only when the enclosing request is below `slowRequestMs`; this
46
+ avoids double-reporting a slow request and its child.
47
+ - Thresholds are category-specific: `databaseMs`, `httpMs`, `customMs`,
48
+ `frameworkMs`, `otherMs`.
49
+ - A span can be slow because of child work, queueing, a cold start or the
50
+ measured operation itself.
51
+ - Framework spans are evidence of Next.js work, not a root cause.
52
+
53
+ ## Repeated external HTTP
54
+
55
+ - Only outbound HTTP client spans are considered.
56
+ - Query values, fragments and credentials are removed; id-like path segments are
57
+ normalized.
58
+ - Cache status and same-app/external origin may be reported as evidence.
59
+ - Repeated calls can be intentional retries or independent requests. The rule
60
+ cannot distinguish them.
61
+
62
+ ## Error fingerprints
63
+
64
+ - The normalized error signature is route-independent, but findings group by
65
+ canonical route so the same failure in different routes stays separate.
66
+ - The same message and stack shape can merge different causes; different shapes
67
+ can split one cause.
68
+ - Next.js not-found, redirect and HTTP-error fallback control-flow errors are
69
+ excluded.
70
+ - A single error is still reported; `errorGroupMin` controls when a group is
71
+ labeled repeated.
72
+
73
+ ## Server error responses
74
+
75
+ - Reports only that the request root returned 5xx without a correlated
76
+ non-control-flow error.
77
+ - The app may have returned the status intentionally, the error hook may not
78
+ have run, or the error record may have aged out.
79
+ - The status is proven; the cause is not.
80
+
81
+ ## Detached traces
82
+
83
+ Request-level rules require an attributable request root. Spans without one,
84
+ and spans whose parent is missing, are excluded and noted in the sample
85
+ integrity metadata instead of being guessed into a request.
86
+
87
+ ## Thresholds
88
+
89
+ <!-- coderabbit-ai-generated:v1 -->
90
+
91
+ <!-- coderabbit-ai-generated-section:v1:a904184de13c123e8ce5a38fe44806d966a9f19751cfbda9e0846de9453c0acc -->
92
+
93
+ Most thresholds come from `stacknext.config.json` `diagnostics`; `slowRequestMs`
94
+ is a top-level property of `stacknext.config.json`. `enabled: false`
95
+ returns an empty report, not an error. `maxFindings` caps the report after all
96
+ rules run.
97
+
98
+
99
+ <!-- /coderabbit-ai-generated:v1 -->
package/package.json CHANGED
@@ -1,11 +1,12 @@
1
1
  {
2
2
  "name": "@stacknext/diagnostics",
3
- "version": "0.8.0",
3
+ "version": "0.10.0",
4
4
  "description": "Deterministic, evidence-backed runtime diagnostics for StackNext telemetry",
5
5
  "license": "MIT",
6
6
  "type": "module",
7
7
  "files": [
8
- "dist"
8
+ "dist",
9
+ "docs"
9
10
  ],
10
11
  "main": "./dist/index.js",
11
12
  "types": "./dist/index.d.ts",
@@ -18,7 +19,7 @@
18
19
  "./package.json": "./package.json"
19
20
  },
20
21
  "dependencies": {
21
- "@stacknext/core": "0.8.0"
22
+ "@stacknext/core": "0.10.0"
22
23
  },
23
24
  "engines": {
24
25
  "node": ">=20.9.0"