@cat-factory/cli 0.13.2 → 0.13.4

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/README.md CHANGED
@@ -95,6 +95,35 @@ supervising from anywhere else needs it set.
95
95
  dies with `EADDRINUSE`, turning one outage into a restart loop. Reaping by port means SIGKILLing a
96
96
  process it was never handed, so every kill **names** the pid and the command behind it, and it only
97
97
  ever runs once the supervisor's own child is confirmed dead.
98
+ - **Names an outage it did _not_ cause.** If a stack that had already answered stops answering and
99
+ comes back with no repair of ours in between, something restarted it underneath the supervisor —
100
+ on a `node --watch` deployment, usually a file-change storm that cycles the server several times
101
+ in a row. Nothing crashes and every process stays alive, so the only symptom is a client
102
+ mid-request failing with `ECONNREFUSED` against a stack that looks perfectly healthy by the time
103
+ anyone looks. That recovery is reported as a **warning** carrying how long the stack was down and
104
+ a running `unexplained outage #N` count, with the likely cause spelled out on the first
105
+ occurrence, and the running total repeated in a summary line at shutdown:
106
+
107
+ ```text
108
+ [supervise 11:50:53] • health probe failed (1/3)
109
+ [supervise 11:51:03] ⚠ serving again after 19.3s down since the first failed probe, give or
110
+ take the 10s poll interval (2 failed probe(s)) —
111
+ unexplained outage #1, no repair of ours caused it
112
+ ```
113
+
114
+ A recovery where the stack had **never** answered since the supervisor started it is reported
115
+ separately, as a slow start rather than an outage: nothing cycled underneath us, the boot simply
116
+ outran `--boot-grace`. That distinction is the whole value of the warning — without it every cold
117
+ boot, and every repair whose restarted stack binds late, claims a third party caused it.
118
+
119
+ Both durations name the poll interval they were measured against. Each end of the window is
120
+ quantized to that interval and the errors point in opposite directions, so the number is the truth
121
+ ± one poll: at a 10s poll a 100ms blip and a 10s outage render the same.
122
+
123
+ Every `[supervise]` line is **timestamped**, because these are read interleaved with the
124
+ supervised server's own structured logs and are usually the only record that a transient outage
125
+ happened at all — placing them against that log used to mean interpolating from whichever
126
+ neighbouring line happened to carry a clock.
98
127
 
99
128
  Two failures it deliberately does **not** retry, because retrying either would reproduce the exact
100
129
  pathology this command exists to end, a restart loop that reads as progress:
