ignotum 0.0.15 → 0.0.16
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/bin.mjs +4 -4
- package/dist/cli/bin.mjs.map +1 -1
- package/package.json +3 -3
- package/src/cli/control-client.ts +4 -2
- package/src/cli/deploy.ts +4 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ignotum",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.16",
|
|
4
4
|
"description": "Ignotum is an opinionated TypeScript application cloud.",
|
|
5
5
|
"author": "Johannes Schießl",
|
|
6
6
|
"repository": {
|
|
@@ -106,9 +106,9 @@
|
|
|
106
106
|
"quickjs-emscripten": "0.32.0",
|
|
107
107
|
"redis": "6.2.1",
|
|
108
108
|
"@ignotum/contracts": "1.0.0",
|
|
109
|
-
"@ignotum/versions": "1.0.0",
|
|
110
109
|
"@ignotum/runtime": "1.0.0",
|
|
111
|
-
"@ignotum/shared": "1.0.0"
|
|
110
|
+
"@ignotum/shared": "1.0.0",
|
|
111
|
+
"@ignotum/versions": "1.0.0"
|
|
112
112
|
},
|
|
113
113
|
"engines": {
|
|
114
114
|
"node": ">=22.18.0"
|
|
@@ -165,10 +165,12 @@ export const controlClientLayer = Layer.effect(
|
|
|
165
165
|
const config = yield* HostedControlConfiguration;
|
|
166
166
|
const fileSystem = yield* FileSystem.FileSystem;
|
|
167
167
|
const http = yield* HttpClient.HttpClient;
|
|
168
|
+
// Deployment writes are idempotent and may briefly exhaust a constrained
|
|
169
|
+
// control worker while processing the complete module graph.
|
|
168
170
|
const idempotentHttp = http.pipe(
|
|
169
171
|
HttpClient.retryTransient({
|
|
170
|
-
schedule: Schedule.
|
|
171
|
-
times:
|
|
172
|
+
schedule: Schedule.spaced("100 millis"),
|
|
173
|
+
times: 20,
|
|
172
174
|
}),
|
|
173
175
|
);
|
|
174
176
|
|
package/src/cli/deploy.ts
CHANGED
|
@@ -100,7 +100,10 @@ export const uploadVersion = Effect.fn("Deploy.upload")(function* (
|
|
|
100
100
|
yield* Effect.forEach(
|
|
101
101
|
files,
|
|
102
102
|
(file) => control.uploadVersionFile(configuration.appId, versionId, file),
|
|
103
|
-
|
|
103
|
+
// The hosted control plane runs within Cloudflare's per-request CPU budget.
|
|
104
|
+
// Serialize uploads so several validation-heavy requests cannot contend in
|
|
105
|
+
// the same isolate and exhaust that budget together.
|
|
106
|
+
{ concurrency: 1, discard: true },
|
|
104
107
|
).pipe(
|
|
105
108
|
Effect.catchTags({
|
|
106
109
|
ControlClientUnavailable: (cause) =>
|