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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ignotum",
3
- "version": "0.0.15",
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.exponential("100 millis"),
171
- times: 3,
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
- { concurrency: 4, discard: true },
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) =>