package/dist/index.d.ts CHANGED
@@ -6,7 +6,8 @@ export { type Command, COMMAND_NOT_FOUND, COMMAND_TIMED_OUT, createNodeShell, DE
6
6
  export { K3S_INSTALL_COMMAND, type K3sDeps, type K3sResult, setupK3s } from './k3s.js';
7
7
  export { buildK3sHandler, buildK3sSetupUrl, DEFAULT_NAMESPACE_TEMPLATE, handlerLabel, type K3sHandlerInput, KUBERNETES_ENV_TOKEN_SECRET_KEY, } from './k3s-handler.js';
8
8
  export { decodeToken, normalizeApiServerUrl, readApiServerCommand, readTokenCommand, } from './k3s-provision.js';
9
- export { DEFAULT_INGRESS_PORT, INGRESS_HOST_TEMPLATE, type IngressReadiness, ingressHostTemplate, ingressUrlPort, } from './k3s-ingress.js';
9
+ export { classifyIngress, createNodeTcpProbe, DEFAULT_INGRESS_PORT, INGRESS_HOST_TEMPLATE, type IngressFacts, type IngressGap, type IngressProbeCluster, type IngressReadiness, ingressHostTemplate, ingressRemedies, ingressUrlPort, probeIngress, type TcpProbe, } from './k3s-ingress.js';
10
+ export { isLocalMachineHost } from './localHost.js';
10
11
  export { classifyHost, hasServerVersion, type HostDetections, type HostState, isRecreateOffer, type Offer, type OfferId, parseK3dClusters, parseKindClusters, probeHost, RECREATE_OFFERS, recreateOfferFor, recreateTargetForContext, type ToolDetection, } from './k3s-probe.js';
11
12
  export { buildFrontendEnv, buildLocalEnv, type EnvEntry, type FrontendEnvInput, type LocalEnvInput, renderEnvFile, } from './env.js';
12
13
  export { CARRIED_OVER_HEADER, describeEntries, describeMerge, type EnvMerge, mergeEnvFile, quoteEnvValue, readAssignments, } from './envMerge.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,UAAU,EACf,SAAS,EACT,YAAY,EACZ,KAAK,UAAU,EACf,eAAe,EACf,SAAS,EACT,QAAQ,GACT,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,SAAS,EAAE,KAAK,aAAa,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC9E,OAAO,EAAE,KAAK,cAAc,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AACnF,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,SAAS,CAAA;AACzC,OAAO,EACL,KAAK,OAAO,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,0BAA0B,EAC1B,KAAK,SAAS,EACd,iBAAiB,EACjB,UAAU,EACV,KAAK,WAAW,GACjB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,mBAAmB,EAAE,KAAK,OAAO,EAAE,KAAK,SAAS,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AACtF,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,0BAA0B,EAC1B,YAAY,EACZ,KAAK,eAAe,EACpB,+BAA+B,GAChC,MAAM,kBAAkB,CAAA;AAUzB,OAAO,EACL,WAAW,EACX,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,KAAK,gBAAgB,EACrB,mBAAmB,EACnB,cAAc,GACf,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,eAAe,EACf,KAAK,KAAK,EACV,KAAK,OAAO,EACZ,gBAAgB,EAChB,iBAAiB,EACjB,SAAS,EACT,eAAe,EACf,gBAAgB,EAChB,wBAAwB,EACxB,KAAK,aAAa,GACnB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,KAAK,QAAQ,EACb,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,aAAa,GACd,MAAM,UAAU,CAAA;AAKjB,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,KAAK,QAAQ,EACb,YAAY,EACZ,aAAa,EACb,eAAe,GAChB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAA;AACzF,OAAO,EAAE,KAAK,EAAE,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAClD,OAAO,EAAE,KAAK,cAAc,EAAE,SAAS,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAA;AAC5E,OAAO,EAAE,eAAe,EAAE,KAAK,gBAAgB,EAAE,KAAK,WAAW,EAAE,MAAM,cAAc,CAAA;AACvF,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAC9C,OAAO,EACL,kBAAkB,EAClB,KAAK,gBAAgB,EACrB,eAAe,EACf,KAAK,aAAa,EAClB,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,EACpB,gBAAgB,EAChB,KAAK,aAAa,GACnB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EACnB,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAChB,aAAa,EACb,eAAe,EACf,kBAAkB,GACnB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,cAAc,EACd,SAAS,EACT,aAAa,EACb,aAAa,EACb,KAAK,WAAW,GACjB,MAAM,UAAU,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -17,7 +17,15 @@ export { buildK3sHandler, buildK3sSetupUrl, DEFAULT_NAMESPACE_TEMPLATE, handlerL
17
17
  // that skipped the rewrite would write an undialable URL and fail against an address nothing
18
18
  // listens on. Exporting the read without it is what made that omission easy to make.
19
19
  export { decodeToken, normalizeApiServerUrl, readApiServerCommand, readTokenCommand, } from './k3s-provision.js';
20
- export { DEFAULT_INGRESS_PORT, INGRESS_HOST_TEMPLATE, ingressHostTemplate, ingressUrlPort, } from './k3s-ingress.js';
20
+ // The PROBE as well as its constants, because `cat-factory k3s` is no longer the only caller that
21
+ // has to know whether a cluster can serve an ingress-derived URL: the acceptance suite's preflight
22
+ // asks the same two questions (`clusterIngress.ts`), and a second implementation of them is how one
23
+ // of the two would come to disagree with the setup command that provisions the cluster.
24
+ export { classifyIngress, createNodeTcpProbe, DEFAULT_INGRESS_PORT, INGRESS_HOST_TEMPLATE, ingressHostTemplate, ingressRemedies, ingressUrlPort, probeIngress, } from './k3s-ingress.js';
25
+ // `isLocalMachineHost` travels with them: the acceptance preflight reads the current kubectl
26
+ // context, which nothing ties to the apiserver URL it was configured with, so it must decide
27
+ // whether that URL names THIS machine before it may grade the answer as being about that cluster.
28
+ export { isLocalMachineHost } from './localHost.js';
21
29
  export { classifyHost, hasServerVersion, isRecreateOffer, parseK3dClusters, parseKindClusters, probeHost, RECREATE_OFFERS, recreateOfferFor, recreateTargetForContext, } from './k3s-probe.js';
22
30
  export { buildFrontendEnv, buildLocalEnv, renderEnvFile, } from './env.js';
23
31
  // The MERGE half of writing a `.env`, beside the render half it completes. Exported for the same
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAC7F,8FAA8F;AAC9F,OAAO,EAEL,SAAS,EACT,YAAY,EAEZ,eAAe,EACf,SAAS,EACT,QAAQ,GACT,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,SAAS,EAAsB,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC9E,OAAO,EAAuB,eAAe,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AACnF,OAAO,EAAmB,MAAM,SAAS,CAAA;AACzC,OAAO,EAEL,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,0BAA0B,EAE1B,iBAAiB,EACjB,UAAU,GAEX,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,mBAAmB,EAAgC,QAAQ,EAAE,MAAM,UAAU,CAAA;AACtF,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,0BAA0B,EAC1B,YAAY,EAEZ,+BAA+B,GAChC,MAAM,kBAAkB,CAAA;AACzB,gGAAgG;AAChG,iGAAiG;AACjG,kGAAkG;AAClG,6FAA6F;AAC7F,EAAE;AACF,kGAAkG;AAClG,kGAAkG;AAClG,6FAA6F;AAC7F,qFAAqF;AACrF,OAAO,EACL,WAAW,EACX,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EAErB,mBAAmB,EACnB,cAAc,GACf,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACL,YAAY,EACZ,gBAAgB,EAGhB,eAAe,EAGf,gBAAgB,EAChB,iBAAiB,EACjB,SAAS,EACT,eAAe,EACf,gBAAgB,EAChB,wBAAwB,GAEzB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,gBAAgB,EAChB,aAAa,EAIb,aAAa,GACd,MAAM,UAAU,CAAA;AACjB,iGAAiG;AACjG,gGAAgG;AAChG,iGAAiG;AACjG,2DAA2D;AAC3D,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,aAAa,EAEb,YAAY,EACZ,aAAa,EACb,eAAe,GAChB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAA;AACzF,OAAO,EAAW,eAAe,EAAE,MAAM,SAAS,CAAA;AAClD,OAAO,EAAuB,SAAS,EAAoB,MAAM,WAAW,CAAA;AAC5E,OAAO,EAAE,eAAe,EAA2C,MAAM,cAAc,CAAA;AACvF,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAC9C,OAAO,EACL,kBAAkB,EAElB,eAAe,EAEf,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,EACpB,gBAAgB,GAEjB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EAGnB,aAAa,EACb,eAAe,EACf,kBAAkB,GACnB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,cAAc,EACd,SAAS,EACT,aAAa,EACb,aAAa,GAEd,MAAM,UAAU,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAC7F,8FAA8F;AAC9F,OAAO,EAEL,SAAS,EACT,YAAY,EAEZ,eAAe,EACf,SAAS,EACT,QAAQ,GACT,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,SAAS,EAAsB,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC9E,OAAO,EAAuB,eAAe,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AACnF,OAAO,EAAmB,MAAM,SAAS,CAAA;AACzC,OAAO,EAEL,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,0BAA0B,EAE1B,iBAAiB,EACjB,UAAU,GAEX,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,mBAAmB,EAAgC,QAAQ,EAAE,MAAM,UAAU,CAAA;AACtF,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,0BAA0B,EAC1B,YAAY,EAEZ,+BAA+B,GAChC,MAAM,kBAAkB,CAAA;AACzB,gGAAgG;AAChG,iGAAiG;AACjG,kGAAkG;AAClG,6FAA6F;AAC7F,EAAE;AACF,kGAAkG;AAClG,kGAAkG;AAClG,6FAA6F;AAC7F,qFAAqF;AACrF,OAAO,EACL,WAAW,EACX,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,oBAAoB,CAAA;AAC3B,kGAAkG;AAClG,mGAAmG;AACnG,oGAAoG;AACpG,wFAAwF;AACxF,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,oBAAoB,EACpB,qBAAqB,EAKrB,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,YAAY,GAEb,MAAM,kBAAkB,CAAA;AACzB,6FAA6F;AAC7F,6FAA6F;AAC7F,kGAAkG;AAClG,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,EACL,YAAY,EACZ,gBAAgB,EAGhB,eAAe,EAGf,gBAAgB,EAChB,iBAAiB,EACjB,SAAS,EACT,eAAe,EACf,gBAAgB,EAChB,wBAAwB,GAEzB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,gBAAgB,EAChB,aAAa,EAIb,aAAa,GACd,MAAM,UAAU,CAAA;AACjB,iGAAiG;AACjG,gGAAgG;AAChG,iGAAiG;AACjG,2DAA2D;AAC3D,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,aAAa,EAEb,YAAY,EACZ,aAAa,EACb,eAAe,GAChB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAA;AACzF,OAAO,EAAW,eAAe,EAAE,MAAM,SAAS,CAAA;AAClD,OAAO,EAAuB,SAAS,EAAoB,MAAM,WAAW,CAAA;AAC5E,OAAO,EAAE,eAAe,EAA2C,MAAM,cAAc,CAAA;AACvF,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAC9C,OAAO,EACL,kBAAkB,EAElB,eAAe,EAEf,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,EACpB,gBAAgB,GAEjB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EAGnB,aAAa,EACb,eAAe,EACf,kBAAkB,GACnB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,cAAc,EACd,SAAS,EACT,aAAa,EACb,aAAa,GAEd,MAAM,UAAU,CAAA"}
@@ -71,7 +71,7 @@ export declare class ProvisionError extends Error {
71
71
  * name in any namespace is still possible; acceptable for a local dev cluster, and the reason the
72
72
  * token must be kept private.)
73
73
  */
74
- export declare const RBAC_MANIFEST = "apiVersion: v1\nkind: Namespace\nmetadata:\n name: cat-factory\n---\napiVersion: v1\nkind: ServiceAccount\nmetadata:\n name: cat-factory\n namespace: cat-factory\n---\napiVersion: rbac.authorization.k8s.io/v1\nkind: ClusterRole\nmetadata:\n name: cat-factory-env\nrules:\n - apiGroups: ['']\n resources: ['namespaces']\n verbs: ['create', 'get', 'list', 'watch', 'delete']\n - apiGroups: ['']\n resources: ['services', 'configmaps', 'persistentvolumeclaims', 'pods']\n verbs: ['create', 'get', 'list', 'watch', 'patch', 'update', 'delete']\n - apiGroups: ['']\n resources: ['secrets', 'serviceaccounts']\n verbs: ['create', 'get', 'patch', 'update', 'delete']\n - apiGroups: ['']\n resources: ['pods/proxy']\n verbs: ['create', 'get']\n - apiGroups: ['apps']\n resources: ['deployments', 'statefulsets', 'replicasets']\n verbs: ['create', 'get', 'list', 'watch', 'patch', 'update', 'delete']\n - apiGroups: ['batch']\n resources: ['jobs']\n verbs: ['create', 'get', 'list', 'watch', 'patch', 'update', 'delete']\n - apiGroups: ['networking.k8s.io']\n resources: ['ingresses']\n verbs: ['create', 'get', 'list', 'watch', 'patch', 'update', 'delete']\n - apiGroups: ['gateway.networking.k8s.io']\n resources: ['gateways', 'httproutes']\n verbs: ['create', 'get', 'list', 'watch', 'patch', 'update', 'delete']\n---\napiVersion: rbac.authorization.k8s.io/v1\nkind: ClusterRoleBinding\nmetadata:\n name: cat-factory-env\nroleRef:\n apiGroup: rbac.authorization.k8s.io\n kind: ClusterRole\n name: cat-factory-env\nsubjects:\n - kind: ServiceAccount\n name: cat-factory\n namespace: cat-factory\n---\napiVersion: v1\nkind: Secret\nmetadata:\n name: cat-factory-token\n namespace: cat-factory\n annotations:\n kubernetes.io/service-account.name: cat-factory\ntype: kubernetes.io/service-account-token\n";
74
+ export declare const RBAC_MANIFEST = "apiVersion: v1\nkind: Namespace\nmetadata:\n name: cat-factory\n---\napiVersion: v1\nkind: ServiceAccount\nmetadata:\n name: cat-factory\n namespace: cat-factory\n---\napiVersion: rbac.authorization.k8s.io/v1\nkind: ClusterRole\nmetadata:\n name: cat-factory-env\nrules:\n - apiGroups: ['']\n resources: ['namespaces']\n verbs: ['create', 'get', 'list', 'watch', 'delete']\n - apiGroups: ['']\n resources: ['services', 'configmaps', 'persistentvolumeclaims', 'pods']\n verbs: ['create', 'get', 'list', 'watch', 'patch', 'update', 'delete']\n - apiGroups: ['']\n resources: ['secrets', 'serviceaccounts']\n verbs: ['create', 'get', 'patch', 'update', 'delete']\n - apiGroups: ['']\n resources: ['pods/proxy']\n verbs: ['create', 'get']\n - apiGroups: ['apps']\n resources: ['deployments', 'statefulsets', 'replicasets']\n verbs: ['create', 'get', 'list', 'watch', 'patch', 'update', 'delete']\n - apiGroups: ['batch']\n resources: ['jobs']\n verbs: ['create', 'get', 'list', 'watch', 'patch', 'update', 'delete']\n - apiGroups: ['networking.k8s.io']\n resources: ['ingresses']\n verbs: ['create', 'get', 'list', 'watch', 'patch', 'update', 'delete']\n # READ-ONLY, and cluster-scoped because IngressClass is. The environment provider grades a\n # just-applied Ingress against this catalog before it will call a template-derived URL ready:\n # an Ingress naming a class the cluster does not run is accepted by the apiserver, watched by\n # nothing, and its URL never answers. Without this grant the read is refused and the check\n # stands down to the prior behaviour, so the grant is what makes it able to answer at all.\n - apiGroups: ['networking.k8s.io']\n resources: ['ingressclasses']\n verbs: ['get', 'list', 'watch']\n - apiGroups: ['gateway.networking.k8s.io']\n resources: ['gateways', 'httproutes']\n verbs: ['create', 'get', 'list', 'watch', 'patch', 'update', 'delete']\n---\napiVersion: rbac.authorization.k8s.io/v1\nkind: ClusterRoleBinding\nmetadata:\n name: cat-factory-env\nroleRef:\n apiGroup: rbac.authorization.k8s.io\n kind: ClusterRole\n name: cat-factory-env\nsubjects:\n - kind: ServiceAccount\n name: cat-factory\n namespace: cat-factory\n---\napiVersion: v1\nkind: Secret\nmetadata:\n name: cat-factory-token\n namespace: cat-factory\n annotations:\n kubernetes.io/service-account.name: cat-factory\ntype: kubernetes.io/service-account-token\n";
75
75
  /**
76
76
  * `k3d cluster create <name> --api-port <p> -p <ingress>:80@loadbalancer`.
77
77
  *
@@ -1 +1 @@
1
- {"version":3,"file":"k3s-provision.d.ts","sourceRoot":"","sources":["../src/k3s-provision.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"k3s-provision.d.ts","sourceRoot":"","sources":["../src/k3s-provision.ts"],"names":[],"mappings":"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"}
@@ -78,6 +78,14 @@ rules:
78
78
  - apiGroups: ['networking.k8s.io']
79
79
  resources: ['ingresses']
80
80
  verbs: ['create', 'get', 'list', 'watch', 'patch', 'update', 'delete']
81
+ # READ-ONLY, and cluster-scoped because IngressClass is. The environment provider grades a
82
+ # just-applied Ingress against this catalog before it will call a template-derived URL ready:
83
+ # an Ingress naming a class the cluster does not run is accepted by the apiserver, watched by
84
+ # nothing, and its URL never answers. Without this grant the read is refused and the check
85
+ # stands down to the prior behaviour, so the grant is what makes it able to answer at all.
86
+ - apiGroups: ['networking.k8s.io']
87
+ resources: ['ingressclasses']
88
+ verbs: ['get', 'list', 'watch']
81
89
  - apiGroups: ['gateway.networking.k8s.io']
82
90
  resources: ['gateways', 'httproutes']
83
91
  verbs: ['create', 'get', 'list', 'watch', 'patch', 'update', 'delete']
@@ -1 +1 @@
1
- {"version":3,"file":"k3s-provision.js","sourceRoot":"","sources":["../src/k3s-provision.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"k3s-provision.js","sourceRoot":"","sources":["../src/k3s-provision.ts"],"names":[],"mappings":"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"}
@@ -153,6 +153,21 @@ export interface SupervisorOutcome {
153
153
  repairs: number;
154
154
  /** Dependencies that reported a state only an operator can clear, by label. */
155
155
  blocked: string[];
156
+ /**
157
+ * Outages the stack recovered from BY ITSELF — it stopped answering and came back with no repair
158
+ * of ours in between, so something restarted it underneath us. Counted separately from `repairs`
159
+ * because the two have opposite meanings for whoever is reading: a repair is the supervisor doing
160
+ * its job, while an unexplained outage is a symptom of the supervised stack cycling on its own
161
+ * (a `node --watch` file-change storm being the usual cause). A run that ends with several of
162
+ * these looks perfectly healthy by every other measure, which is why the caller REPORTS this at
163
+ * shutdown rather than only logging each occurrence: on a supervisor left running for days the
164
+ * individual lines have long since scrolled away, and nothing else records that they happened.
165
+ *
166
+ * A recovery from the supervisor's OWN slow-binding child is deliberately not counted here (see
167
+ * {@link RecoveryCause}); it is reported at the moment it happens and nowhere else, because the
168
+ * remedy is a `--boot-grace` the reader is looking straight at.
169
+ */
170
+ unexplainedOutages: number;
156
171
  /**
157
172
  * Set when the supervisor STOPPED trying, with the reason. Restarting cannot fix a command that
158
173
  * is simply broken, so `maxFailedStarts` consecutive restarts that never reached a serving state
@@ -160,6 +175,17 @@ export interface SupervisorOutcome {
160
175
  */
161
176
  gaveUp?: string;
162
177
  }
