@wenathlan/saddle 2.0.164 → 2.0.165

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/Dockerfile CHANGED
@@ -1,4 +1,4 @@
1
- # saddle 2.0.163 — THE ENGINE CONTAINER FILE
1
+ # saddle 2.0.165 — THE ENGINE CONTAINER FILE
2
2
  #
3
3
  # THE FAMILY CONTAINER DOCTRINE, THE SADDLE SHAPE: one versioned container
4
4
  # per engine, built like the site homes (argan, cadria) build theirs — a
@@ -16,9 +16,9 @@
16
16
  # THE THREE VARIANT PROFILES (the saddle-exclusive law: the only app of
17
17
  # the family that ships three) — select with the target flag:
18
18
  #
19
- # docker build --target max -t saddle:2.0.162 .
20
- # docker build --target balanced -t saddle:2.0.162-balanced .
21
- # docker build --target lite -t saddle:2.0.162-lite .
19
+ # docker build --target max -t saddle:2.0.164 .
20
+ # docker build --target balanced -t saddle:2.0.164-balanced .
21
+ # docker build --target lite -t saddle:2.0.164-lite .
22
22
  #
23
23
  # max — the full profile catalog: the epyc 9965 class, 192 vcpu,
24
24
  # 384 threads, 1024 gib ram plan, the b200 gpu plan x8.
@@ -89,11 +89,13 @@
89
89
  # names — the CONTAINERARCHIDS of saddle/containerarch.ts (linux-x64,
90
90
  # darwin-arm64, windows-x64, linux-arm64, darwin-x64, windows-arm64,
91
91
  # linux-x64-musl, linux-riscv64, wasm32, darwin-arm64-v8,
92
- # windows-x64-gnu). The build legs follow the container-carried seats
93
- # the pinned node base honestly answers: the amd64 leg serves linux-x64
94
- # and linux-x64-musl, the arm64 leg serves linux-arm64, and the arm64/v8
95
- # leg serves the darwin-arm64-v8 abi seat (the arm64 legs ride qemu
96
- # emulation in the publish workflow). The linux-riscv64 seat the
92
+ # windows-x64-gnu). The build legs follow the four base-carried legs
93
+ # the pinned node base honestly answers (the go-style build index of
94
+ # containerarch.ts): the amd64 leg serves linux-x64 and linux-x64-musl,
95
+ # the arm64 leg serves linux-arm64 and the darwin-arm64-v8 abi seat
96
+ # through its v8 variant, and the ppc64le and s390x legs ride the
97
+ # go-style build index under qemu emulation in the publish workflow.
98
+ # The linux-riscv64 seat the
97
99
  # containerarch standard carries on the bash:5 driver base answers the
98
100
  # honest coded absence on this node engine base (the pinned base ships
99
101
  # no riscv64 manifest), and the six target seats (the darwin and
@@ -141,7 +143,7 @@ ARG NODE_BASE_DIGEST
141
143
  # ===== stage: solbuild — the locked npm tree and the console spa =====
142
144
  FROM --platform=$BUILDPLATFORM ${NODE_BASE_TAG}@sha256:${NODE_BASE_DIGEST} AS solbuild
143
145
 
144
- ARG SADDLE_VERSION=2.0.163
146
+ ARG SADDLE_VERSION=2.0.165
145
147
 
146
148
  WORKDIR /app
147
149
 
@@ -169,7 +171,7 @@ RUN npm run web:build:pages \
169
171
  # ===== stage: base — the hardened runtime floor every profile shares =====
170
172
  FROM ${NODE_BASE_TAG}@sha256:${NODE_BASE_DIGEST} AS base
171
173
 
172
- ARG SADDLE_VERSION=2.0.163
174
+ ARG SADDLE_VERSION=2.0.165
173
175
  # the revision stamp the devthink container carries (DEVTHINK_REVISION
174
176
  # there): the publish legs pass the release sha at build time and the
175
177
  # revision label below declares the default-unknown local shape.
@@ -217,17 +219,19 @@ ENV NODE_ENV=production \
217
219
 
218
220
  # the arch-leg guard of the eleven-architecture standard: the pinned
219
221
  # node base resolves the platform of every leg buildx names, and this
