@gscdump/engine 1.4.4 → 1.4.5

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.
@@ -2,7 +2,13 @@ import { AnalysisParams, AnalysisResult } from "../analysis-types.mjs";
2
2
  import { ComparisonMode, ResolvedWindow, WindowPreset } from "../period/index.mjs";
3
3
  /** Status vocabulary mirrors `ActionPrioritySourceStatus`. */
4
4
  type ReportStepStatus = 'pending' | 'running' | 'done' | 'skipped' | 'error';
5
- type ReportSeverity = 'info' | 'low' | 'medium' | 'high';
5
+ /**
6
+ * `unknown` is not a rung on the info→high ladder: it means the section's
7
+ * backing analyzer(s) failed, so no severity could be assessed. The report
8
+ * runtime is the only writer — a report's `reduce` never returns it. See
9
+ * `ReportPlanStep.feeds`.
10
+ */
11
+ type ReportSeverity = 'info' | 'low' | 'medium' | 'high' | 'unknown';
6
12
  type ReportEntityKind = 'page' | 'query';
7
13
  type ReportActionKind = 'analyzer' | 'cli' | 'indexing' | 'fix';
8
14
  type ReportCoverage = 'full' | 'partial';
@@ -72,6 +78,23 @@ interface ReportPlanStep {
72
78
  params: Omit<AnalysisParams, 'type'>;
73
79
  /** Required steps fail the report; optional steps degrade `coverage`. */
74
80
  required?: boolean;
81
+ /**
82
+ * Ids of the `ReportSection`s this step's result feeds. Defaults to
83
+ * `[key]`, which is the common case (section id === step key).
84
+ *
85
+ * This is what lets the runtime tell "the analyzer failed" apart from "the
86
+ * analyzer returned zero rows": a section whose feeding steps ALL errored
87
+ * carries no information, and the runtime replaces it with an explicit
88
+ * `severity: 'unknown'` shape instead of letting `reduce` publish
89
+ * aggregates computed over an empty array. A section fed by a mix of
90
+ * failed and successful steps still has real content and is left alone
91
+ * (its `coverage` stays `partial`).
92
+ *
93
+ * Declare it whenever a section id differs from the step key, or a step
94
+ * feeds several sections. `report-unavailable.test.ts` fails on any
95
+ * emitted section no step claims.
96
+ */
97
+ feeds?: readonly string[];
75
98
  }
76
99
  interface ReportStepStateMeta {
77
100
  key: string;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@gscdump/engine",
3
3
  "type": "module",
4
- "version": "1.4.4",
4
+ "version": "1.4.5",
5
5
  "description": "Append-only Parquet/DuckDB storage engine + planner + adapters for the gscdump pipeline. Node + edge runtimes; opt-in heavy peers.",
6
6
  "author": {
7
7
  "name": "Harlan Wilton",
@@ -181,9 +181,9 @@
181
181
  "dependencies": {
182
182
  "drizzle-orm": "1.0.0-rc.3",
183
183
  "proper-lockfile": "^4.1.2",
184
- "@gscdump/lakehouse": "^1.4.4",
185
- "gscdump": "^1.4.4",
186
- "@gscdump/contracts": "^1.4.4"
184
+ "@gscdump/contracts": "^1.4.5",
185
+ "@gscdump/lakehouse": "^1.4.5",
186
+ "gscdump": "^1.4.5"
187
187
  },
188
188
  "devDependencies": {
189
189
  "@duckdb/duckdb-wasm": "1.33.1-dev57.0",