178
+ /**
179
+ * Render a downtime for a human reading a scrolling log: `8.4s`, `1m 12s`. Sub-minute durations keep
180
+ * a decimal because the interesting ones are short — a watch storm is over in seconds, and "8s" vs
181
+ * "8.4s" is the difference between a rounded guess and a measurement.
182
+ *
183
+ * The unit is chosen from the SAME rounded value that gets rendered, never from the raw input.
184
+ * Branching on the raw `ms` lets 59_980 take the sub-minute path and then round up inside it,
185
+ * printing "60.0s": a duration in a unit this format explicitly stops at, which reads as a bug in
186
+ * the measurement rather than in its rendering.
187
+ */
188
+ export declare function formatDowntime(ms: number): string;
163
189
  /**
164
190
  * Run the supervision loop: start the child, then probe on an interval and repair when the
165
191
  * decisions in `supervise.ts` say so. Returns when `stopSignal` aborts, when the crash-loop budget
@@ -1 +1 @@
1
- {"version":3,"file":"supervise-runtime.d.ts","sourceRoot":"","sources":["../src/supervise-runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"supervise-runtime.d.ts","sourceRoot":"","sources":["../src/supervise-runtime.ts"],"names":[],"mappings":"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"}
@@ -12,7 +12,7 @@ import { spawn } from 'node:child_process';
12
12
  import http from 'node:http';
13
13
  import net from 'node:net';
14
14
  import { COMMAND_NOT_FOUND } from './host-shell.js';
15
- import { initialState, stateAfterStart, step } from './supervise.js';
15
+ import { initialState, stateAfterStart, step, } from './supervise.js';
16
16
  /**
17
17
  * Thrown by a dependency that cannot be repaired without a human. The loop prints the message ONCE
18
18
  * and stops treating the step as retryable noise — the alternative is a watchdog that repeats a
@@ -290,6 +290,88 @@ async function ensureDependencies(dependencies, log, warned) {
290
290
  return blocked;
291
291
  }
292
292
  const RESTART_SETTLE_MS = 1_500;
293
+ /**
294
+ * Render a downtime for a human reading a scrolling log: `8.4s`, `1m 12s`. Sub-minute durations keep
295
+ * a decimal because the interesting ones are short — a watch storm is over in seconds, and "8s" vs
296
+ * "8.4s" is the difference between a rounded guess and a measurement.
297
+ *
298
+ * The unit is chosen from the SAME rounded value that gets rendered, never from the raw input.
299
+ * Branching on the raw `ms` lets 59_980 take the sub-minute path and then round up inside it,
300
+ * printing "60.0s": a duration in a unit this format explicitly stops at, which reads as a bug in
301
+ * the measurement rather than in its rendering.
302
+ */
303
+ export function formatDowntime(ms) {
304
+ const totalSeconds = Math.round(ms / 1_000);
305
+ if (totalSeconds < 60)
306
+ return `${(ms / 1_000).toFixed(1)}s`;
307
+ return `${Math.floor(totalSeconds / 60)}m ${String(totalSeconds % 60).padStart(2, '0')}s`;
308
+ }
309
+ /**
310
+ * Report a recovery, and return the new running count of outages we did NOT cause.
311
+ *
312
+ * Both causes arrive here as the same `recovered` action and they must not be reported the same
313
+ * way, because they are opposite claims about who caused the gap. Only `'unexplained'` is an
314
+ * outage: the stack had already answered under this child, then stopped, then came back with no
315
+ * repair of ours in between, so something restarted it underneath us. That one leaves no other
316
+ * trace (nothing crashed, every process is still alive, `/health` answers again by the time anyone
317
+ * looks), which is why it is a warning with a running count instead of the bland success it used
318
+ * to log.
319
+ *
320
+ * `'slow-start'` is the supervisor watching its OWN child bind late: reported, because the grace
321
+ * window is mistuned and a few more missed probes would have restarted a boot that was about to
322
+ * succeed, but never counted as an outage and never attributed to a third party. Collapsing the two
323
+ * is the misdiagnosis this whole report exists to prevent — it would turn every cold boot slower
324
+ * than `--boot-grace`, and every repair whose restart is, into `no repair of ours caused it`.
325
+ *
326
+ * Every duration is qualified with the poll interval it was measured against. Both ends of the
327
+ * window are quantized to that interval and the errors point in opposite directions, so the number
328
+ * is the truth ± one poll: at the default 10s poll a 100ms blip can render as a full 10s, and a
329
+ * reader given `19.3s` with no resolution beside it has no way to know that.
330
+ */
331
+ function reportRecovery(report) {
332
+ const { log, action, config, hinted, unexplainedOutages } = report;
333
+ const span = formatDowntime(action.downMs);
334
+ // Trails the duration in both wordings: the resolution has to sit where the number is read, not
335
+ // in a legend somewhere else, or `19.3s` is taken for a measurement rather than a bucket.
336
+ const qualifier = `, give or take the ${config.pollMs / 1_000}s poll interval ` +
337
+ `(${action.afterFailures} failed probe(s))`;
338
+ const hint = (message) => {
339
+ if (hinted.has(action.cause))
340
+ return;
341
+ hinted.add(action.cause);
342
+ log(` ↳ ${message}`);
343
+ };
344
+ switch (action.cause) {
345
+ case 'unexplained': {
346
+ const count = unexplainedOutages + 1;
347
+ log(`⚠ serving again after ${span} down since the first failed probe${qualifier} — ` +
348
+ `unexplained outage #${count}, no repair of ours caused it`);
349
+ hint('something restarted the stack underneath the supervisor. On a `node --watch` ' +
350
+ 'deployment this is usually a file-change storm: the watcher cycles the server several ' +
351
+ 'times, the port is unbound for a few seconds, and any client mid-request fails with ' +
352
+ 'ECONNREFUSED while nothing crashes. Check the server log for repeated "Restarting" ' +
353
+ 'lines with no error between them.');
354
+ return count;
355
+ }
356
+ case 'slow-start': {
357
+ log(`⚠ serving after a slow start: ${span} past the boot grace window${qualifier} — ` +
358
+ 'our own start finishing late, not an outage');
359
+ hint('the stack had not answered once since the supervisor started it, so nothing cycled ' +
360
+ `underneath us: the boot simply outran --boot-grace (${config.bootGraceMs / 1_000}s). ` +
361
+ `${action.afterFailures} of the ${config.failureThreshold} failed probes needed to ` +
362
+ 'restart it were already on the clock, so raise --boot-grace if this stack is normally ' +
363
+ 'this slow to bind.');
364
+ return unexplainedOutages;
365
+ }
366
+ default: {
367
+ // Exhaustiveness: a new `RecoveryCause` must state how it is reported rather than
368
+ // inheriting whichever branch happens to sit last. Falling through to the outage wording
369
+ // would re-create the exact misattribution this function was split up to end.
370
+ const unreachable = action.cause;
371
+ throw new Error(`unhandled recovery cause: ${String(unreachable)}`);
372
+ }
373
+ }
374
+ }
293
375
  /**
294
376
  * Run the supervision loop: start the child, then probe on an interval and repair when the
295
377
  * decisions in `supervise.ts` say so. Returns when `stopSignal` aborts, when the crash-loop budget
@@ -303,7 +385,9 @@ export async function runSupervisor(deps) {
303
385
  let ticks = 0;
304
386
  let blocked = [];
305
387
  let gaveUp;
388
+ let unexplainedOutages = 0;
306
389
  const warned = new Set();
390
+ const hinted = new Set();
307
391
  // A child that has exited is a fact the probe can only infer, slowly. Tracked per generation so a
308
392
  // dead PREDECESSOR's late `exited` can never be read as the current child having died.
309
393
  let generation = 0;
@@ -360,7 +444,7 @@ export async function runSupervisor(deps) {
360
444
  log(`✔ resumed after ${Math.round(action.driftMs / 1000)}s — the stack is still serving`);
361
445
  break;
362
446
  case 'recovered':
363
- log(`✔ serving again (after ${action.afterFailures} failed probe(s))`);
447
+ unexplainedOutages = reportRecovery({ log, action, config, hinted, unexplainedOutages });
364
448
  break;
365
449
  case 'counting':
366
450
  log(`• health probe failed (${action.failures}/${action.threshold})`);
@@ -395,6 +479,6 @@ export async function runSupervisor(deps) {
395
479
  if (killed.length > 0)
396
480
  log(`↯ reaped ${killed.length} orphaned listener(s) on shutdown`);
397
481
  }
398
- return { ticks, repairs, blocked, gaveUp };
482
+ return { ticks, repairs, blocked, gaveUp, unexplainedOutages };
399
483
  }
400
484
  //# sourceMappingURL=supervise-runtime.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"supervise-runtime.js","sourceRoot":"","sources":["../src/supervise-runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,GAAG,MAAM,UAAU,CAAA;AAC1B,OAAO,EAAE,iBAAiB,EAAkB,MAAM,iBAAiB,CAAA;AACnE,OAAO,EAAE,YAAY,EAAwB,eAAe,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAkB1F;;;;;GAKG;AACH,MAAM,OAAO,2BAA4B,SAAQ,KAAK;CAAG;AA6BzD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,WAAW,GAAmB;IACzC,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;IACrB,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CACpB,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QACtB,IAAI,MAAM,EAAE,OAAO,KAAK,IAAI,EAAE,CAAC;YAC7B,OAAO,EAAE,CAAA;YACT,OAAM;QACR,CAAC;QACD,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;YAC7C,OAAO,EAAE,CAAA;QACX,CAAC,EAAE,EAAE,CAAC,CAAA;QACN,yFAAyF;QACzF,4FAA4F;QAC5F,SAAS,OAAO;YACd,YAAY,CAAC,KAAK,CAAC,CAAA;YACnB,OAAO,EAAE,CAAA;QACX,CAAC;QACD,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;IAC5D,CAAC,CAAC;CACL,CAAA;AAED,MAAM,wBAAwB,GAAG,KAAK,CAAA;AACtC,MAAM,qBAAqB,GAAG,KAAK,CAAA;AAEnC;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAA0C;IAC1E,MAAM,KAAK,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;IAElC,MAAM,OAAO,GAAG,CAAC,IAAY,EAAoB,EAAE,CACjD,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QACtB,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,wBAAwB,EAAE,CAAC,CAAA;QACxF,MAAM,IAAI,GAAG,CAAC,MAAe,EAAQ,EAAE;YACrC,MAAM,CAAC,OAAO,EAAE,CAAA;YAChB,OAAO,CAAC,MAAM,CAAC,CAAA;QACjB,CAAC,CAAA;QACD,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;QACxC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;QACvC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;IAC3C,CAAC,CAAC,CAAA;IAEJ,MAAM,OAAO,GAAG,CAAC,IAAY,EAAoB,EAAE,CACjD,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QACtB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAClB,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,qBAAqB,EAAE,EAChF,CAAC,GAAG,EAAE,EAAE;YACN,GAAG,CAAC,MAAM,EAAE,CAAA,CAAC,iCAAiC;YAC9C,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,GAAG,CAAC,CAAA;QACjC,CAAC,CACF,CAAA;QACD,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA;QACvC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE;YACvB,GAAG,CAAC,OAAO,EAAE,CAAA;YACb,OAAO,CAAC,KAAK,CAAC,CAAA;QAChB,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEJ,OAAO;QACL,KAAK,CAAC,OAAO;YACX,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAA;YACvD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC;gBAAE,OAAO,KAAK,CAAA;YAC1C,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAA;YACrD,OAAO,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC9B,CAAC;KACF,CAAA;AACH,CAAC;AAED,MAAM,wBAAwB,GAAG,MAAM,CAAA;AACvC,MAAM,eAAe,GAAG,KAAK,CAAA;AAE7B;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CACrC,KAAgB,EAChB,IAYC;IAED,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,IAAI,wBAAwB,CAAA;IACtE,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,eAAe,CAAA;IAEvD,MAAM,YAAY,GAAG,KAAK,EAAE,EAAU,EAAoB,EAAE;QAC1D,MAAM,MAAM,GACV,mFAAmF,CAAA;QACrF,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;QAChG,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO,KAAK,CAAA;QACnC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACxD,4EAA4E;QAC5E,OAAO,MAAM,KAAK,SAAS,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,MAAM,CAAC,CAAA;IAC5E,CAAC,CAAA;IAED,OAAO;QACL,KAAK,EAAE,GAAG,IAAI,CAAC,OAAO,mBAAmB;QACzC,KAAK,CAAC,MAAM;YACV,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE;gBAC1E,SAAS,EAAE,MAAM;gBACjB,GAAG,EAAE,IAAI,CAAC,GAAG;aACd,CAAC,CAAA;YACF,IAAI,EAAE,CAAC,IAAI,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAA;YAE/B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,cAAc,CAAA;YAC5C,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;gBAC7B,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE;oBAC1E,GAAG,EAAE,IAAI,CAAC,GAAG;iBACd,CAAC,CAAA;gBACF,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;gBAC7D,IAAI,EAAE,IAAI,CAAC,MAAM,YAAY,CAAC,EAAE,CAAC,CAAC;oBAAE,OAAO,IAAI,CAAA;gBAC/C,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;oBAC5B,UAAU,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;gBAClC,CAAC,CAAC,CAAA;YACJ,CAAC;YACD,OAAO,KAAK,CAAA;QACd,CAAC;KACF,CAAA;AACH,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,gBAAgB,CAC9B,KAAgB,EAChB,IAAY,EACZ,IAAI,GAA2D,EAAE;IAEjE,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,OAAO,CAAA;IACjE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAS,EAAE,GAAE,CAAC,CAAC,CAAA;IAExC,kGAAkG;IAClG,MAAM,QAAQ,GAAG,KAAK,EAAE,GAAW,EAAmB,EAAE;QACtD,MAAM,MAAM,GAAG,SAAS;YACtB,CAAC,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,UAAU,GAAG,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YAC5E,CAAC,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAA;QACxD,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO,OAAO,GAAG,EAAE,CAAA;QAC1C,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAA;QAC3D,OAAO,IAAI,CAAC,CAAC,CAAC,OAAO,GAAG,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,EAAE,CAAA;IACrD,CAAC,CAAA;IAED,MAAM,YAAY,GAAG,KAAK,IAAuB,EAAE;QACjD,IAAI,SAAS,EAAE,CAAC;YACd,4FAA4F;YAC5F,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;YACnD,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBACtB,GAAG,CAAC,uBAAuB,IAAI,4DAA4D,CAAC,CAAA;gBAC5F,OAAO,EAAE,CAAA;YACX,CAAC;YACD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;YAC9B,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;gBAChD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAA;gBAC1E,IAAI,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI;oBAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAW,CAAC,CAAA;YACtE,CAAC;YACD,OAAO,CAAC,GAAG,IAAI,CAAC,CAAA;QAClB,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,IAAI,EAAE,EAAE,cAAc,CAAC,CAAC,CAAA;QAC9E,iGAAiG;QACjG,iGAAiG;QACjG,+FAA+F;QAC/F,IAAI,MAAM,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;YACtC,GAAG,CACD,uBAAuB,IAAI,6DAA6D;gBACtF,gEAAgE,CACnE,CAAA;YACD,OAAO,EAAE,CAAA;QACX,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO,EAAE,CAAA;QAChC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IACjE,CAAC,CAAA;IAED,OAAO;QACL,KAAK,CAAC,IAAI;YACR,MAAM,MAAM,GAAa,EAAE,CAAA;YAC3B,KAAK,MAAM,GAAG,IAAI,MAAM,YAAY,EAAE,EAAE,CAAC;gBACvC,GAAG,CAAC,UAAU,IAAI,qBAAqB,MAAM,QAAQ,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;gBAC1E,4FAA4F;gBAC5F,IAAI,SAAS;oBAAE,MAAM,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;;oBAChE,MAAM,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAA;gBACzC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAClB,CAAC;YACD,OAAO,MAAM,CAAA;QACf,CAAC;KACF,CAAA;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAsC;IACxE,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAA;IAE9C,OAAO;QACL,KAAK;YACH,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE;gBAChC,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,KAAK,EAAE,SAAS;gBAChB,KAAK,EAAE,IAAI;gBACX,QAAQ,EAAE,CAAC,SAAS;aACrB,CAAC,CAAA;YAEF,MAAM,MAAM,GAAG,IAAI,OAAO,CAAiD,CAAC,OAAO,EAAE,EAAE;gBACrF,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAA;gBAC/D,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;YAClE,CAAC,CAAC,CAAA;YAEF,OAAO;gBACL,GAAG,EAAE,KAAK,CAAC,GAAG;gBACd,MAAM;gBACN,KAAK,CAAC,IAAI;oBACR,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI;wBAAE,OAAM;oBAC9D,IAAI,CAAC;wBACH,IAAI,SAAS,EAAE,CAAC;4BACd,iFAAiF;4BACjF,KAAK,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE;gCACzD,KAAK,EAAE,QAAQ;6BAChB,CAAC,CAAC,KAAK,EAAE,CAAA;wBACZ,CAAC;6BAAM,CAAC;4BACN,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;wBACrC,CAAC;oBACH,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACb,uFAAuF;wBACvF,0FAA0F;wBAC1F,KAAK,GAAG,CAAA;oBACV,CAAC;oBACD,MAAM,OAAO,CAAC,IAAI,CAAC;wBACjB,MAAM;wBACN,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;4BACtB,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;wBAC5B,CAAC,CAAC;qBACH,CAAC,CAAA;gBACJ,CAAC;aACF,CAAA;QACH,CAAC;KACF,CAAA;AACH,CAAC;AAsCD;;;;;GAKG;AACH,KAAK,UAAU,kBAAkB,CAC/B,YAAiC,EACjC,GAA8B,EAC9B,MAAmB;IAEnB,MAAM,OAAO,GAAa,EAAE,CAAA;IAC5B,KAAK,MAAM,UAAU,IAAI,YAAY,EAAE,CAAC;QACtC,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,MAAM,EAAE,CAAA;YACvC,GAAG,CACD,KAAK;gBACH,CAAC,CAAC,KAAK,UAAU,CAAC,KAAK,WAAW;gBAClC,CAAC,CAAC,KAAK,UAAU,CAAC,KAAK,uCAAuC,CACjE,CAAA;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,CAAC,GAAG,YAAY,2BAA2B,CAAC;gBAAE,MAAM,GAAG,CAAA;YAC5D,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;YAC9B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;gBAClC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;gBAC5B,GAAG,CAAC,KAAK,UAAU,CAAC,KAAK,eAAe,GAAG,CAAC,OAAO,EAAE,CAAC,CAAA;YACxD,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,MAAM,iBAAiB,GAAG,KAAK,CAAA;AAE/B;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAoB;IACtD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,WAAW,CAAA;IACvC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,OAAe,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,IAAI,CAAC,CAAC,CAAA;IACnF,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAA;IAEnC,IAAI,OAAO,GAAG,CAAC,CAAA;IACf,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,IAAI,OAAO,GAAa,EAAE,CAAA;IAC1B,IAAI,MAA0B,CAAA;IAC9B,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAA;IAEhC,kGAAkG;IAClG,uFAAuF;IACvF,IAAI,UAAU,GAAG,CAAC,CAAA;IAClB,IAAI,WAAW,GAAG,KAAK,CAAA;IACvB,MAAM,UAAU,GAAG,GAAoB,EAAE;QACvC,MAAM,IAAI,GAAG,EAAE,UAAU,CAAA;QACzB,WAAW,GAAG,KAAK,CAAA;QACnB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAA;QACrC,KAAK,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;YAC5B,IAAI,IAAI,KAAK,UAAU;gBAAE,WAAW,GAAG,IAAI,CAAA;QAC7C,CAAC,CAAC,CAAA;QACF,OAAO,OAAO,CAAA;IAChB,CAAC,CAAA;IAED,IAAI,KAAK,GAAG,UAAU,EAAE,CAAA;IACxB,IAAI,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAA;IAE7C,8FAA8F;IAC9F,2FAA2F;IAC3F,IAAI,YAAY,GAAG,CAAC,CAAA;IAEpB,MAAM,OAAO,GAAG,KAAK,IAAmB,EAAE;QACxC,MAAM,KAAK,CAAC,IAAI,EAAE,CAAA;QAClB,MAAM,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAA;QACpC,8FAA8F;QAC9F,mFAAmF;QACnF,IAAI,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;QACzC,KAAK,GAAG,UAAU,EAAE,CAAA;QACpB,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAA;IAC9C,CAAC,CAAA;IAED,0FAA0F;IAC1F,6FAA6F;IAC7F,MAAM,aAAa,GAAG,GAAY,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,CAAA;IAEjE,OACE,CAAC,aAAa,EAAE;QAChB,MAAM,KAAK,SAAS;QACpB,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,EACtD,CAAC;QACD,MAAM,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;QAC5C,IAAI,aAAa,EAAE;YAAE,MAAK;QAC1B,KAAK,IAAI,CAAC,CAAA;QAEV,4FAA4F;QAC5F,mEAAmE;QACnE,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,EAAE,CAAA;QACvB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAA;QAC1C,IAAI,OAAO;YAAE,YAAY,GAAG,CAAC,CAAA;QAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,MAAM,CAAC,CAAA;QAC/D,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QAClB,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;QAEvB,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;YACpB,KAAK,SAAS,CAAC;YACf,KAAK,OAAO;gBACV,MAAK;YACP,KAAK,SAAS;gBACZ,GAAG,CAAC,mBAAmB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,gCAAgC,CAAC,CAAA;gBACzF,MAAK;YACP,KAAK,WAAW;gBACd,GAAG,CAAC,0BAA0B,MAAM,CAAC,aAAa,mBAAmB,CAAC,CAAA;gBACtE,MAAK;YACP,KAAK,UAAU;gBACb,GAAG,CAAC,0BAA0B,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,SAAS,GAAG,CAAC,CAAA;gBACrE,MAAK;YACP,KAAK,QAAQ,EAAE,CAAC;gBACd,OAAO,IAAI,CAAC,CAAA;gBACZ,YAAY,IAAI,CAAC,CAAA;gBACjB,GAAG,CAAC,mBAAmB,MAAM,CAAC,MAAM,aAAa,OAAO,EAAE,CAAC,CAAA;gBAC3D,IAAI,YAAY,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC;oBAC1C,2FAA2F;oBAC3F,8EAA8E;oBAC9E,MAAM;wBACJ,8CAA8C,YAAY,oBAAoB;4BAC9E,8EAA8E;4BAC9E,oCAAoC,CAAA;oBACtC,GAAG,CAAC,gBAAgB,MAAM,EAAE,CAAC,CAAA;oBAC7B,MAAK;gBACP,CAAC;gBACD,IAAI,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC;oBAC9B,OAAO,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,EAAE,MAAM,CAAC,CAAA;gBACpE,CAAC;gBACD,MAAM,OAAO,EAAE,CAAA;gBACf,GAAG,CAAC,oCAAoC,CAAC,CAAA;gBACzC,MAAK;YACP,CAAC;QACH,CAAC;IACH,CAAC;IAED,qEAAqE;IACrE,MAAM,KAAK,CAAC,IAAI,EAAE,CAAA;IAClB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;QACvC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,GAAG,CAAC,YAAY,MAAM,CAAC,MAAM,mCAAmC,CAAC,CAAA;IAC1F,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAA;AAC5C,CAAC"}
1
+ {"version":3,"file":"supervise-runtime.js","sourceRoot":"","sources":["../src/supervise-runtime.ts"],"names":[],"mappings":"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"}
@@ -70,17 +70,79 @@ export interface SuperviseState {
70
70
  quietUntil: number;
71
71
  /** When the previous tick ran — the basis for clock-jump (sleep) detection. */