220
- # echo layer stamps the honesty law into the build log — the two arches
221
- # the base carries answer their leg line (the amd64 leg serves the
222
- # linux-x64 and linux-x64-musl seats, the arm64 leg serves the
222
+ # echo layer stamps the honesty law into the build log — the four
223
+ # arches the base carries answer their leg line (the amd64 leg serves
224
+ # the linux-x64 and linux-x64-musl seats, the arm64 leg serves the
223
225
  # linux-arm64 seat and the darwin-arm64-v8 abi seat through its v8
224
- # variant), the legacy builder (no platform axis) answers its documented
226
+ # variant, the ppc64le and s390x legs ride the go-style build index of
227
+ # the containerarch table under qemu emulation), the legacy builder
228
+ # (no platform axis) answers its documented
225
229
  # note, and any other arch answers the coded refusal before the heavy
226
230
  # steps below could run (buildx itself fails such a leg at base
227
231
  # resolution first; the guard keeps the law loud on every builder).
228
232
  RUN case "${TARGETARCH:-}" in \
229
- amd64|arm64) \
230
- echo "arch leg ${TARGETARCH} of ${TARGETPLATFORM:-<unresolved>}: one of the two arches the pinned node base carries — the legs of the container-carried seats of the eleven-architecture standard (linux-x64 and linux-x64-musl on amd64, linux-arm64 and the darwin-arm64-v8 abi seat on arm64)" ;; \
233
+ amd64|arm64|ppc64le|s390x) \
234
+ echo "arch leg ${TARGETARCH} of ${TARGETPLATFORM:-<unresolved>}: one of the four arches the pinned node base carries — the build legs of the eleven-architecture standard (linux-x64 and linux-x64-musl on amd64, linux-arm64 and the darwin-arm64-v8 abi seat on arm64, the ppc64le and s390x go-style build-index legs under qemu emulation)" ;; \
231
235
  "") \
232
236
  echo "arch leg unresolved: the legacy builder carries no platform axis; buildkit answers TARGETARCH per leg" ;; \
233
237
  *) \
package/README.md CHANGED
@@ -31,7 +31,7 @@ domain modules land beside the saddle domains:
31
31
  | `media.ts`, `render.ts`, `quantum.ts`, `tiers.ts` | media pipeline, GPU registry, quantum simulation, tier policy |
32
32
  | `security.ts`, `alternatives.ts` | hardening gates and the alternative-stack catalog |
33
33
  | `index.html`, `App.tsx`, `sol/` | the single SPA shell and the Sol theme (one tsx app with one stylesheet per theme) |
34
- | `server.ts`, `sandbox.ts` | the zero-dependency self-hosted API of the 2.0.164 grand-merge envelope (`node server.ts`; the api answers its version at `/api/v1/health`) and the browser-pure engine port |
34
+ | `server.ts`, `sandbox.ts` | the zero-dependency self-hosted API of the 2.0.165 grand-merge envelope (`node server.ts`; the api answers its version at `/api/v1/health`) and the browser-pure engine port |
35
35
  | `vercel.json`, `netlify.toml` | the platform deploy adapters beside the surface they publish (the caddy ghost stays out of the tree) |
36
36
  | `specs/*` package exports | processors, gpus, cores, boards and the qemu/mttg/passage/docker envelopes |
37
37
 
package/docker.config CHANGED
@@ -122,6 +122,61 @@
122
122
  "nativeBuild": true,
123
123
  "note": "the eleven-arch family standard (PR15b: amd64, amd64/v2, arm64, arm/v7, arm/v6, ppc64le, s390x, riscv64, 386, mips64le, loong64 - the complete linux platform surface docker/buildx carries, the owner's law: eleven OS architectures for every container of every application) the one container file and the publish lanes carry; amd64 and amd64/v2 build native, the other nine legs ride QEMU emulation; unknown/* stays rejected as not runnable"
124
124
  },
