@camstack/types 1.2.115 → 1.2.116
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/interfaces/addon.d.ts +28 -0
- package/package.json +1 -1
|
@@ -1178,6 +1178,34 @@ export interface AddonExecution {
|
|
|
1178
1178
|
* `0` means "no ceiling for this addon" and, being the maximum, lifts the whole runner's cap.
|
|
1179
1179
|
*/
|
|
1180
1180
|
readonly maxOldSpaceMb?: number;
|
|
1181
|
+
/**
|
|
1182
|
+
* Whole-process RSS budget in MB — the number the memory watchdog alarms on.
|
|
1183
|
+
*
|
|
1184
|
+
* This is NOT a second heap ceiling and it enforces nothing: it is the
|
|
1185
|
+
* footprint this addon's role considers legitimate, and crossing it emits one
|
|
1186
|
+
* WARN carrying the breakdown (`heapUsed` / `external` / native residue) so the
|
|
1187
|
+
* operator learns WHICH KIND of growth it is.
|
|
1188
|
+
*
|
|
1189
|
+
* It exists because every other bound is blind to most of a process.
|
|
1190
|
+
* {@link AddonExecution.maxOldSpaceMb} bounds V8's old space and nothing else,
|
|
1191
|
+
* and the watchdog's `stranded` metric subtracts `external` by construction.
|
|
1192
|
+
* `hub/pipeline-analytics` was OOM-killed at 11.4GB on 2026-08-27 with a
|
|
1193
|
+
* 1024MB old-space ceiling in force the entire time, holding a 536MB heap and
|
|
1194
|
+
* 4264MB of `external` — 96% of the growth was never V8's, and nothing warned.
|
|
1195
|
+
* RSS is what the host's OOM killer reads, so RSS is what needs a declared
|
|
1196
|
+
* ceiling.
|
|
1197
|
+
*
|
|
1198
|
+
* OMITTED (the common case) → this addon declares no budget. If NO co-located
|
|
1199
|
+
* addon declares one, the runner reports itself UNWATCHED once at boot; there
|
|
1200
|
+
* is deliberately no class default, because the legitimate footprint differs by
|
|
1201
|
+
* an order of magnitude by role (a recorder holding a 1.5GB segment index is
|
|
1202
|
+
* behaving correctly; analytics holding 1.5GB is not). Declare it from a
|
|
1203
|
+
* MEASURED peak RSS, never from a heap number.
|
|
1204
|
+
*
|
|
1205
|
+
* A runner's budget is the MAXIMUM declared by any co-located addon —
|
|
1206
|
+
* co-location must never silence the hungriest member (D2/D29).
|
|
1207
|
+
*/
|
|
1208
|
+
readonly rssBudgetMb?: number;
|
|
1181
1209
|
/**
|
|
1182
1210
|
* `@camstack/system` builtin ONLY: run this builtin in its OWN forked runner
|
|
1183
1211
|
* instead of in-process on the hub root.
|