72
72
  lastTickAt: number;
73
+ /**
74
+ * When the FIRST failed probe of the current outage was counted; `undefined` whenever the stack
75
+ * is serving. This is what lets a recovery report how long the stack was actually unreachable
76
+ * ({@link SuperviseAction} `recovered.downMs`) instead of only how many probes missed.
77
+ *
78
+ * Deliberately set when a failure is COUNTED, not on any non-serving observation, so a cold boot
79
+ * inside the grace window is not reported as an outage — the port is legitimately unbound while
80
+ * the workspace builds and migrations run.
81
+ *
82
+ * BOTH ends of the resulting window are quantized to the poll interval, and the errors point in
83
+ * OPPOSITE directions: the start is the first probe that missed, which is up to one `pollMs`
84
+ * AFTER the stack actually went down, while the end is the probe that saw it again, up to one
85
+ * `pollMs` after it actually came back. So the measurement is the true duration ± one `pollMs`,
86
+ * not a floor — at the default 10s poll a 100ms blip straddling a tick boundary measures a full
87
+ * 10s. A reader must be told the resolution alongside the number, which is why every rendering
88
+ * of it names the poll interval it was measured against.
89
+ */
90
+ notServingSince?: number;
91
+ /**
92
+ * Whether the stack has been observed SERVING since the child now running was started.
93
+ *
94
+ * This is what separates the two ways a recovery can be reached, which need opposite reactions
95
+ * (see {@link RecoveryCause}). Required rather than optional: a state literal that forgets it
96
+ * must fail to typecheck, because either default silently misattributes one of the two cases —
97
+ * defaulting to `true` reports our own overrunning boot as an outage nothing explains, and
98
+ * defaulting to `false` suppresses the loud warning a genuine outage exists to raise.
99
+ */
100
+ servedSinceStart: boolean;
73
101
  }