125
+ "profiles": {
126
+ "law": "the saddle-exclusive trio (the pr15 exotic law): the only app of the family that ships three container profiles - every profile rides the same engine graph (the same ninety modalities, the same console, the same health surface); only the declared virtual hardware plan differs, and the values mirror the engineplans table the publish matrix stamps",
127
+ "defaultProfile": "balanced",
128
+ "variants": [
129
+ {
130
+ "id": "max",
131
+ "target": "max",
132
+ "tagSuffix": "",
133
+ "cpu": "epyc9965",
134
+ "cpuName": "EPYC 9965",
135
+ "vcpus": 192,
136
+ "threads": 384,
137
+ "ramGb": 1024,
138
+ "gpu": "b200",
139
+ "gpus": 8,
140
+ "note": "the full profile catalog: the bare version tag the registry lane answers"
141
+ },
142
+ {
143
+ "id": "balanced",
144
+ "target": "balanced",
145
+ "tagSuffix": "-balanced",
146
+ "cpu": "threadripperpro9995wx",
147
+ "cpuName": "ThreadRipper PRO 9995WX",
148
+ "vcpus": 96,
149
+ "threads": 192,
150
+ "ramGb": 512,
151
+ "gpu": "b200",
152
+ "gpus": 2,
153
+ "note": "the default target: the last stage of the one container file answers the balanced profile when no --target rides the build"
154
+ },
155
+ {
156
+ "id": "lite",
157
+ "target": "lite",
158
+ "tagSuffix": "-lite",
159
+ "cpu": "ryzen9950x3d",
160
+ "cpuName": "Ryzen 9950X3D",
161
+ "vcpus": 16,
162
+ "threads": 32,
163
+ "ramGb": 128,
164
+ "gpu": "rtx5090",
165
+ "gpus": 1,
166
+ "note": "the lightest plan: a quarter of the max envelope, the -lite suffix tag the registry lane answers"
167
+ }
168
+ ],
169
+ "envStamp": [
170
+ "SADDLE_PROFILE",
171
+ "SADDLE_PROFILE_CPU",
172
+ "SADDLE_PROFILE_VCPUS",
173
+ "SADDLE_PROFILE_THREADS",
174
+ "SADDLE_PROFILE_RAM_GB",
175
+ "SADDLE_PROFILE_GPU",
176
+ "SADDLE_PROFILE_GPUS"
177
+ ],
178
+ "sourceOfTruth": "saddle/engineplans.ts (the plan values), saddle/Dockerfile (the variant targets), the saddle-vhe publish matrix of .github/workflows/publish.yml (the registry legs)"
179
+ },
125
180
  "runtimeBase": {
126
181
  "nodeImage": "node:26.7.0-alpine",
127
182
  "nodeAlt": "node:24.19.0-alpine",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wenathlan/saddle",
3
- "version": "2.0.164",
3
+ "version": "2.0.165",
4
4
  "description": "binary computing engine that turns distributed storage into a publishable working set carrying the merged virtual-hardware engine (the saddle + e2ugh grand merge)",
5
5
  "keywords": [
6
6
  "distributed computing",
@@ -220,9 +220,9 @@
220
220
  "vm:create": "node --import tsx ./cli.ts vm",
221
221
  "vm:validate": "node --import tsx ./cli.ts vmlint",
222
222
  "gpu:list": "node --import tsx ./cli.ts gpus",
223
- "docker:build": "docker build -f Dockerfile -t saddle:2.0.164 .",
224
- "docker:run": "docker run --rm --memory-swap=-1 --shm-size=2g saddle:2.0.164",
225
- "docker:health": "docker run --rm saddle:2.0.164 qemu-system-x86_64 --version && curl -fsS http://localhost:8080/health || true",
223
+ "docker:build": "docker build -f Dockerfile -t saddle:2.0.165 ..",
224
+ "docker:run": "docker run --rm --memory-swap=-1 --shm-size=2g saddle:2.0.165",
225
+ "docker:health": "docker run --rm -d --name saddle-health -p 8080:8080 saddle:2.0.165 >/dev/null && sleep 5; curl -fsS http://localhost:8080/api/v1/health || true; docker rm -f saddle-health >/dev/null 2>&1 || true",
226
226
  "firecracker:boot": "firecracker --api-sock /tmp/fc-saddle.sock --config-file vmconfig.json 2>/dev/null || echo 'firecracker 1.16.1 warm-pool boot 125ms target'",
227
227
  "py:bridge": "python3 qemubridge.py",
228
228
  "py:test": "python3 -m pytest -q || python3 qemubridge.py",