@wenathlan/saddle 2.1.2 → 2.1.3
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 +5 -5
- package/boards.json +1 -1
- package/cores.json +1 -1
- package/dist/virtual.d.ts +1 -1
- package/docker.config +3 -3
- package/gpus.json +1 -1
- package/mttg.config +1 -1
- package/package.json +4 -4
- package/passage.config +2 -2
- package/processors.json +1 -1
- package/qemu.config +2 -2
- package/virtualhardware.json +1 -1
- package/vm.config.json +1 -1
- package/web/manifest.json +1 -1
- package/web/readme.md +1 -1
package/Dockerfile
CHANGED
|
@@ -94,7 +94,7 @@
|
|
|
94
94
|
# -v vmdata:/data/vmdata -v webdata:/data/web \
|
|
95
95
|
# -v ./vm.config.json:/engine/vm.config.json:ro \
|
|
96
96
|
# -e PORT=8080 -e NODE_ENV=production -p 31280:8080 \
|
|
97
|
-
# ghcr.io/wenathlan/saddle:vhe-2.1.
|
|
97
|
+
# ghcr.io/wenathlan/saddle:vhe-2.1.3
|
|
98
98
|
#
|
|
99
99
|
# vheqemu (the guest runner; build it first with
|
|
100
100
|
# docker build --target qemu-runtime -t saddle/qemu:11.1.0 . because the
|
|
@@ -128,7 +128,7 @@
|
|
|
128
128
|
# -e VHE_GPU_PROFILE=b200 -e VHE_GPUS=8 -e VHE_MIG=1 \
|
|
129
129
|
# -e VHE_SMI_DRIVER=575.57.08 -e VHE_SMI_CUDA=12.9 \
|
|
130
130
|
# -e VHE_SMI_INTERVAL=30 -e VHE_SKIP_XVFB=1 -e VHE_SKIP_VALIDATE=1 \
|
|
131
|
-
# ghcr.io/wenathlan/saddle:vhe-2.1.
|
|
131
|
+
# ghcr.io/wenathlan/saddle:vhe-2.1.3 /bin/bash -c '
|
|
132
132
|
# while true; do
|
|
133
133
|
# /usr/local/bin/nvidia-smi "$VHE_GPU_PROFILE" "$VHE_GPUS" || true
|
|
134
134
|
# sleep "$VHE_SMI_INTERVAL"
|
|
@@ -145,7 +145,7 @@
|
|
|
145
145
|
# -v qemudata:/data/qemudata \
|
|
146
146
|
# -v ./qemubridge.py:/engine/qemubridge.py:ro \
|
|
147
147
|
# -e QMP_SOCKET=/run/vhe/vm.qmp -e PYTHONUNBUFFERED=1 \
|
|
148
|
-
# ghcr.io/wenathlan/saddle:vhe-2.1.
|
|
148
|
+
# ghcr.io/wenathlan/saddle:vhe-2.1.3 \
|
|
149
149
|
# python3 /engine/qemubridge.py --socket /run/vhe/vm.qmp status
|
|
150
150
|
#
|
|
151
151
|
# saddle-node (the node-engine service, the former compose.yml
|
|
@@ -159,7 +159,7 @@
|
|
|
159
159
|
# --log-driver json-file --log-opt max-size=50m --log-opt max-file=5 \
|
|
160
160
|
# --tmpfs /tmp:size=2g,mode=1777 \
|
|
161
161
|
# -e SADDLE_MEMORY_ENGINE=ram -e SBOT_PLATFORM= -e SBOT_CDN_URL= \
|
|
162
|
-
# ghcr.io/wenathlan/saddle:2.1.
|
|
162
|
+
# ghcr.io/wenathlan/saddle:2.1.3 \
|
|
163
163
|
# node dist/cli.js plan
|
|
164
164
|
#
|
|
165
165
|
# observability (the former prometheus scraper of the full profile)
|
|
@@ -1271,7 +1271,7 @@ HEALTHCHECK --interval=30s --timeout=10s --start-period=60s --start-interval=5s
|
|
|
1271
1271
|
# OCI labels for registry introspection.
|
|
1272
1272
|
LABEL org.opencontainers.image.title="saddle virtual-hardware engine (the grand merge)" \
|
|
1273
1273
|
org.opencontainers.image.description="100% software virtual hardware: per-profile CPU/memory spoofing via LD_PRELOAD (max/balanced/lite), mesa 26.2.1 llvmpipe/lavapipe/rusticl, QEMU 11.1.0 TCG/MTTCG, virtual nvidia-smi adapter + NVML/CUDA shims, node 26.7.0, python bridge" \
|
|
1274
|
-
org.opencontainers.image.version="2.1.
|
|
1274
|
+
org.opencontainers.image.version="2.1.3" \
|
|
1275
1275
|
org.opencontainers.image.licenses="MIT" \
|
|
1276
1276
|
org.opencontainers.image.source="https://github.com/wenathlan/saddle" \
|
|
1277
1277
|
org.opencontainers.image.documentation="https://github.com/wenathlan/saddle/blob/main/README.md" \
|
package/boards.json
CHANGED
package/cores.json
CHANGED
package/dist/virtual.d.ts
CHANGED
|
@@ -187,9 +187,9 @@ export declare function memoryengine(options?: {}): {
|
|
|
187
187
|
}>;
|
|
188
188
|
release: (key: any) => void;
|
|
189
189
|
safeload: (key: any) => Promise<{
|
|
190
|
+
error?: undefined;
|
|
190
191
|
success: boolean;
|
|
191
192
|
data: any;
|
|
192
|
-
error?: undefined;
|
|
193
193
|
} | {
|
|
194
194
|
data?: undefined;
|
|
195
195
|
success: boolean;
|
package/docker.config
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"meta": {
|
|
3
3
|
"name": "docker.config",
|
|
4
4
|
"title": "saddle - Docker Engine and Containerization Configuration",
|
|
5
|
-
"version": "2.1.
|
|
5
|
+
"version": "2.1.3",
|
|
6
6
|
"date": "2026-08-22",
|
|
7
7
|
"language": "en",
|
|
8
8
|
"sources": [
|
|
@@ -618,7 +618,7 @@
|
|
|
618
618
|
"labels": {
|
|
619
619
|
"org.opencontainers.image.title": "saddle-v6",
|
|
620
620
|
"org.opencontainers.image.description": "Saddle v6 virtualization orchestrator with QEMU 11.1.0, Node 22 LTS, Python 3.13.5, MTTG, Passage, OVMF",
|
|
621
|
-
"org.opencontainers.image.version": "2.1.
|
|
621
|
+
"org.opencontainers.image.version": "2.1.3",
|
|
622
622
|
"org.opencontainers.image.created": "2026-08-22T00:00:00Z",
|
|
623
623
|
"org.opencontainers.image.authors": "Saddle Core <core@saddle.dev>",
|
|
624
624
|
"org.opencontainers.image.url": "https://saddle.dev",
|
|
@@ -630,7 +630,7 @@
|
|
|
630
630
|
"org.opencontainers.image.base.name": "debian:bookworm-slim",
|
|
631
631
|
"org.opencontainers.image.base.digest": "sha256:bookworm-slim-pinned-2026-08-22",
|
|
632
632
|
"saddle": {
|
|
633
|
-
"com.saddle.version": "2.1.
|
|
633
|
+
"com.saddle.version": "2.1.3",
|
|
634
634
|
"com.saddle.engine": "qemu-11.1.0",
|
|
635
635
|
"com.saddle.modes": "32",
|
|
636
636
|
"com.saddle.forge.mirrors": "github,gitea,forgejo",
|
package/gpus.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"meta": {
|
|
4
4
|
"name": "gpus.json",
|
|
5
5
|
"title": "saddle - Unified Virtual GPU Database",
|
|
6
|
-
"version": "2.1.
|
|
6
|
+
"version": "2.1.3",
|
|
7
7
|
"date": "2026-08-22",
|
|
8
8
|
"language": "en",
|
|
9
9
|
"description": "Union of the v5 GPU database (7 virtual identity identities), the S6 registry (RX 8900 XTX + Arc B770 unique), Blackwell architecture specs v5+v6 (B100/GB200/RTX 5070/5070 Ti SKUs), gpu.config TOML SKUs (incl. 5 AMD APU RDNA iGPUs) and the 11-entry vfio profile table. PCI device id for RTX PRO 6000 corrected 2BB5->26B5 per canonical v5.",
|
package/mttg.config
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"meta": {
|
|
3
3
|
"name": "mttg.config",
|
|
4
4
|
"title": "saddle - MTTG Multi-Tenant Task Groups (cgroups v2 + tenants + transcode) with MTTCG (QEMU TCG) section",
|
|
5
|
-
"version": "2.1.
|
|
5
|
+
"version": "2.1.3",
|
|
6
6
|
"date": "2026-08-22",
|
|
7
7
|
"language": "en",
|
|
8
8
|
"conceptSeparation": "MTTG = Multi-Tenant Task Groups (cgroup v2 cpu.weight/cpuset/memory/io/pids/hugetlb/rdma + tenants + transcode pipelines). MTTCG = QEMU Multi-Threaded TCG (one host thread per vCPU under TCG). Both live here as DISTINCT sections; MTTCG accel flags also in qemu.config#mttcg.",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wenathlan/saddle",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.3",
|
|
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
|
"type": "module",
|
|
6
6
|
"private": false,
|
|
@@ -206,9 +206,9 @@
|
|
|
206
206
|
"vm:create": "node --import tsx ./cli.ts vm",
|
|
207
207
|
"vm:validate": "node --import tsx ./cli.ts vmlint",
|
|
208
208
|
"gpu:list": "node --import tsx ./cli.ts gpus",
|
|
209
|
-
"docker:build": "docker build -f Dockerfile -t saddle:2.1.
|
|
210
|
-
"docker:run": "docker run --rm --memory-swap=-1 --shm-size=2g saddle:2.1.
|
|
211
|
-
"docker:health": "docker run --rm saddle:2.1.
|
|
209
|
+
"docker:build": "docker build -f Dockerfile -t saddle:2.1.3 .",
|
|
210
|
+
"docker:run": "docker run --rm --memory-swap=-1 --shm-size=2g saddle:2.1.3",
|
|
211
|
+
"docker:health": "docker run --rm saddle:2.1.3 qemu-system-x86_64 --version && curl -fsS http://localhost:8080/health || true",
|
|
212
212
|
"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'",
|
|
213
213
|
"py:bridge": "python3 qemubridge.py",
|
|
214
214
|
"py:test": "python3 -m pytest -q || python3 qemubridge.py",
|
package/passage.config
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"meta": {
|
|
3
3
|
"name": "passage.config",
|
|
4
4
|
"title": "saddle - Passage Configuration (3 homonym domains kept separate + host playbook)",
|
|
5
|
-
"version": "2.1.
|
|
5
|
+
"version": "2.1.3",
|
|
6
6
|
"date": "2026-08-22",
|
|
7
7
|
"language": "en",
|
|
8
8
|
"conceptSeparation": "'passage' has 3 distinct domains in the pool: (1) gateway - L7 Pingora reverse proxy (routes/upstreams/TLS 1.3); (2) passthrough - PCI device passthrough modes (VFIO/MDEV/MIG/vGPU/SR-IOV/vfio-user/hotplug/KVM/none); (3) network_binding - VM network bridge modes + host port binding (never localhost). A 4th section carries the AetherForge host-side VFIO playbook. Sections are NEVER merged.",
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
"gateway": {
|
|
57
57
|
"meta": {
|
|
58
58
|
"project": "saddle (grand merge)",
|
|
59
|
-
"version": "2.1.
|
|
59
|
+
"version": "2.1.3",
|
|
60
60
|
"schema": "passage.config",
|
|
61
61
|
"schemaversion": "2026.08.22",
|
|
62
62
|
"engine": "passage gateway v6",
|
package/processors.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"meta": {
|
|
4
4
|
"name": "processors.json",
|
|
5
5
|
"title": "saddle - Unified Virtual Processor Database",
|
|
6
|
-
"version": "2.1.
|
|
6
|
+
"version": "2.1.3",
|
|
7
7
|
"date": "2026-08-22",
|
|
8
8
|
"language": "en",
|
|
9
9
|
"description": "Union of the v5 canonical CPU database (6 x86_64 identities), the e2ugh processor catalog (55 SKUs incl. ARM/Apple/Xeon; lineage kept), Zen5/X3D microarchitecture specs and pool minis. Field conflicts resolved V5-first (model_name/max_boost_ghz/tdp_watts canonical); OMNI complementary fields (arch, core_type, topology, memory_support, release_date) merged in place. Versions re-pinned date-first 2026-08-22.",
|
package/qemu.config
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"meta": {
|
|
3
3
|
"name": "qemu.config",
|
|
4
4
|
"title": "saddle - QEMU Configuration (canonical JSON; sources: S6 TOML + v5 spec 11.1.0 + libvirt overlay)",
|
|
5
|
-
"version": "2.1.
|
|
5
|
+
"version": "2.1.3",
|
|
6
6
|
"date": "2026-08-22",
|
|
7
7
|
"language": "en",
|
|
8
8
|
"format": "JSON (canonical v2 schema; sources were S6 TOML + V5 JSON schema + libvirt conf overlay)",
|
|
@@ -90,7 +90,7 @@
|
|
|
90
90
|
"githubSetupPython": "actions/setup-python@v5.4.0",
|
|
91
91
|
"platformKernel": "6.11.0+"
|
|
92
92
|
},
|
|
93
|
-
"version": "2.1.
|
|
93
|
+
"version": "2.1.3",
|
|
94
94
|
"title": "saddle - QEMU Configuration (canonical JSON; sources: S6 TOML + v5 spec 11.1.0 + libvirt overlay)",
|
|
95
95
|
"project": "e2ugh v6",
|
|
96
96
|
"toolchainV5": {
|
package/virtualhardware.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"meta": {
|
|
4
4
|
"name": "e2ugh",
|
|
5
5
|
"title": "e2ugh v6 - Master Schema, Cross-References and Compatibility Matrix",
|
|
6
|
-
"version": "2.1.
|
|
6
|
+
"version": "2.1.3",
|
|
7
7
|
"date": "2026-08-22",
|
|
8
8
|
"language": "en",
|
|
9
9
|
"description": "Master schema of the e2ugh v6 virtual hardware engine: binds the 10 specification files (cpu, cores, boards, gpu, vm.config, passage, docker, qemu, mttcg, mesa), defines the modularity ranges (vCPU 1-192, RAM 1-1024 GB, vRAM 8-96 GB via MIG), defaults, validation rules and the pinned 2026-08-22 compatibility matrix.",
|
package/vm.config.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"meta": {
|
|
4
4
|
"name": "vm.config.json",
|
|
5
5
|
"title": "e2ugh v6 - VM Profiles and Orchestrator Configuration (canonical schema)",
|
|
6
|
-
"version": "2.1.
|
|
6
|
+
"version": "2.1.3",
|
|
7
7
|
"date": "2026-08-22",
|
|
8
8
|
"language": "en",
|
|
9
9
|
"description": "22 VM profiles consumed by the VHE orchestrator. Each profile binds a CPU identity (cpu.json), core count (cores.json), board (boards.json), GPU profile (gpu.json) and runtime (qemu.json, docker.json, mesa.json). Accel policy: KVM preferred when /dev/kvm exists, TCG multi-thread fallback on GitHub-hosted runners (see passage.json).",
|
package/web/manifest.json
CHANGED
package/web/readme.md
CHANGED
|
@@ -5,7 +5,7 @@ virtual container — cpu, ram, gpu, mesa software graphics — entirely in the
|
|
|
5
5
|
browser, plus one self-hosted node api exposing the exact same sandbox over
|
|
6
6
|
http for automation. no framework, no build step, no serverless functions.
|
|
7
7
|
|
|
8
|
-
version 2.1.
|
|
8
|
+
version 2.1.3 — reported by `/api/v1/health` and kept in lockstep with
|
|
9
9
|
`package.json` and the `meta.version` envelope of the ten data documents
|
|
10
10
|
(v6-SYNC worklog task).
|
|
11
11
|
|