102
+ /**
103
+ * Why a stack that was failing probes is answering again. Both reach {@link step}'s `recovered`
104
+ * action, and reporting them the same way is what made the original diagnosis wrong: they are
105
+ * opposite facts about who caused the gap, and they have different remedies.
106
+ */
107
+ export type RecoveryCause =
108
+ /**
109
+ * The stack had SERVED since it was started, then stopped, then came back with no repair of ours
110
+ * in between — so something restarted it underneath the supervisor. This is the outage worth
111
+ * shouting about; nothing else records it.
112
+ */
113
+ 'unexplained'
114
+ /**
115
+ * The stack had NEVER served since the supervisor started it, so nothing cycled underneath us:
116
+ * our own boot simply outlasted `bootGraceMs` and the probes that missed were watching a stack
117
+ * that had not finished coming up. Reported (the grace window is mistuned, and a few more missed
118
+ * probes would have restarted a boot that was about to succeed) but never as an outage.
119
+ */
120
+ | 'slow-start';
74
121
  /** What the runtime should do about this tick. Every branch of {@link step} names one. */
75
122
  export type SuperviseAction =
76
123
  /** Serving, and it was serving before too — nothing to say. */
77
124
  {
78
125
  kind: 'serving';
79
126
  }
80
- /** Serving again after one or more failed probes, without needing a repair. */
127
+ /**
128
+ * Serving again after one or more failed probes, without needing a repair.
129
+ *
130
+ * `cause` says which of the two very different things just happened, and the caller MUST branch
131
+ * on it rather than treating every recovery as an outage. A `'unexplained'` recovery is the
132
+ * self-healed outage worth saying loudly: the stack stopped answering and came back with nothing
133
+ * of ours in between, so something restarted it underneath the supervisor — on a `node --watch`
134
+ * deployment usually a file-change storm, which cycles the server several times in a row, leaves
135
+ * the port unbound for a few seconds, and kills any client mid-request with `ECONNREFUSED` while
136
+ * every process involved stays alive and the server log shows no crash. Without the duration and
137
+ * the "we did not cause this" framing, the only trace left is two probe-failure lines reading
138
+ * like noise. A `'slow-start'` recovery is the supervisor watching its OWN child finish booting
139
+ * past the grace window, which is a mistuned window rather than an outage.
140
+ */
81
141
  | {
82
142
  kind: 'recovered';
83
143
  afterFailures: number;
144
+ downMs: number;
145
+ cause: RecoveryCause;
84
146
  }
