@omnitron-dev/omnitron 0.1.2 → 0.2.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/cli/omnitron.js +32 -1
- package/dist/cli/omnitron.js.map +1 -1
- package/dist/cluster/leader-election.d.ts.map +1 -1
- package/dist/cluster/leader-election.js +0 -2
- package/dist/cluster/leader-election.js.map +1 -1
- package/dist/commands/env.d.ts.map +1 -1
- package/dist/commands/env.js +10 -2
- package/dist/commands/env.js.map +1 -1
- package/dist/commands/health.d.ts.map +1 -1
- package/dist/commands/health.js +10 -2
- package/dist/commands/health.js.map +1 -1
- package/dist/commands/inspect-graph.d.ts +20 -0
- package/dist/commands/inspect-graph.d.ts.map +1 -0
- package/dist/commands/inspect-graph.js +78 -0
- package/dist/commands/inspect-graph.js.map +1 -0
- package/dist/commands/inspect.d.ts.map +1 -1
- package/dist/commands/inspect.js +10 -2
- package/dist/commands/inspect.js.map +1 -1
- package/dist/commands/list.d.ts.map +1 -1
- package/dist/commands/list.js +11 -1
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/logs.d.ts.map +1 -1
- package/dist/commands/logs.js +17 -3
- package/dist/commands/logs.js.map +1 -1
- package/dist/commands/metrics.d.ts.map +1 -1
- package/dist/commands/metrics.js +10 -2
- package/dist/commands/metrics.js.map +1 -1
- package/dist/commands/monit.d.ts.map +1 -1
- package/dist/commands/monit.js +9 -0
- package/dist/commands/monit.js.map +1 -1
- package/dist/commands/output.d.ts +35 -0
- package/dist/commands/output.d.ts.map +1 -0
- package/dist/commands/output.js +63 -0
- package/dist/commands/output.js.map +1 -0
- package/dist/commands/stack.d.ts.map +1 -1
- package/dist/commands/stack.js +22 -7
- package/dist/commands/stack.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +17 -0
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/tor.d.ts +13 -0
- package/dist/commands/tor.d.ts.map +1 -0
- package/dist/commands/tor.js +100 -0
- package/dist/commands/tor.js.map +1 -0
- package/dist/commands/up.js +1 -1
- package/dist/commands/up.js.map +1 -1
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +29 -5
- package/dist/config/loader.js.map +1 -1
- package/dist/config/types.d.ts +14 -0
- package/dist/config/types.d.ts.map +1 -1
- package/dist/daemon/daemon-client.d.ts +14 -0
- package/dist/daemon/daemon-client.d.ts.map +1 -1
- package/dist/daemon/daemon-client.js +4 -0
- package/dist/daemon/daemon-client.js.map +1 -1
- package/dist/daemon/daemon-entry.js +17 -23
- package/dist/daemon/daemon-entry.js.map +1 -1
- package/dist/daemon/daemon.d.ts +2 -0
- package/dist/daemon/daemon.d.ts.map +1 -1
- package/dist/daemon/daemon.js +118 -7
- package/dist/daemon/daemon.js.map +1 -1
- package/dist/daemon/daemon.module.d.ts.map +1 -1
- package/dist/daemon/daemon.module.js +41 -14
- package/dist/daemon/daemon.module.js.map +1 -1
- package/dist/daemon/daemon.rpc-service.d.ts +19 -0
- package/dist/daemon/daemon.rpc-service.d.ts.map +1 -1
- package/dist/daemon/daemon.rpc-service.js +14 -0
- package/dist/daemon/daemon.rpc-service.js.map +1 -1
- package/dist/daemon/pid-manager.d.ts +55 -4
- package/dist/daemon/pid-manager.d.ts.map +1 -1
- package/dist/daemon/pid-manager.js +123 -16
- package/dist/daemon/pid-manager.js.map +1 -1
- package/dist/daemon/state-store.d.ts.map +1 -1
- package/dist/daemon/state-store.js +43 -1
- package/dist/daemon/state-store.js.map +1 -1
- package/dist/infrastructure/container-runtime.d.ts +10 -0
- package/dist/infrastructure/container-runtime.d.ts.map +1 -1
- package/dist/infrastructure/container-runtime.js +111 -36
- package/dist/infrastructure/container-runtime.js.map +1 -1
- package/dist/infrastructure/infrastructure.service.d.ts +41 -0
- package/dist/infrastructure/infrastructure.service.d.ts.map +1 -1
- package/dist/infrastructure/infrastructure.service.js +157 -8
- package/dist/infrastructure/infrastructure.service.js.map +1 -1
- package/dist/infrastructure/phantom-endpoint-janitor.d.ts +72 -0
- package/dist/infrastructure/phantom-endpoint-janitor.d.ts.map +1 -0
- package/dist/infrastructure/phantom-endpoint-janitor.js +149 -0
- package/dist/infrastructure/phantom-endpoint-janitor.js.map +1 -0
- package/dist/infrastructure/presets/index.d.ts.map +1 -1
- package/dist/infrastructure/presets/index.js +2 -0
- package/dist/infrastructure/presets/index.js.map +1 -1
- package/dist/infrastructure/presets/postgres.d.ts.map +1 -1
- package/dist/infrastructure/presets/postgres.js +9 -3
- package/dist/infrastructure/presets/postgres.js.map +1 -1
- package/dist/infrastructure/presets/redis.d.ts.map +1 -1
- package/dist/infrastructure/presets/redis.js +10 -4
- package/dist/infrastructure/presets/redis.js.map +1 -1
- package/dist/infrastructure/presets/registry.d.ts.map +1 -1
- package/dist/infrastructure/presets/registry.js +12 -0
- package/dist/infrastructure/presets/registry.js.map +1 -1
- package/dist/infrastructure/presets/tor.d.ts +74 -0
- package/dist/infrastructure/presets/tor.d.ts.map +1 -0
- package/dist/infrastructure/presets/tor.js +176 -0
- package/dist/infrastructure/presets/tor.js.map +1 -0
- package/dist/infrastructure/service-resolver.d.ts +31 -0
- package/dist/infrastructure/service-resolver.d.ts.map +1 -1
- package/dist/infrastructure/service-resolver.js +60 -9
- package/dist/infrastructure/service-resolver.js.map +1 -1
- package/dist/infrastructure/stack-infra-manager.d.ts +1 -1
- package/dist/infrastructure/stack-infra-manager.js +1 -1
- package/dist/infrastructure/types.d.ts +17 -0
- package/dist/infrastructure/types.d.ts.map +1 -1
- package/dist/observability/index.d.ts +4 -0
- package/dist/observability/index.d.ts.map +1 -0
- package/dist/observability/index.js +3 -0
- package/dist/observability/index.js.map +1 -0
- package/dist/observability/metrics-bridge.d.ts +87 -0
- package/dist/observability/metrics-bridge.d.ts.map +1 -0
- package/dist/observability/metrics-bridge.js +295 -0
- package/dist/observability/metrics-bridge.js.map +1 -0
- package/dist/observability/metrics-server.d.ts +68 -0
- package/dist/observability/metrics-server.d.ts.map +1 -0
- package/dist/observability/metrics-server.js +146 -0
- package/dist/observability/metrics-server.js.map +1 -0
- package/dist/orchestrator/app-handle.d.ts +13 -1
- package/dist/orchestrator/app-handle.d.ts.map +1 -1
- package/dist/orchestrator/app-handle.js +12 -0
- package/dist/orchestrator/app-handle.js.map +1 -1
- package/dist/orchestrator/bootstrap-process.d.ts +49 -0
- package/dist/orchestrator/bootstrap-process.d.ts.map +1 -1
- package/dist/orchestrator/bootstrap-process.js +167 -0
- package/dist/orchestrator/bootstrap-process.js.map +1 -1
- package/dist/orchestrator/build-service.d.ts +50 -3
- package/dist/orchestrator/build-service.d.ts.map +1 -1
- package/dist/orchestrator/build-service.js +357 -85
- package/dist/orchestrator/build-service.js.map +1 -1
- package/dist/orchestrator/file-watcher.d.ts.map +1 -1
- package/dist/orchestrator/file-watcher.js +60 -38
- package/dist/orchestrator/file-watcher.js.map +1 -1
- package/dist/orchestrator/orchestrator.service.d.ts +176 -3
- package/dist/orchestrator/orchestrator.service.d.ts.map +1 -1
- package/dist/orchestrator/orchestrator.service.js +587 -56
- package/dist/orchestrator/orchestrator.service.js.map +1 -1
- package/dist/orchestrator/process-janitor.d.ts +153 -0
- package/dist/orchestrator/process-janitor.d.ts.map +1 -0
- package/dist/orchestrator/process-janitor.js +279 -0
- package/dist/orchestrator/process-janitor.js.map +1 -0
- package/dist/project/config-resolver.d.ts.map +1 -1
- package/dist/project/config-resolver.js +38 -12
- package/dist/project/config-resolver.js.map +1 -1
- package/dist/project/registry.d.ts +1 -0
- package/dist/project/registry.d.ts.map +1 -1
- package/dist/project/registry.js +30 -0
- package/dist/project/registry.js.map +1 -1
- package/dist/services/auth.service.d.ts.map +1 -1
- package/dist/services/auth.service.js +9 -2
- package/dist/services/auth.service.js.map +1 -1
- package/dist/services/netron-telemetry-transport.d.ts.map +1 -1
- package/dist/services/netron-telemetry-transport.js +0 -4
- package/dist/services/netron-telemetry-transport.js.map +1 -1
- package/dist/services/node-manager.service.js +1 -1
- package/dist/services/node-manager.service.js.map +1 -1
- package/dist/services/pipeline.service.d.ts +15 -0
- package/dist/services/pipeline.service.d.ts.map +1 -1
- package/dist/services/pipeline.service.js +53 -2
- package/dist/services/pipeline.service.js.map +1 -1
- package/dist/services/project.rpc-service.d.ts +4 -0
- package/dist/services/project.rpc-service.d.ts.map +1 -1
- package/dist/services/project.rpc-service.js +9 -0
- package/dist/services/project.rpc-service.js.map +1 -1
- package/dist/services/project.service.d.ts +9 -0
- package/dist/services/project.service.d.ts.map +1 -1
- package/dist/services/project.service.js +148 -21
- package/dist/services/project.service.js.map +1 -1
- package/dist/shared/dto/project.d.ts +1 -1
- package/dist/shared/dto/project.d.ts.map +1 -1
- package/dist/shared/dto/services.d.ts +24 -0
- package/dist/shared/dto/services.d.ts.map +1 -1
- package/dist/workers/health-monitor.service.d.ts.map +1 -1
- package/dist/workers/health-monitor.service.js +4 -1
- package/dist/workers/health-monitor.service.js.map +1 -1
- package/dist/workers/types.d.ts +3 -0
- package/dist/workers/types.d.ts.map +1 -1
- package/package.json +19 -18
- package/webapp/dist/assets/Badge-D2ZBP5iK.js +1 -0
- package/webapp/dist/assets/Card-vO88g06B.js +1 -0
- package/webapp/dist/assets/CardActions-C9h7Q2wW.js +1 -0
- package/webapp/dist/assets/CardContent-BA_Xmmhk.js +1 -0
- package/webapp/dist/assets/CardHeader-ceIs__6x.js +1 -0
- package/webapp/dist/assets/Chip-Ckk0xUhK.js +1 -0
- package/webapp/dist/assets/DialogActions-BhHM7hov.js +1 -0
- package/webapp/dist/assets/DialogContentText-BT2JQRmK.js +1 -0
- package/webapp/dist/assets/FormControlLabel-CcQByVS8.js +1 -0
- package/webapp/dist/assets/Grid-14PETRQW.js +1 -0
- package/webapp/dist/assets/InputAdornment-B8aHIsQ7.js +1 -0
- package/webapp/dist/assets/Skeleton-B74-Ds6O.js +37 -0
- package/webapp/dist/assets/Switch-DvWD2wh4.js +1 -0
- package/webapp/dist/assets/SwitchBase-CDU4nY8O.js +1 -0
- package/webapp/dist/assets/Tab-DcCOYYp5.js +1 -0
- package/webapp/dist/assets/TableContainer-CzTh4mu-.js +1 -0
- package/webapp/dist/assets/TableRow-BySEreZR.js +2 -0
- package/webapp/dist/assets/TextField-BLf-BHz2.js +1 -0
- package/webapp/dist/assets/alerts-DnRbT41C.js +1 -0
- package/webapp/dist/assets/apps-CdR0VH2d.js +1 -0
- package/webapp/dist/assets/chunk-DtcAfS_W.js +1 -0
- package/webapp/dist/assets/client-DU8I_lDc.js +2 -0
- package/webapp/dist/assets/containers-Dw-rRXV1.js +1 -0
- package/webapp/dist/assets/dashboard-CzgB0uZz.js +1 -0
- package/webapp/dist/assets/dashboard-builder-DsA0yg33.js +1 -0
- package/webapp/dist/assets/deployments-DtQAoIcQ.js +1 -0
- package/webapp/dist/assets/detail-BJR-G7JG.js +1 -0
- package/webapp/dist/assets/detail-nlCeSltl.js +8 -0
- package/webapp/dist/assets/index-ByQDwp2r.js +566 -0
- package/webapp/dist/assets/isMuiElement-DwF2naaF.js +1 -0
- package/webapp/dist/assets/logs-Kn8o4H7k.js +11 -0
- package/webapp/dist/assets/metrics-DN8Zu5wT.js +2 -0
- package/webapp/dist/assets/nodes-Bgch7AtN.js +7 -0
- package/webapp/dist/assets/pipelines-Cry3qm-S.js +4 -0
- package/webapp/dist/assets/popper-BJFSj6rc.js +1 -0
- package/webapp/dist/assets/preload-helper-DSXbuxSR.js +1 -0
- package/webapp/dist/assets/projects-Dym2GI1U.js +1 -0
- package/webapp/dist/assets/react-apexcharts.esm-CSGK5Cxn.js +958 -0
- package/webapp/dist/assets/react-apexcharts.esm-DEAWOwx5.js +1003 -0
- package/webapp/dist/assets/settings-va3zTcow.js +1 -0
- package/webapp/dist/assets/sign-in-ik35umbp.js +1 -0
- package/webapp/dist/assets/stacks-CVFOnxbF.js +1 -0
- package/webapp/dist/assets/system-info-npIXAjX2.js +1 -0
- package/webapp/dist/assets/topology-bDe70vLs.js +12 -0
- package/webapp/dist/assets/traces-DIIcT8DF.js +1 -0
- package/webapp/dist/assets/use-stack-context-DHLwZv1r.js +1 -0
- package/webapp/dist/index.html +5 -6
- package/webapp/dist/assets/Chip-BySxTjyN.js +0 -1
- package/webapp/dist/assets/DialogContentText-YQWiAVrU.js +0 -1
- package/webapp/dist/assets/DialogTitle-CDkgUIwp.js +0 -1
- package/webapp/dist/assets/FormControlLabel-Bu3CCsBM.js +0 -1
- package/webapp/dist/assets/Grid-BFY8hAzL.js +0 -1
- package/webapp/dist/assets/InputAdornment-_Dayk-3y.js +0 -3
- package/webapp/dist/assets/Skeleton-BGj6Sw8m.js +0 -37
- package/webapp/dist/assets/Switch-CA6682vv.js +0 -1
- package/webapp/dist/assets/TableContainer-4epq10KJ.js +0 -1
- package/webapp/dist/assets/TextField-C73KHMVN.js +0 -1
- package/webapp/dist/assets/alerts-JEQALS7Y.js +0 -1
- package/webapp/dist/assets/apps-DMPysEKB.js +0 -1
- package/webapp/dist/assets/client-DlGPter5.js +0 -110
- package/webapp/dist/assets/containers-CvkC7do8.js +0 -1
- package/webapp/dist/assets/dashboard-C0Fre9pC.js +0 -1
- package/webapp/dist/assets/dashboard-builder-DAghqdpE.js +0 -1
- package/webapp/dist/assets/deployments-Cg1lI1uT.js +0 -1
- package/webapp/dist/assets/detail-CyFtEson.js +0 -1
- package/webapp/dist/assets/detail-DqoSGKT1.js +0 -8
- package/webapp/dist/assets/icons-ynIWYfBP.js +0 -3
- package/webapp/dist/assets/index-vKrDmEA_.js +0 -259
- package/webapp/dist/assets/isMuiElement-BRL3YuCT.js +0 -1
- package/webapp/dist/assets/logs-IovIij1C.js +0 -11
- package/webapp/dist/assets/metrics-Dufwtwjq.js +0 -1
- package/webapp/dist/assets/nodes-Brvu8W3j.js +0 -7
- package/webapp/dist/assets/pipelines-t40X4MuC.js +0 -4
- package/webapp/dist/assets/prop-types-CvVtHxp4.js +0 -1
- package/webapp/dist/assets/react-apexcharts.esm-CLO6gala.js +0 -954
- package/webapp/dist/assets/settings-DTAIST3v.js +0 -1
- package/webapp/dist/assets/sign-in-DQEAkJum.js +0 -1
- package/webapp/dist/assets/stacks-BjM1f45N.js +0 -1
- package/webapp/dist/assets/system-info-BQSbSEK-.js +0 -1
- package/webapp/dist/assets/topology-6N8-Az_Z.js +0 -12
- package/webapp/dist/assets/traces-DVXyb-4m.js +0 -1
- package/webapp/dist/assets/use-stack-context-CbE8fxBA.js +0 -1
- /package/webapp/dist/assets/{constants-DqFQJ27U.js → constants-BgnT-Xdy.js} +0 -0
- /package/webapp/dist/assets/{formatters-J3Xqn6BQ.js → formatters-Do41SRmE.js} +0 -0
- /package/webapp/dist/assets/{fs-uP8eiZAR.js → fs-CgZLtHiQ.js} +0 -0
|
@@ -118,6 +118,18 @@ export class FileWatcher {
|
|
|
118
118
|
this.logger.debug({ app: entry.name }, 'File watching disabled for this app');
|
|
119
119
|
return;
|
|
120
120
|
}
|
|
121
|
+
// Bootstrap-mode apps get their import graph watched precisely by
|
|
122
|
+
// BuildService (esbuild context.watch) — running fs.watch on the same
|
|
123
|
+
// tree on top of that would deliver duplicate restart triggers (often
|
|
124
|
+
// staggered, often within the same debounce window) and was a primary
|
|
125
|
+
// contributor to the dev-mode restart storms. esbuild watch knows
|
|
126
|
+
// EXACTLY which files contribute to the bundle; fs.watch is a
|
|
127
|
+
// strictly less-precise superset that includes generated files,
|
|
128
|
+
// editor scratch artefacts, and unrelated paths.
|
|
129
|
+
if (entry.bootstrap) {
|
|
130
|
+
this.logger.debug({ app: entry.name }, 'Bootstrap-mode app — using esbuild import-graph watcher only (fs.watch skipped)');
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
121
133
|
// Resolve watch directories from config
|
|
122
134
|
const { dirs, extraIgnore, debounce } = this.resolveWatchConfig(entry);
|
|
123
135
|
if (dirs.length === 0) {
|
|
@@ -137,7 +149,11 @@ export class FileWatcher {
|
|
|
137
149
|
try {
|
|
138
150
|
for (const dir of dirs) {
|
|
139
151
|
if (!fs.existsSync(dir)) {
|
|
140
|
-
|
|
152
|
+
// ERROR — not WARN — because a missing watch directory means
|
|
153
|
+
// dev-mode hot reload is silently broken for this app. Misconfig
|
|
154
|
+
// (relative path resolved against the wrong base) used to slip
|
|
155
|
+
// through unnoticed; surface it loudly.
|
|
156
|
+
this.logger.error({ app: entry.name, directory: dir, base: entry.cwd ?? this.cwd }, 'Watch directory does not exist — file watching disabled for this path');
|
|
141
157
|
continue;
|
|
142
158
|
}
|
|
143
159
|
const w = fs.watch(dir, { recursive: true }, (eventType, filename) => {
|
|
@@ -146,12 +162,12 @@ export class FileWatcher {
|
|
|
146
162
|
this.onFileChange(watched, filename, eventType);
|
|
147
163
|
});
|
|
148
164
|
w.on('error', (err) => {
|
|
149
|
-
this.logger.
|
|
165
|
+
this.logger.error({ app: entry.name, error: err.message }, 'File watcher error');
|
|
150
166
|
});
|
|
151
167
|
watched.watchers.push(w);
|
|
152
168
|
}
|
|
153
169
|
if (watched.watchers.length === 0) {
|
|
154
|
-
this.logger.
|
|
170
|
+
this.logger.error({ app: entry.name, attempted: dirs }, 'No valid watch directories — dev-mode hot reload is DISABLED for this app');
|
|
155
171
|
return;
|
|
156
172
|
}
|
|
157
173
|
this.apps.set(entry.name, watched);
|
|
@@ -169,10 +185,16 @@ export class FileWatcher {
|
|
|
169
185
|
}
|
|
170
186
|
resolveWatchConfig(entry) {
|
|
171
187
|
const watchValue = entry.watch;
|
|
188
|
+
// Resolve relative paths against the entry's PROJECT root, not the
|
|
189
|
+
// daemon's cwd. The daemon may have been launched from anywhere; only
|
|
190
|
+
// the entry knows where its config came from. Stamped by the config
|
|
191
|
+
// loader; falls back to daemon cwd only when the entry pre-dates that
|
|
192
|
+
// stamping (e.g., synthetic / test configs).
|
|
193
|
+
const resolveBase = entry.cwd ?? this.cwd;
|
|
172
194
|
// Explicit string — single directory
|
|
173
195
|
if (typeof watchValue === 'string') {
|
|
174
196
|
return {
|
|
175
|
-
dirs: [path.resolve(
|
|
197
|
+
dirs: [path.resolve(resolveBase, watchValue)],
|
|
176
198
|
extraIgnore: [],
|
|
177
199
|
debounce: this.debounceMs,
|
|
178
200
|
};
|
|
@@ -180,10 +202,10 @@ export class FileWatcher {
|
|
|
180
202
|
// Full IWatchConfig
|
|
181
203
|
if (watchValue && typeof watchValue === 'object') {
|
|
182
204
|
const cfg = watchValue;
|
|
183
|
-
const dirs = [path.resolve(
|
|
205
|
+
const dirs = [path.resolve(resolveBase, cfg.directory)];
|
|
184
206
|
if (cfg.include) {
|
|
185
207
|
for (const inc of cfg.include) {
|
|
186
|
-
dirs.push(path.resolve(
|
|
208
|
+
dirs.push(path.resolve(resolveBase, inc));
|
|
187
209
|
}
|
|
188
210
|
}
|
|
189
211
|
return {
|
|
@@ -197,7 +219,7 @@ export class FileWatcher {
|
|
|
197
219
|
if (!entryFile) {
|
|
198
220
|
return { dirs: [], extraIgnore: [], debounce: this.debounceMs };
|
|
199
221
|
}
|
|
200
|
-
const resolved = this.resolveAppRoot(entryFile);
|
|
222
|
+
const resolved = this.resolveAppRoot(entryFile, resolveBase);
|
|
201
223
|
return {
|
|
202
224
|
dirs: resolved ? [resolved] : [],
|
|
203
225
|
extraIgnore: [],
|
|
@@ -228,41 +250,41 @@ export class FileWatcher {
|
|
|
228
250
|
const changedFiles = [...app.pendingFiles];
|
|
229
251
|
app.pendingFiles.clear();
|
|
230
252
|
app.restarting = true;
|
|
231
|
-
|
|
232
|
-
? changedFiles.join(', ')
|
|
233
|
-
: `${changedFiles.slice(0, 3).join(', ')} +${changedFiles.length - 3} more`;
|
|
234
|
-
this.logger.info({ app: app.entry.name, files: filesDisplay, count: changedFiles.length }, 'File change detected — restarting');
|
|
235
|
-
// Clear bootstrap loader cache so daemon re-reads fresh topology
|
|
236
|
-
try {
|
|
237
|
-
const { clearCompileCache } = await import('./ts-compiler.js');
|
|
238
|
-
clearCompileCache();
|
|
239
|
-
}
|
|
240
|
-
catch {
|
|
241
|
-
// ts-compiler not available — non-critical
|
|
242
|
-
}
|
|
243
|
-
// Note: esbuild rebuilds are handled by BuildService watch mode
|
|
244
|
-
// or by orchestrator.restartApp() which clears buildResults and rebuilds
|
|
245
|
-
// Skip restart if the app hasn't been started yet (initial boot in progress)
|
|
246
|
-
const appStatus = this.orchestrator.getAppStatus?.(app.entry.name);
|
|
247
|
-
if (appStatus === 'stopped' || appStatus === 'starting') {
|
|
248
|
-
this.logger.debug({ app: app.entry.name }, 'Skipping restart — app still starting');
|
|
249
|
-
return;
|
|
250
|
-
}
|
|
251
|
-
this.logger.info({ app: app.entry.name, files: filesDisplay }, 'File change detected — restarting');
|
|
252
|
-
// Resolve actual app handle name — in stack mode it's namespaced (e.g., 'omni/dev/main')
|
|
253
|
-
const appName = this.orchestrator.resolveAppName?.(app.entry.name) ?? app.entry.name;
|
|
253
|
+
// app.restarting MUST be reset on every exit path — use try-finally from here.
|
|
254
254
|
try {
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
255
|
+
const filesDisplay = changedFiles.length <= 3
|
|
256
|
+
? changedFiles.join(', ')
|
|
257
|
+
: `${changedFiles.slice(0, 3).join(', ')} +${changedFiles.length - 3} more`;
|
|
258
|
+
// Clear bootstrap loader cache so daemon re-reads fresh topology
|
|
259
|
+
try {
|
|
260
|
+
const { clearCompileCache } = await import('./ts-compiler.js');
|
|
261
|
+
clearCompileCache();
|
|
262
|
+
}
|
|
263
|
+
catch {
|
|
264
|
+
// ts-compiler not available — non-critical
|
|
265
|
+
}
|
|
266
|
+
// Skip restart if the app hasn't been started yet (initial boot in progress)
|
|
267
|
+
const appStatus = this.orchestrator.getAppStatus?.(app.entry.name);
|
|
268
|
+
if (appStatus === 'stopped' || appStatus === 'starting') {
|
|
269
|
+
this.logger.debug({ app: app.entry.name }, 'Skipping restart — app still starting');
|
|
270
|
+
return;
|
|
271
|
+
}
|
|
272
|
+
this.logger.info({ app: app.entry.name, files: filesDisplay, count: changedFiles.length }, 'File change detected — restarting');
|
|
273
|
+
// Resolve actual app handle name — in stack mode it's namespaced (e.g., 'omni/dev/main')
|
|
274
|
+
const appName = this.orchestrator.resolveAppName?.(app.entry.name) ?? app.entry.name;
|
|
275
|
+
try {
|
|
276
|
+
await this.orchestrator.restartApp(appName);
|
|
277
|
+
this.logger.info({ app: appName }, 'Restart complete');
|
|
278
|
+
}
|
|
279
|
+
catch (err) {
|
|
280
|
+
this.logger.error({ app: appName, error: err.message }, 'Restart failed');
|
|
281
|
+
}
|
|
260
282
|
}
|
|
261
283
|
finally {
|
|
262
284
|
app.restarting = false;
|
|
263
285
|
// If more changes accumulated during restart, trigger again
|
|
264
286
|
if (app.pendingFiles.size > 0) {
|
|
265
|
-
this.triggerRestart(app);
|
|
287
|
+
void this.triggerRestart(app);
|
|
266
288
|
}
|
|
267
289
|
}
|
|
268
290
|
}
|
|
@@ -287,8 +309,8 @@ export class FileWatcher {
|
|
|
287
309
|
* Resolve the app's root directory from its bootstrap/script entry path.
|
|
288
310
|
* Walks up from the entry file until a package.json is found.
|
|
289
311
|
*/
|
|
290
|
-
resolveAppRoot(entryPath) {
|
|
291
|
-
const absPath = path.resolve(
|
|
312
|
+
resolveAppRoot(entryPath, base = this.cwd) {
|
|
313
|
+
const absPath = path.resolve(base, entryPath);
|
|
292
314
|
let dir = path.dirname(absPath);
|
|
293
315
|
const root = path.parse(dir).root;
|
|
294
316
|
while (dir !== root) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-watcher.js","sourceRoot":"","sources":["../../src/orchestrator/file-watcher.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"file-watcher.js","sourceRoot":"","sources":["../../src/orchestrator/file-watcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,6 +33,17 @@ export declare class OrchestratorService extends EventEmitter {
|
|
|
33
33
|
private readonly pm;
|
|
34
34
|
private readonly stateStore;
|
|
35
35
|
private readonly handles;
|
|
36
|
+
/**
|
|
37
|
+
* Per-name in-flight start lock (T#57). When two `startApp()` calls
|
|
38
|
+
* arrive concurrently for the same app, the first one's promise is
|
|
39
|
+
* stored here; the second one awaits and returns the same handle
|
|
40
|
+
* rather than racing through to a parallel `launchBootstrapMode` /
|
|
41
|
+
* `launchClassicMode` that would spawn a second worker pool and
|
|
42
|
+
* leak the original. The map is cleared in a `finally` once the
|
|
43
|
+
* launch settles (success or failure) so the next legitimate call
|
|
44
|
+
* for the same name isn't permanently locked out.
|
|
45
|
+
*/
|
|
46
|
+
private readonly startingApps;
|
|
36
47
|
private config;
|
|
37
48
|
private readonly cwd;
|
|
38
49
|
private metricsTimer;
|
|
@@ -43,25 +54,169 @@ export declare class OrchestratorService extends EventEmitter {
|
|
|
43
54
|
private buildService;
|
|
44
55
|
/** Cached build results per app name */
|
|
45
56
|
private readonly buildResults;
|
|
57
|
+
/**
|
|
58
|
+
* Per-app restart coalescer state.
|
|
59
|
+
*
|
|
60
|
+
* `inFlight` — the currently-running restart promise (so a concurrent
|
|
61
|
+
* trigger doesn't kick off a parallel restart and tear down the half-
|
|
62
|
+
* started state from the previous one).
|
|
63
|
+
* `triggerSerial` — monotonically incremented by external trigger
|
|
64
|
+
* entry points (BuildService onRebuild, RPC restartApp, manual
|
|
65
|
+
* `omnitron restart`, deploy.service). Internal coalescer arms
|
|
66
|
+
* that queue themselves DO NOT bump it.
|
|
67
|
+
* `firedSerial` — value of `triggerSerial` that the most recently
|
|
68
|
+
* completed restart consumed. A trailing coalesced restart only
|
|
69
|
+
* fires when `triggerSerial > firedSerial`, i.e. a genuinely new
|
|
70
|
+
* external trigger arrived during the in-flight window. Two
|
|
71
|
+
* coalescer arms colliding can no longer cause a self-perpetuating
|
|
72
|
+
* loop because neither bumps `triggerSerial`.
|
|
73
|
+
* `cooldownUntil` — absolute epoch ms timestamp. Any trigger received
|
|
74
|
+
* before this clears is queued instead of fired immediately.
|
|
75
|
+
* Prevents the storm where esbuild's onEnd fires for a freshly-
|
|
76
|
+
* spawned context milliseconds after the app reports online.
|
|
77
|
+
*/
|
|
78
|
+
private readonly restartCoalescer;
|
|
79
|
+
/**
|
|
80
|
+
* Wall-clock window in ms during which restart triggers from
|
|
81
|
+
* BuildService.watchApp are deferred after `app:online`. Sized so a
|
|
82
|
+
* normal bundle build + child spawn + DI bootstrap fits comfortably
|
|
83
|
+
* inside; anything legitimately changing more often than this is a
|
|
84
|
+
* developer typing very fast, which the regular debounce handles.
|
|
85
|
+
*/
|
|
86
|
+
private static readonly POST_ONLINE_COOLDOWN_MS;
|
|
87
|
+
/**
|
|
88
|
+
* Orphan-process reaper. Lazily created on first `startAll` so unit
|
|
89
|
+
* tests that hit `startApp` directly don't get a periodic timer.
|
|
90
|
+
*/
|
|
91
|
+
private janitor;
|
|
46
92
|
/** Daemon's Netron instance for native service routing */
|
|
47
93
|
private daemonNetron;
|
|
48
94
|
/** Daemon Unix socket path for child-to-daemon Netron connections */
|
|
49
95
|
private daemonSocketPath;
|
|
96
|
+
/**
|
|
97
|
+
* Promise that resolves once the daemon's Netron is wired up. Apps that
|
|
98
|
+
* declare topology cannot launch until this is ready — instead of failing
|
|
99
|
+
* with "daemon Netron not available" the launcher awaits this promise
|
|
100
|
+
* (with a generous timeout) so transient startup-order interleavings
|
|
101
|
+
* resolve themselves instead of becoming user-visible errors.
|
|
102
|
+
*/
|
|
103
|
+
private daemonNetronReady;
|
|
104
|
+
private resolveDaemonNetronReady;
|
|
105
|
+
/**
|
|
106
|
+
* Optional metrics sink. Set by the daemon at boot via
|
|
107
|
+
* `setMetricsBridge` so the orchestrator can forward janitor sweeps,
|
|
108
|
+
* esbuild rebuilds, and lifecycle events without coupling itself to
|
|
109
|
+
* the metrics module. Null means metrics are disabled (tests, slim
|
|
110
|
+
* bootstraps).
|
|
111
|
+
*/
|
|
112
|
+
private metricsBridge;
|
|
50
113
|
constructor(logger: ILogger, pm: ProcessManager, stateStore: StateStore, cwd?: string);
|
|
51
114
|
/**
|
|
52
115
|
* Set the daemon Netron instance and socket path for native topology routing.
|
|
53
116
|
* Called by the daemon after start when Netron is available.
|
|
54
117
|
*/
|
|
55
118
|
setDaemonNetron(netron: Netron, socketPath: string): void;
|
|
119
|
+
/**
|
|
120
|
+
* Wire the metrics bridge. Called once during daemon bootstrap.
|
|
121
|
+
* After this, janitor sweeps, esbuild rebuilds, and orchestrator
|
|
122
|
+
* lifecycle events are forwarded to Prometheus.
|
|
123
|
+
*/
|
|
124
|
+
setMetricsBridge(bridge: import('../observability/metrics-bridge.js').MetricsBridge): void;
|
|
125
|
+
/**
|
|
126
|
+
* Subscribe to our own EventEmitter to forward state-change events to
|
|
127
|
+
* the metrics bridge. Idempotent so repeated `setMetricsBridge` calls
|
|
128
|
+
* (mostly tests) don't multiply listeners.
|
|
129
|
+
*/
|
|
130
|
+
private telemetryWired;
|
|
131
|
+
private wireOrchestratorTelemetry;
|
|
132
|
+
/**
|
|
133
|
+
* Wait until the daemon Netron is available, with a hard ceiling so we
|
|
134
|
+
* never hang forever if `setDaemonNetron()` was never wired in.
|
|
135
|
+
*/
|
|
136
|
+
private ensureDaemonNetronReady;
|
|
56
137
|
startAll(config: IEcosystemConfig): Promise<void>;
|
|
138
|
+
/**
|
|
139
|
+
* Lazily create the orphan-process janitor with the live "owned
|
|
140
|
+
* pids" snapshot wired to the orchestrator's handle map.
|
|
141
|
+
*/
|
|
142
|
+
private ensureJanitor;
|
|
143
|
+
/**
|
|
144
|
+
* Walk every live handle's supervisor children and collect the OS
|
|
145
|
+
* pids the orchestrator currently considers ours. Cheap — called
|
|
146
|
+
* every janitor sweep.
|
|
147
|
+
*/
|
|
148
|
+
private collectOwnedPids;
|
|
57
149
|
startApp(entry: IEcosystemAppEntry, config?: IEcosystemConfig): Promise<AppHandle>;
|
|
150
|
+
private startAppInternal;
|
|
58
151
|
stopApp(name: string, force?: boolean, timeout?: number): Promise<void>;
|
|
59
152
|
stopAll(force?: boolean): Promise<number>;
|
|
153
|
+
/**
|
|
154
|
+
* Restart an app, coalescing concurrent triggers.
|
|
155
|
+
*
|
|
156
|
+
* The dev-mode hot-reload path can deliver many restart triggers per
|
|
157
|
+
* second (file save → esbuild rebuild → onEnd → debounced → restart),
|
|
158
|
+
* and naive parallelism here ends in cross-stomping state mutations
|
|
159
|
+
* (one restart's stopApp tearing down the other's freshly-spawned
|
|
160
|
+
* child). This wrapper serialises restarts per app:
|
|
161
|
+
*
|
|
162
|
+
* - If a restart is already in flight, we set the `pending` bit and
|
|
163
|
+
* await the current restart. When it completes we run exactly one
|
|
164
|
+
* follow-up — extra triggers received in the meantime collapse onto
|
|
165
|
+
* the same bit, so a burst of N triggers produces at most 2 actual
|
|
166
|
+
* restarts (the current one + one trailing).
|
|
167
|
+
* - If we're inside the post-online cooldown window, the trigger is
|
|
168
|
+
* queued (via `pending`) and fires after the cooldown clears.
|
|
169
|
+
*
|
|
170
|
+
* The hot path is `restartAppNow()` which contains the actual work and
|
|
171
|
+
* is what tests / non-coalescing callers can hit directly.
|
|
172
|
+
*/
|
|
60
173
|
restartApp(name: string): Promise<AppHandle>;
|
|
61
174
|
/**
|
|
62
|
-
*
|
|
63
|
-
*
|
|
64
|
-
*
|
|
175
|
+
* Internal coalescer dispatcher.
|
|
176
|
+
*
|
|
177
|
+
* `fromExternal=true` bumps `triggerSerial` (a user / file-watcher /
|
|
178
|
+
* RPC asked us to restart). `fromExternal=false` is used by the
|
|
179
|
+
* recursive arms (cooldown-wait, await-inflight) which are NOT new
|
|
180
|
+
* triggers, just continuations — they must not bump or the trailing
|
|
181
|
+
* coalesced restart would re-fire forever.
|
|
182
|
+
*/
|
|
183
|
+
private restartAppCoalesced;
|
|
184
|
+
/**
|
|
185
|
+
* Internal restart hot path — assumes coalescer has cleared us to proceed.
|
|
186
|
+
*
|
|
187
|
+
* Architecture note (Fix #247): we deliberately do NOT tear down the
|
|
188
|
+
* esbuild watch or invalidate buildResults here. The watch is what
|
|
189
|
+
* triggered us in the first place — its bundle is already fresh, and
|
|
190
|
+
* disposing the context creates a window where the next save can be
|
|
191
|
+
* missed (esbuild's metafile doesn't carry over between contexts).
|
|
192
|
+
*
|
|
193
|
+
* `launchBootstrapMode` sees the live buildResult + watch and skips
|
|
194
|
+
* the cold rebuild, so a restart cycle is just: kill old child →
|
|
195
|
+
* spawn new child with the bundle that was already on disk. The
|
|
196
|
+
* bootstrap-config cache is cleared because changes to `bootstrap.ts`
|
|
197
|
+
* (topology definition) need to take effect on the next start.
|
|
198
|
+
*/
|
|
199
|
+
private restartAppNow;
|
|
200
|
+
private getCoalescerState;
|
|
201
|
+
/**
|
|
202
|
+
* Start the post-online cooldown for an app. Called from the `app:online`
|
|
203
|
+
* transition (both initial startApp and subsequent restartApp paths
|
|
204
|
+
* funnel through this), so a freshly-online app cannot be torn down by
|
|
205
|
+
* a rebuild signal that was already in flight when it finished booting.
|
|
206
|
+
*/
|
|
207
|
+
private startPostOnlineCooldown;
|
|
208
|
+
/**
|
|
209
|
+
* Resolve a user-supplied name to a canonical handle key.
|
|
210
|
+
*
|
|
211
|
+
* Inputs accepted:
|
|
212
|
+
* - exact canonical key (`omni/dev/paysys`) → returned as-is
|
|
213
|
+
* - bare short name (`paysys`) → returns the canonical key whose
|
|
214
|
+
* last `/`-segment matches, IF AND ONLY IF the match is unique.
|
|
215
|
+
*
|
|
216
|
+
* Returns `undefined` for no match. Throws on ambiguity (multiple
|
|
217
|
+
* stacks expose the same short name) so the caller can surface a
|
|
218
|
+
* clear error to the operator instead of operating on the wrong
|
|
219
|
+
* app.
|
|
65
220
|
*/
|
|
66
221
|
resolveAppName(rawName: string): string | undefined;
|
|
67
222
|
/**
|
|
@@ -92,6 +247,24 @@ export declare class OrchestratorService extends EventEmitter {
|
|
|
92
247
|
*/
|
|
93
248
|
listHandleNames(prefix?: string): string[];
|
|
94
249
|
getWorkerHandle(processId: string): import("@omnitron-dev/titan-pm").IWorkerHandle | undefined;
|
|
250
|
+
/**
|
|
251
|
+
* Pull the live DI dependency graph from a running app's first child
|
|
252
|
+
* worker. Used by the daemon RPC backing `omnitron inspect <app>
|
|
253
|
+
* --graph`. Returns null if the app isn't running, has no children,
|
|
254
|
+
* or the worker doesn't expose `getDependencyGraph` (older bootstraps).
|
|
255
|
+
*/
|
|
256
|
+
getDependencyGraph(name: string): Promise<{
|
|
257
|
+
nodes: Array<{
|
|
258
|
+
id: string;
|
|
259
|
+
label?: string;
|
|
260
|
+
type?: string;
|
|
261
|
+
}>;
|
|
262
|
+
edges: Array<{
|
|
263
|
+
from: string;
|
|
264
|
+
to: string;
|
|
265
|
+
type?: 'dependency' | 'parent';
|
|
266
|
+
}>;
|
|
267
|
+
} | null>;
|
|
95
268
|
getMetrics(name?: string): Promise<Record<string, IProcessMetrics | null>>;
|
|
96
269
|
getHealth(name?: string): Promise<Record<string, IHealthStatus | null>>;
|
|
97
270
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator.service.d.ts","sourceRoot":"","sources":["../../src/orchestrator/orchestrator.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAKH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,
|
|
1
|
+
{"version":3,"file":"orchestrator.service.d.ts","sourceRoot":"","sources":["../../src/orchestrator/orchestrator.service.ts"],"names":[],"mappings":"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"}
|