85
147
  /** Not serving, but inside a boot/resume grace window — wait it out. */
86
148
  | {
@@ -115,6 +177,10 @@ export declare function initialState(now: number, config: SuperviseConfig): Supe
115
177
  * repair's own duration as drift, read a slow-but-successful recovery as a host suspend, and — since
116
178
  * resume detection deliberately outranks the boot-grace window — immediately kill the child it just
117
179
  * started. Re-basing means the clock-jump signal only ever measures time we were genuinely idle.
180
+ *
181
+ * `servedSinceStart` restarts at `false` for the same reason it starts there on a cold boot: the
182
+ * child now running has never answered, so probes that miss while it comes up are watching OUR
183
+ * restart finish, not something cycling the stack underneath us.
118
184
  */
119
185
  export declare function stateAfterStart(now: number, config: SuperviseConfig): SuperviseState;
120
186
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"supervise.d.ts","sourceRoot":"","sources":["../src/supervise.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,iGAAiG;AACjG,MAAM,WAAW,eAAe;IAC9B,uCAAuC;IACvC,MAAM,EAAE,MAAM,CAAA;IACd;;;;OAIG;IACH,WAAW,EAAE,MAAM,CAAA;IACnB,4FAA4F;IAC5F,aAAa,EAAE,MAAM,CAAA;IACrB;;;;;;;;OAQG;IACH,WAAW,EAAE,MAAM,CAAA;IACnB,qFAAqF;IACrF,gBAAgB,EAAE,MAAM,CAAA;IACxB;;;;;;OAMG;IACH,eAAe,EAAE,MAAM,CAAA;CACxB;AAED,0FAA0F;AAC1F,eAAO,MAAM,kBAAkB;aAC7B,MAAM,EAAE,KAAM;aACd,WAAW,EAAE,KAAM;aACnB,aAAa,EAAE,KAAM;aACrB,gBAAgB,EAAE,CAAC;aACnB,eAAe,EAAE,CAAC;CACV,CAAA;AAEV;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,GAAE,OAAO,CAAC,eAAe,CAAM,GAAG,eAAe,CAU9F;AAED,iGAAiG;AACjG,MAAM,WAAW,cAAc;IAC7B,wEAAwE;IACxE,QAAQ,EAAE,MAAM,CAAA;IAChB,yFAAyF;IACzF,UAAU,EAAE,MAAM,CAAA;IAClB,+EAA+E;IAC/E,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,0FAA0F;AAC1F,MAAM,MAAM,eAAe;AACzB,+DAA+D;AAC7D;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE;AACrB,+EAA+E;GAC7E;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE;AAC9C,wEAAwE;GACtE;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE;AACnC,kEAAkE;GAChE;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE;AAC3D,8EAA8E;GAC5E;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE;AACpC,kEAAkE;GAChE;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAA;AAExC,sFAAsF;AACtF,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,GAAG,cAAc,CAEjF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,GAAG,cAAc,CAEpF;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,IAAI,CAClB,KAAK,EAAE,cAAc,EACrB,WAAW,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE,EACrE,MAAM,EAAE,eAAe,GACtB;IAAE,KAAK,EAAE,cAAc,CAAC;IAAC,MAAM,EAAE,eAAe,CAAA;CAAE,CAwDpD"}
1
+ {"version":3,"file":"supervise.d.ts","sourceRoot":"","sources":["../src/supervise.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,iGAAiG;AACjG,MAAM,WAAW,eAAe;IAC9B,uCAAuC;IACvC,MAAM,EAAE,MAAM,CAAA;IACd;;;;OAIG;IACH,WAAW,EAAE,MAAM,CAAA;IACnB,4FAA4F;IAC5F,aAAa,EAAE,MAAM,CAAA;IACrB;;;;;;;;OAQG;IACH,WAAW,EAAE,MAAM,CAAA;IACnB,qFAAqF;IACrF,gBAAgB,EAAE,MAAM,CAAA;IACxB;;;;;;OAMG;IACH,eAAe,EAAE,MAAM,CAAA;CACxB;AAED,0FAA0F;AAC1F,eAAO,MAAM,kBAAkB;aAC7B,MAAM,EAAE,KAAM;aACd,WAAW,EAAE,KAAM;aACnB,aAAa,EAAE,KAAM;aACrB,gBAAgB,EAAE,CAAC;aACnB,eAAe,EAAE,CAAC;CACV,CAAA;AAEV;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,GAAE,OAAO,CAAC,eAAe,CAAM,GAAG,eAAe,CAU9F;AAED,iGAAiG;AACjG,MAAM,WAAW,cAAc;IAC7B,wEAAwE;IACxE,QAAQ,EAAE,MAAM,CAAA;IAChB,yFAAyF;IACzF,UAAU,EAAE,MAAM,CAAA;IAClB,+EAA+E;IAC/E,UAAU,EAAE,MAAM,CAAA;IAClB;;;;;;;;;;;;;;;;OAgBG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB;;;;;;;;OAQG;IACH,gBAAgB,EAAE,OAAO,CAAA;CAC1B;AAED;;;;GAIG;AACH,MAAM,MAAM,aAAa;AACvB;;;;GAIG;AACD,aAAa;AACf;;;;;GAKG;GACD,YAAY,CAAA;AAEhB,0FAA0F;AAC1F,MAAM,MAAM,eAAe;AACzB,+DAA+D;AAC7D;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE;AACrB;;;;;;;;;;;;;GAaG;GACD;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,aAAa,CAAA;CAAE;AACpF,wEAAwE;GACtE;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE;AACnC,kEAAkE;GAChE;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE;AAC3D,8EAA8E;GAC5E;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE;AACpC,kEAAkE;GAChE;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAA;AAExC,sFAAsF;AACtF,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,GAAG,cAAc,CAOjF;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,GAAG,cAAc,CAOpF;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,IAAI,CAClB,KAAK,EAAE,cAAc,EACrB,WAAW,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE,EACrE,MAAM,EAAE,eAAe,GACtB;IAAE,KAAK,EAAE,cAAc,CAAC;IAAC,MAAM,EAAE,eAAe,CAAA;CAAE,CAsFpD"}
package/dist/supervise.js CHANGED
@@ -41,7 +41,12 @@ export function resolveSuperviseConfig(partial = {}) {
41
41
  }
42
42
  /** State for a freshly started child: clean counters and a full boot grace window. */
43
43
  export function initialState(now, config) {
44
- return { failures: 0, quietUntil: now + config.bootGraceMs, lastTickAt: now };
44
+ return {
45
+ failures: 0,
46
+ quietUntil: now + config.bootGraceMs,
47
+ lastTickAt: now,
48
+ servedSinceStart: false,
49
+ };
45
50
  }
46
51
  /**
47
52
  * State to adopt right after (re)spawning a child mid-run — a fresh boot grace, counters clear.
@@ -53,9 +58,18 @@ export function initialState(now, config) {
53
58
  * repair's own duration as drift, read a slow-but-successful recovery as a host suspend, and — since
54
59
  * resume detection deliberately outranks the boot-grace window — immediately kill the child it just
55
60
  * started. Re-basing means the clock-jump signal only ever measures time we were genuinely idle.
61
+ *
62
+ * `servedSinceStart` restarts at `false` for the same reason it starts there on a cold boot: the
63
+ * child now running has never answered, so probes that miss while it comes up are watching OUR
64
+ * restart finish, not something cycling the stack underneath us.
56
65
  */
57
66
  export function stateAfterStart(now, config) {
58
- return { failures: 0, quietUntil: now + config.bootGraceMs, lastTickAt: now };
67
+ return {
68
+ failures: 0,
69
+ quietUntil: now + config.bootGraceMs,
70
+ lastTickAt: now,
71
+ servedSinceStart: false,
72
+ };
59
73
  }
60
74
  /**
61
75
  * One tick of the supervisor: current state + what we just observed -> next state + the action to
@@ -85,12 +99,15 @@ export function step(state, observation, config) {
85
99
  const quietUntil = Math.max(state.quietUntil, now + config.resumeGraceMs);
86
100
  if (serving) {
87
101
  return {
88
- state: { failures: 0, quietUntil, lastTickAt: now },
102
+ state: { failures: 0, quietUntil, lastTickAt: now, servedSinceStart: true },
89
103
  action: { kind: 'resumed', driftMs },
90
104
  };
91
105
  }
106
+ // No outage stamp here, nor on either repair branch below: a `repair` is always followed by a
107
+ // respawn, and `stateAfterStart` replaces this state wholesale the moment the new child exists.
108
+ // Carrying a window forward into it would be state no reader can ever reach.
92
109
  return {
93
- state: { failures: 0, quietUntil, lastTickAt: now },
110
+ state: { failures: 0, quietUntil, lastTickAt: now, servedSinceStart: state.servedSinceStart },
94
111
  action: {
95
112
  kind: 'repair',
96
113
  reason: `not serving after a ${Math.round(driftMs / 1000)}s stall (host slept?)`,
@@ -99,13 +116,33 @@ export function step(state, observation, config) {
99
116
  }
100
117
  if (serving) {
101
118
  const action = state.failures > 0
102
- ? { kind: 'recovered', afterFailures: state.failures }
119
+ ? {
120
+ kind: 'recovered',
121
+ afterFailures: state.failures,
122
+ // `notServingSince` is always set by the time a failure has been counted, so the
123
+ // fallback only guards against a hand-built state in a test: report 0 rather than a
124
+ // duration measured from an unrelated clock origin.
125
+ downMs: now - (state.notServingSince ?? now),
126
+ // The whole distinction: only a stack that had ALREADY answered under this child can
127
+ // have been taken down by something other than us. One that never answered was still
128
+ // booting, and blaming an invisible third party for our own slow start is exactly the
129
+ // misdiagnosis this reporting exists to prevent.
130
+ cause: state.servedSinceStart ? 'unexplained' : 'slow-start',
131
+ }
103
132
  : { kind: 'serving' };
104
- return { state: { failures: 0, quietUntil: state.quietUntil, lastTickAt: now }, action };
133
+ return {
134
+ state: { failures: 0, quietUntil: state.quietUntil, lastTickAt: now, servedSinceStart: true },
135
+ action,
136
+ };
105
137
  }
106
138
  if (observation.childExited === true) {
107
139
  return {
108
- state: { failures: 0, quietUntil: state.quietUntil, lastTickAt: now },
140
+ state: {
141
+ failures: 0,
142
+ quietUntil: state.quietUntil,
143
+ lastTickAt: now,
144
+ servedSinceStart: state.servedSinceStart,
145
+ },
109
146
  action: { kind: 'repair', reason: 'the supervised command exited' },
110
147
  };
111
148
  }
@@ -115,15 +152,22 @@ export function step(state, observation, config) {
115
152
  action: { kind: 'grace', msLeft: state.quietUntil - now },
116
153
  };
117
154
  }
155
+ const { quietUntil, servedSinceStart } = state;
118
156
  const failures = state.failures + 1;
119
157
  if (failures >= config.failureThreshold) {
120
158
  return {
121
- state: { failures: 0, quietUntil: state.quietUntil, lastTickAt: now },
159
+ state: { failures: 0, quietUntil, lastTickAt: now, servedSinceStart },
122
160
  action: { kind: 'repair', reason: `${failures} consecutive failed health probes` },
123
161
  };
124
162
  }
125
163
  return {
126
- state: { failures, quietUntil: state.quietUntil, lastTickAt: now },
164
+ state: {
165
+ failures,
166
+ quietUntil,
167
+ lastTickAt: now,
168
+ notServingSince: state.notServingSince ?? now,
169
+ servedSinceStart,
170
+ },
127
171
  action: { kind: 'counting', failures, threshold: config.failureThreshold },
128
172
  };
129
173
  }
@@ -1 +1 @@
1
- {"version":3,"file":"supervise.js","sourceRoot":"","sources":["../src/supervise.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"supervise.js","sourceRoot":"","sources":["../src/supervise.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,12 @@
6
6
  * is about to watch, and hands over to `runSupervisor`.
7
7
  */
8
8
  import { type CliOptions } from './args.js';
9
+ /**
10
+ * Local wall-clock `HH:MM:SS` for a log prefix. Local rather than UTC on purpose: the reader is
11
+ * comparing these lines against a server log in the same terminal and against their own memory of
12
+ * when something broke, both of which are in local time.
13
+ */
14
+ export declare function timestamp(at?: Date): string;
9
15
  /**
10
16
  * Re-quote a token that contains whitespace. The child is launched as one shell string (see
11
17
  * `createChildLauncher`), so a path with a space in it would otherwise split into two arguments —
@@ -1 +1 @@
1
- {"version":3,"file":"superviseCommand.d.ts","sourceRoot":"","sources":["../src/superviseCommand.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAY,KAAK,UAAU,EAAoC,MAAM,WAAW,CAAA;AAcvF;;;;;;;;;;;;;GAaG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAyB,GAAG,MAAM,CAMrF;AAkBD,wBAAsB,SAAS,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAsGlE"}
1
+ {"version":3,"file":"superviseCommand.d.ts","sourceRoot":"","sources":["../src/superviseCommand.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAY,KAAK,UAAU,EAAoC,MAAM,WAAW,CAAA;AAcvF;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,EAAE,GAAE,IAAiB,GAAG,MAAM,CAGvD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAyB,GAAG,MAAM,CAMrF;AAkBD,wBAAsB,SAAS,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CA4HlE"}
@@ -11,6 +11,15 @@ import { createNodeShell } from './host-shell.js';
11
11
  import { createK3sClusterDependency } from './supervise-k3s.js';
12
12
  import { createChildLauncher, createComposeDependency, createHealthProbe, createPortReaper, OperatorActionRequiredError, runSupervisor, } from './supervise-runtime.js';
13
13
  import { resolveSuperviseConfig } from './supervise.js';
14
+ /**
15
+ * Local wall-clock `HH:MM:SS` for a log prefix. Local rather than UTC on purpose: the reader is
16
+ * comparing these lines against a server log in the same terminal and against their own memory of
17
+ * when something broke, both of which are in local time.
18
+ */
19
+ export function timestamp(at = new Date()) {
20
+ const pad = (value) => String(value).padStart(2, '0');
21
+ return `${pad(at.getHours())}:${pad(at.getMinutes())}:${pad(at.getSeconds())}`;
22
+ }
14
23
  /**
15
24
  * Re-quote a token that contains whitespace. The child is launched as one shell string (see
16
25
  * `createChildLauncher`), so a path with a space in it would otherwise split into two arguments —
@@ -83,8 +92,14 @@ export async function supervise(options) {
83
92
  }
84
93
  const launcher = createChildLauncher({ command, cwd });
85
94
  const probe = createHealthProbe({ port, healthPath });
95
+ // Timestamped, because these lines are read INTERLEAVED with the supervised server's own output
96
+ // and are usually the only record of a transient outage. The supervised stack logs structured
97
+ // lines with their own timestamps; untimestamped supervisor lines could not be placed against
98
+ // them, so reconstructing when a stack was actually down meant interpolating from whatever
99
+ // neighbouring line happened to carry a clock. Local wall-clock time to the second matches what
100
+ // the reader sees elsewhere in the same terminal.
86
101
  const log = (message) => {
87
- process.stdout.write(`[supervise] ${message}\n`);
102
+ process.stdout.write(`[supervise ${timestamp()}] ${message}\n`);
88
103
  };
89
104
  const reaper = createPortReaper(shell, port, { log });
90
105
  log(`watching :${port}${healthPath} every ${config.pollMs / 1_000}s — ` +
@@ -128,6 +143,17 @@ export async function supervise(options) {
128
143
  log,
129
144
  stopSignal: stopper.signal,
130
145
  });
146
+ // The one place an unexplained outage is still readable after the fact. Nothing crashed while it
147
+ // happened, so it leaves no trace in the supervised stack's own log, and on a supervisor left
148
+ // running for days the warning that named it has long since scrolled away. Repairs are summarised
149
+ // beside it because the contrast is the point: repairs are the supervisor working, unexplained
150
+ // outages are the stack cycling on its own.
151
+ log(`stopped after ${outcome.ticks} probe(s): ${outcome.repairs} repair(s), ` +
152
+ `${outcome.unexplainedOutages} unexplained outage(s)`);
153
+ if (outcome.unexplainedOutages > 0) {
154
+ log(' ↳ the stack went down and came back on its own; nothing this supervisor did caused those. ' +
155
+ 'Scroll back for the first one, which carries the likely cause.');
156
+ }
131
157
  // A supervisor that stopped because the command is broken must not report success — a wrapper
132
158
  // exiting 0 on a dead stack is the failure shape this whole command exists to make impossible.
133
159
  if (outcome.gaveUp !== undefined)
@@ -1 +1 @@
1
- {"version":3,"file":"superviseCommand.js","sourceRoot":"","sources":["../src/superviseCommand.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"superviseCommand.js","sourceRoot":"","sources":["../src/superviseCommand.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cat-factory/cli",
3
- "version": "0.13.2",
3
+ "version": "0.13.4",
4
4
  "description": "Bootstrap CLI for the Agent Architecture Board: scaffold a local-mode deployment (Node/local backend + frontend SPA) on your own machine — generates the crypto secrets, populates and gitignores the .env files, and mints a GitHub/GitLab personal access token by opening the browser at the right pre-scoped URL.",
5
5
  "keywords": [
6
6
  "bootstrap",
@@ -37,8 +37,8 @@
37
37
  "@clack/prompts": "^1.7.0"
38
38
  },
39
39
  "devDependencies": {
40
- "@cat-factory/contracts": "0.327.0",
41
- "@cat-factory/kernel": "0.318.0",
40
+ "@cat-factory/contracts": "0.331.0",
41
+ "@cat-factory/kernel": "0.321.1",
42
42
  "@types/node": "^26.2.0",
43
43
  "typescript": "7.0.2",
44
44
  "valibot": "^1.4.2",