Devin AI
c951a7883f
fix(lean): add TODO(wolfram-verify) annotations to math formulas in changed files
...
Co-Authored-By: Allaun Silverfox <bigdataiscoming+9i37y6j2@protonmail.com>
2026-06-15 02:14:05 +00:00
Devin AI
8e741199bf
refactor(lean): remove Float from FixedPoint core, implement integer-only sqrt/log2/expNeg
...
Core FixedPoint.lean is now fully Float-free:
- Q16_16.sqrt: integer Newton method (intSqrt, 64-step fuel)
- Q16_16.log2: bit-position extraction + linear interpolation
- Q16_16.expNeg: 7-segment piecewise-linear (~0.02 max error)
- Q0_16.log2: bit extraction with 1/ln(2) scaling
Removed from core: ofFloat, toFloat, ln (Q16_16); toFloat, ofFloat
(Q0_16); q0_64ScaleFloat, ofFloat, toFloat (Q0_64).
Created Semantics.FixedPointBoundary for I/O boundary Float
conversions. 14 downstream files updated to import boundary module.
Build: 3573 jobs, 0 errors (lake build)
Co-Authored-By: Allaun Silverfox <bigdataiscoming+9i37y6j2@protonmail.com>
2026-06-15 02:07:21 +00:00
Devin AI
9e43f50257
chore(nix): remove rs-surface package from flake (Garnix shutting down)
...
Remove rsSurface and rsSurfaceImage Nix package definitions from flake.nix.
The Rust source under 4-Infrastructure/infra/embedded_surface/rs-surface/
is preserved — build with cargo directly when needed.
This eliminates the 3 Garnix CI checks (rs-surface, rs-surface-image,
All Garnix checks) that were failing due to the Garnix shutdown.
Co-Authored-By: Allaun Silverfox <bigdataiscoming+9i37y6j2@protonmail.com>
2026-06-15 01:43:47 +00:00
Devin AI
42b14d9bfe
fix(infra): pin base64ct and postgres-types to edition 2021 versions
...
base64ct 1.8.3 and postgres-types 0.2.13 require edition 2024 (Rust 1.85+),
which is not available in nixpkgs-24.11 (Rust 1.83). Downgrade:
- base64ct 1.8.3 → 1.7.3
- postgres-types 0.2.13 → 0.2.9
Verified: cargo +1.83.0 build --release succeeds.
Co-Authored-By: Allaun Silverfox <bigdataiscoming+9i37y6j2@protonmail.com>
2026-06-15 01:41:16 +00:00
Devin AI
23068ae0c5
fix(infra): downgrade rs-surface deps to avoid edition 2024 requirement
...
postgres-protocol 0.6.11 pulled in sha2 0.11.0 and cpufeatures 0.3.0,
which require Rust edition 2024 (Rust 1.85+). nixpkgs-24.11 ships
Rust ~1.83, causing the Garnix CI build to fail.
Fix: downgrade tokio-postgres 0.7.17→0.7.13 and postgres-protocol
0.6.11→0.6.9, which use sha2 0.10 and cpufeatures 0.2 (edition 2021).
Verified: cargo build --release succeeds.
Co-Authored-By: Allaun Silverfox <bigdataiscoming+9i37y6j2@protonmail.com>
2026-06-15 01:36:08 +00:00
Devin AI
07c3504b53
fix(infra): make math-first scripts executable for pre-commit
...
Co-Authored-By: Allaun Silverfox <bigdataiscoming+9i37y6j2@protonmail.com>
2026-06-15 01:26:10 +00:00
Devin AI
0613305be6
feat(infra): add math-first CI scripts and fix wolfram-verification
...
Create the five missing scripts referenced by .pre-commit-config.yaml
and .github/workflows/math-check.yml:
- validate_deepseek_receipts.py — validates *.receipt.json against schema
- validate_claims_registry.py — validates claims.yaml against schema + path checks
- require_math_evidence.py — enforces evidence alongside math-track edits
- test_validate_deepseek_receipts.py — 4 self-tests for receipt validator
- test_require_math_evidence.py — 3 self-tests for evidence checker
Fix wolfram-verification workflow:
- Change permissions from issues:write to pull-requests:write (fixes 403)
- Add TODO(wolfram-verify) annotations to E8Sidon.lean false positives
("normalized" in docstrings matching the normalize pattern)
Co-Authored-By: Allaun Silverfox <bigdataiscoming+9i37y6j2@protonmail.com>
2026-06-15 01:24:48 +00:00
Devin AI
a591baeb8c
fix(lean): correct sorry inventory count in §12 (10 → 12)
...
Co-Authored-By: Allaun Silverfox <bigdataiscoming+9i37y6j2@protonmail.com>
2026-06-15 01:17:58 +00:00
Devin AI
38b61fc790
feat(lean): add E8Sidon module — Eisenstein coefficient identity and Sidon framework
...
New module Semantics.E8Sidon formalizes the connection between E₈ lattice
theta series, Eisenstein series identities, and Sidon set theory.
Definitions (all proven/computable):
- sigma3, sigma7: divisor sum functions via Mathlib ArithmeticFunction.sigma
- convolutionLHS: Cauchy product convolution of σ₃
- IsSidonSet, sidon8, sidonSlack, additiveEnergy, r8
- bernoulli_four, bernoulli_eight: B₄ = B₈ = -1/30 (native_decide)
- E4_normalization, E8_normalization: -(2k/B_k) = 240, 480
Computational witnesses (#eval):
- σ₃(1..4) = 1, 9, 28, 73
- σ₇(1..3) = 1, 129, 2188
- E₄²=E₈ identity verified for n=2,3,4: (61920,61920), (1050240,1050240), (7926240,7926240)
- sidon8.card = 8, sidonSlack = 128
Sorry inventory (12 total, all with TODO(lean-port)):
- E4_sq_eq_E8_coeff: blocked on Mathlib missing valence formula / dim M₈=1
- Sidon theory: energy bound, collision theory, greedy extraction (4)
- E₈ lattice: r8_via_sigma3, r8_one, levelset density (3)
- Conditional: Singer improvement, Erdős bound, fiber partition (3)
Axiom (1): e8_additive_completeness (open problem)
Build: 3572 jobs, 0 errors (lake build)
Co-Authored-By: Allaun Silverfox <bigdataiscoming+9i37y6j2@protonmail.com>
2026-06-15 01:06:22 +00:00
devin-ai-integration[bot]
0f6ebe36dd
test(coverage): add 138 unit tests for least-covered modules ( #78 )
...
Four test files covering the modules with zero or near-zero test coverage:
- scripts/qc-flag/test_lean_qc_flagger.py (55 tests)
Covers all pure helpers, code-line detection, QCIssue/FileResult classes,
and all 5 check functions (structural, naming, Q16, proof quality, deps).
- 4-Infrastructure/shim/test_braid_diat_codec.py (22 tests)
Covers Q0_2 encode/decode, ChiralityDIAT roundtrips and verify_b,
MountainPacked dict↔bytes, BraidResidualPacked bracket↔bytes.
- 5-Applications/tools-scripts/llm/test_emitter_utils.py (33 tests)
Covers sha256_bytes, canonical_json_bytes, repo_relative, safe_slug,
timestamps, context bundles, message building, extract_answer,
auth guard, and verify_receipt schema rules.
- 4-Infrastructure/shim/test_validate_rrc_predictions.py (28 tests)
Covers require_path, parse_equation, build_proof_metrics,
build_receipt with all domain mappings, and MATH_* constant sets.
Build: all 138 tests pass (pytest), py_compile clean
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: Allaun Silverfox <bigdataiscoming+9i37y6j2@protonmail.com>
2026-06-14 19:31:16 -05:00
devin-ai-integration[bot]
09a173aa71
fix(scripts): replace bare except clauses with specific exception types ( #77 )
...
Replace 30+ bare `except:` and `except: pass` patterns across 17 files
with specific exception types (OSError, ValueError, etc.) and add
logging so errors are no longer silently swallowed.
Changes by category:
Infrastructure (surface/main.py):
- GPU/process probes now catch FileNotFoundError | SubprocessError
Application scripts:
- API fetchers (finalize_database, final_push, bulk_10x) now catch
URLError | JSONDecodeError | KeyError | OSError and print to stderr
- Hardware probes (unified_hardware_surface, swarm_transport_layer)
catch OSError | ValueError for /proc/meminfo reads
- Backend availability checks (prover_backend_interface, hot_swap_manager)
catch requests.RequestException and log at debug/warning
- Code inspector (swarm_system_inspector) catches OSError | UnicodeDecodeError
for file reads
- Model fallback (map_all_equations) now logs the intermediate error
- Minor: gpu_pist_compress → RuntimeError | ZeroDivisionError,
mathlib_to_parquet → ValueError, moe_utils → OSError,
quandela_remote → OSError | IndexError, topology inline scripts
→ ImportError, consolidate_language_databases → UnicodeDecodeError
All touched files pass py_compile.
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: Allaun Silverfox <bigdataiscoming+9i37y6j2@protonmail.com>
2026-06-14 19:30:28 -05:00
Allaun Silverfox
a5f77f8d95
feat(lean): Prove all TransportTheory theorems
...
- Prove flexure_reduces_resistance: Flexure joints reduce local resistance
- Prove randers_descent_cheap: Downhill motion cheaper than uphill (using discrete Randers metric)
- Prove lower_transport_higher_density: Lower τ → higher T when C constant
- Prove moores_law_improves: Higher C → higher T when τ constant
- Prove tau_scaling_improves: Lower τ → higher T
- Prove lyapunov_descent_is_geodesic_flow: PIST strict_descent = geodesic flow
- Prove transport_cost_is_pist_potential: Transport cost = PIST potential
All theorems proven. No sorry in committed code.
Build: 3562 jobs, 0 errors (lake build)
2026-06-12 23:24:16 -05:00
Allaun Silverfox
f369864d4c
feat(lean): Add TransportTheory module with Finsler-Randers geometry formalization
...
- Define TranslationResistance, TransportMetric, and TransportSpace
- Formalize Randers metric F = alpha + beta with Riemannian base and Lyapunov drift
- Connect to PIST via pistMass as transport cost functional
- Define IntelligenceDensity T = C/tau as system capability metric
- Provide executable witnesses for all definitions
- Follow AGENTS.md naming conventions and Q16_16 arithmetic
Build: 3561 jobs, 0 errors (lake build)
Per AGENTS.md: Lean is the source of truth. All computational gates have #eval witnesses.
2026-06-12 23:14:13 -05:00
Allaun Silverfox
55236fc627
feat(lean): Add TransportTheory module with Finsler-Randers geometry formalization
...
- Define TranslationResistance, TransportMetric, and TransportSpace
- Formalize Randers metric F = alpha + beta with Riemannian base and Lyapunov drift
- Connect to PIST via pistMass as transport cost functional
- Define IntelligenceDensity T = C/tau as system capability metric
- Provide executable witnesses for all definitions
- Follow AGENTS.md naming conventions and Q16_16 arithmetic
Build: 3561 jobs, 0 errors (lake build)
Per AGENTS.md: Lean is the source of truth. All computational gates have #eval witnesses.
2026-06-12 23:12:47 -05:00
Brandon Schneider
3a43f7632f
fix(adversarial-review): resolve 35 critical coding bugs across 8 subsystems
...
Security & correctness fixes from full adversarial review:
Lean (7 fixes):
- FixedPoint.lean: guard false theorem with n > 0 precondition
- QFactor.lean: remove double-scaling error in energy decrease
- AVMIsa/Step.lean: implement addSatQ16/subSatQ16 primitives
- BraidEigensolid.lean: fix crossStep second output argument swap
- SSMS.lean: complete ACI preservation proof (with rounding caveat)
- HouseholderQR.lean: add n > 0 precondition to spectral theorem
Verilog (7 fixes):
- q16_lut_core.v: fix multiply shift (16 → 32 bits)
- q16_lut_top.v: fix valid bit (0 → 1)
- cff_accelerator.v: fix SHA-256 padding (len < 448 check)
- research_stack_top.v: fix trigger aliasing (unique counters)
- Blitter6502OISC_small.v: fix address width (15 → 16 bits)
- spatial_hash_bram.v: add OOB write guard
- tmr_oepi_safety_fsm.v: fix double-increment race
WGSL (6 fixes):
- shaders.wgsl: atomicAdd for concurrent writes
- frustration_qubo.wgsl: double-buffer + CAS loop
- braid_fft.wgsl: workgroupBarrier synchronization
- burgers_scar_filter.wgsl: atomic E_bins array
Rust (9 fixes):
- thermodynamic.rs: Arc::from_raw → Arc::clone (double-free)
- thermodynamic.rs: Box::into_raw → Box (leak)
- tools/src/lib.rs: shell injection → shlex.quote
- ene-node/src/lib.rs: LRU caps, constant-time HMAC, peer caps
Python (6 fixes):
- similarity/__init__.py: pickle.load → RestrictedUnpickler
- AI-Feynman: torch.load → weights_only=True (14 calls)
- fetch_arxiv.py, fetch_s2.py: eval → ast.literal_eval
- topology.py: os.system → shutil.copy2
- SSH pipe: os.system → base64 pipe
Build: lake build 3572 jobs, 0 errors
2026-05-31 23:38:03 -05:00
Brandon Schneider
5a691a0d2b
docs: add Reality Audit section to k3s-flake README
...
Document discrepancies between the aspirational architecture (in the
flake/docs) and what's actually deployed. Covers control plane location,
edge Caddy divergence, Traefik port, cross-namespace services, and
hostname mismatches. Load the research-stack-infrastructure-bootstrap
skill for the actual deployment procedure.
Build: no build needed
2026-05-31 23:19:42 -05:00
Brandon Schneider
6438dc7214
fix(ingress): correct Authentik forward-auth service namespace
...
- Change middleware address from authentik-server.services.svc.cluster.local
to authentik-server.authentik.svc.cluster.local (Authentik lives in
authentik namespace, not services)
- Create ExternalName service authentik-server in services namespace so
the rs-auth Ingress can route to the cross-namespace service
Build: no build needed
2026-05-31 23:15:46 -05:00
Brandon Schneider
f40e0630bd
fix(infra): standardize k3s cluster — Traefik, ingress, architecture docs, Ray GPU workers
...
Architecture alignment:
- Rewrite k3s-server.nix from aspirational role=server to actual role=agent
(cupfox is the real control-plane at 100.110.163.82:6443)
- Update flake.nix: correct serverAddr for all nodes, annotate dead nodes,
fix hostname from nixos-laptop to nixos
- Update join-agent.sh default SERVER to cupfox
- Document actual vs intended architecture in comments
Ingress:
- Add rs-apps-books Ingress for audiobookshelf (/apps/books → media ns)
- Add strip-apps-books middleware for prefix stripping
- Create ray-ingress.yaml for Ray dashboard at /server/ray
Ray:
- Fix raycluster.yaml: enable dashboard, mount /dev/dri on gpu-workers
- Point gpu-workers to qfox-1 (was neon-64gb)
- Remove nvidia.com/gpu resource dependency (use /dev/dri via Mesa)
Security:
- Move OPENID_CLIENT_SECRET from plaintext to K8s Secret ref
- Update manifest to use valueFrom.secretKeyRef
Cleanup:
- Remove 53 committed test PNG screenshots from git tracking
- Remove auth-state.json from git tracking
- Add *.png, *.json to tests/.gitignore
Build: no build needed
2026-05-31 23:13:04 -05:00
Brandon Schneider
56615a353b
feat(homarr): add Playwright test specs for login, onboard, OIDC, board creation, and integrations
...
17 new .spec.ts files and 4 debug .png screenshots capturing:
- OIDC login flows (oidc-setup, oidc-login)
- Login variants (admin, v2, quick, cookie capture)
- Board creation and management
- Integration setup flows
- Onboarding test sequence
- Check/init/do-init lifecycle tests
Build: 0 jobs, 0 errors (no Lean files touched)
2026-05-31 20:26:16 -05:00
Brandon Schneider
db1781c075
chore(homarr): onboard started, OIDC configured, DB created
...
- Homarr OIDC env vars set (sso-homarr)
- Database created at /data/db.sqlite
- Config schema updated to v2
- Onboard wizard needs final UI completion
Build: 3313 jobs, 0 errors
2026-05-31 15:12:44 -05:00
Brandon Schneider
40655a2805
feat(jellyfin): add media libraries (Movies, TV Shows, Music)
...
- Libraries created via API (204 on creation + path update)
- Paths: /media/movies, /media/tv, /media/music
- SSO-Auth plugin Active, SSO button on login page
- Paths may need manual setting through Dashboard UI
Build: 3313 jobs, 0 errors
2026-05-31 14:55:59 -05:00
Brandon Schneider
0c2245f376
feat(jellyfin): SSO-Auth plugin active, branding configured
...
- SSO-Auth plugin Active with Authentik OIDC provider
- SSO redirect endpoint verified (302 -> auth.researchstack.info)
- Login disclaimer and custom CSS for SSO button
- All 22+ services operational with HTTPS
Build: 3313 jobs, 0 errors (lake build Compiler)
2026-05-31 14:48:21 -05:00
Brandon Schneider
0413c9f7b0
chore(jellyfin): SSO-Auth config file + Playwright setup script
...
- SSO-Auth plugin config written to Jellyfin config directory
- Playwright automation script for SSO-Auth setup created
- Plugin not auto-loading - needs UI catalog install
Build: 3313 jobs, 0 errors
2026-05-31 14:24:44 -05:00
Brandon Schneider
ad68bd49f9
feat(infra): Jellyfin wizard complete, SSO-Auth plugin files deployed
...
- Jellyfin setup wizard completed, admin account created (admin/jellyfin-admin)
- SSO-Auth plugin v4.0.0.3 downloaded and placed in plugins directory
- Authentik OIDC provider for Jellyfin updated with correct redirect URI
- All services verified running
Build: 3313 jobs, 0 errors (lake build Compiler)
2026-05-31 14:14:20 -05:00
Brandon Schneider
71e6b4fc11
feat(infra): complete OIDC config, homarr manifest, vw api verified
...
- Homarr OIDC env vars in manifest + applied
- Navidrome, Kavita, Audiobookshelf OIDC env vars verified
- Vaultwarden API running with allaun@researchstack.info
- Jellyfin DB reset - needs web UI first-run setup
Build: 3313 jobs, 0 errors (lake build Compiler)
2026-05-31 13:48:05 -05:00
Brandon Schneider
2517b04743
fix(infra): configure vaultwarden-api with user credentials
...
- Vaultwarden signups enabled then disabled after user created
- vaultwarden-api configured with allaun@researchstack.info
- API verified responding at vaultapi.researchstack.info
Build: 3313 jobs, 0 errors (lake build Compiler)
2026-05-31 13:36:51 -05:00
Brandon Schneider
54dbac5893
feat(infra): media stack, Vaultwarden, Cloudflare tunnel, OIDC providers, Caddy TLS
...
- Media stack deployed: qBittorrent, Sonarr, Radarr, Lidarr, Prowlarr, Bazarr,
Navidrome, Audiobookshelf, Jellyfin, Homarr, Kavita, MeTube, SuggestArr, BoxArr
- Romm, ebook2audiobook (GPU CUDA), TrailBase, FlareSolverr deployed
- Vaultwarden + Vaultwarden-API deployed
- Caddy reverse proxy on racknerd with Let's Encrypt TLS at *.researchstack.info
- Authentik 7 OIDC providers + 12 proxy providers for SSO
- NVIDIA GPU support enabled on k3s (device plugin + containerd runtime)
- Cloudflare tunnel created (DNS on Porkbun)
Build: 3313 jobs, 0 errors (lake build Compiler)
2026-05-31 11:01:39 -05:00
Brandon Schneider
92e7accb2a
feat(infra): Garage 6-node RF3 cluster, Cloudflare Workers deploy, k3s node additions
...
- Garage scale-out complete: 6 nodes across 6 zones with replication_factor=3
- neon-64gb: added to Garage cluster (zone netcup-arm, 93 GiB)
- steamdeck: installed Garage v2.3.0, added to cluster (zone gpu, 373 GiB)
- nixos-laptop: converted from k3s server to agent in cupfox cluster
- qfox-1: k3s agent rejoined cupfox cluster
- Cloudflare Workers: WASM trinary VM deployed at wasm-compute-edge.researchstack.workers.dev
- node-registry.json: updated with all 6 Garage nodes
- Documentation: AGENTS.md, WIKI.md, ROADMAP.md, LLM-Context.md updated
- Lake build: 3313 jobs, 0 errors
Build: 3313 jobs, 0 errors (lake build Compiler)
2026-05-31 03:39:11 -05:00
Brandon Schneider
79859bc225
feat(infra): migrate external service registry to aiven mysql with ssl
...
- Migrated service_registry.py defaults from InfinityFree to Aiven MySQL.
- Enforced REQUIRED SSL mode on connections (ssl_mode for mysql-connector, ssl dict for pymysql).
- Added helper _get_dict_cursor to resolve pymysql compatibility issues.
- Configured registry password and encryption key in decrypted/encrypted .env via SOPS.
Build: 3313 jobs, 0 errors (lake build)
2026-05-31 02:10:10 -05:00
Brandon Schneider
c5724734a6
chore(infra): bootstrap racknerd and configure multi-node garage cluster
...
- Bootstrapped microvm-racknerd node on its live Tailscale IP 100.80.39.40.
- Connected racknerd to the central QFox cluster.
- Assigned racknerd to its own vps zone with 1G capacity.
- Made garage-cluster-init.sh robust and idempotent.
- Updated comments and topology mappings.
Build: 3313 jobs, 0 errors (lake build)
2026-05-31 02:04:32 -05:00
Brandon Schneider
36dc2f096a
fix(infra): service registry is backup/fallback, not primary
...
Primary: Tailscale mesh + internal PostgreSQL/SQLite
Backup: InfinityFree MySQL (this file)
Use cases for backup path:
- Edge nodes that cant reach mesh (ESP32, Cloudflare Workers)
- Mesh-down fallback (Tailscale outage)
- Cross-mesh discovery (different tailnets)
- Low-impact config distribution
2026-05-30 21:19:24 -05:00
Brandon Schneider
886428d4a0
feat(infra): external service registry via InfinityFree MySQL
...
service_registry.py — mesh-independent node discovery and credential store.
Tables:
nodes — registered devices with capabilities, tier, IPs
credentials — encrypted blobs (ChaCha20) with TTL auto-expiry
config — distributed key-value configuration
Features:
- auto_register() — uses device_capability_probe to register
- discover_nodes() — find nodes by tier, with max-age filter
- store/get_credential() — encrypted at rest, short TTL
- heartbeat() — keepalive for node registry
- CLI: init, register, discover, store, get, cleanup, config-set/get
Any node with internet can reach it (no Tailscale required).
Credentials encrypted with ChaCha20, key from REGISTRY_ENCRYPT_KEY env.
2026-05-30 21:14:51 -05:00
Brandon Schneider
da02dc4051
fix(docs): full soft color override — entire page #f5f0eb
...
No white anywhere. Everything is warm soft gray:
Body/content: #f5f0eb (warm parchment)
Header: #3d3d3d (muted dark, no green)
Headings: #4a4540
Code inline: #ebe6e0 bg
Code blocks: #3d3d3d bg
Tables: #e5e0da headers
Links: #5a7a8a muted blue
All with !important to override Cayman defaults
2026-05-30 21:07:18 -05:00
Brandon Schneider
46d9828915
fix(docs): correct header selector for Cayman theme
...
.page-header not .header — Cayman uses page-header class.
Also override heading colors to match dark theme.
2026-05-30 21:00:32 -05:00
Brandon Schneider
4f5da735ac
docs: soft theme for GitHub Pages — Cayman + muted palette
...
- Cayman remote theme (soft blue gradient header)
- Body: #f0f2f5 soft gray (not glaring white)
- Content: #ffffff with subtle shadow
- Code blocks: dark (#2d3436) with soft text
- Tables: muted headers (#dfe6e9)
- Links: #0984e3 blue, hover #74b9ff
2026-05-30 20:57:50 -05:00
Brandon Schneider
108b825ef3
docs: hyperlink 50x claim to VCN Pipeline compression table
2026-05-30 20:55:06 -05:00
Brandon Schneider
a8ed01dcfa
docs: update wiki with VAAPI, FLAC DSP, tier limitations, Cloudflare/GitHub
2026-05-30 20:52:58 -05:00
Brandon Schneider
a2c76c7ae0
fix(infra): tier limits leave headroom for device function
...
Each tier now reserves resources for its primary function:
GPU_CUDA: 8GB VRAM (not 12 — keep 4GB for display/compositor)
GPU_VAAPI: 256MB (keep VRAM headroom for desktop)
GPU_APU: 128MB (shared DDR, OS needs bandwidth)
CPU_FFMPEG: 64MB, half cores (leave for OS/k3s)
BATCH: 1500 min/month (reserve 500 for actual CI/CD)
ETHERNET: 500ms timeout (leave bandwidth for SSH/mgmt)
FRAMEBUFFER: 768KB (half — keep display visible, compute in top rows)
WASM: 512B payload, 8ms CPU (leave 2ms for JSON overhead)
DSP: 2048 samples (half FFT, leave for overlap buffer)
ESP32: 512B (WiFi/BLE stack needs ~80KB of 520KB SRAM)
2026-05-30 20:45:50 -05:00
Brandon Schneider
78d41bc474
feat(infra): per-tier device limitations for Ray scheduling
...
DeviceLimitations dataclass with hard constraints per tier:
GPU_CUDA: 1GB payload, 16 concurrent, 60s, NVENC, 12GB VRAM
GPU_VAAPI: 512MB payload, 8 concurrent, 60s, VAAPI HW
GPU_APU: 256MB payload, 4 concurrent, 30s, shared DDR
CPU_FFMPEG: 128MB payload, 2 concurrent, 120s, software
BATCH: 64MB payload, 1 concurrent, 6h, 2000 min/month
ETHERNET: 1400B payload, 1 concurrent, 1s, virtio-net
FRAMEBUFFER: 1.5MB payload, 1 concurrent, 100ms, DMA only
WASM: 1KB payload, 1 concurrent, 10ms, 100K req/day
DSP: 16KB payload, 1 concurrent, 5s, FFT only
ESP32: 2KB payload, 1 concurrent, 100ms, Q0_16 scalar
get_limitations(caps) returns actual hardware-aware limits
(vram override, framebuffer capacity, memory override)
2026-05-30 20:44:31 -05:00
Brandon Schneider
e273d0268c
feat(infra): add AMD VAAPI + FLAC DSP to FrameDispatcher
...
FrameDispatcher now routes 6 tags:
TAG_STRAND(0x01) → BraidBackend (VCN compute)
TAG_CROSSING(0x02) → BraidBackend (VCN compute)
TAG_PIST(0x03) → BraidBackend (VCN compute)
TAG_LUPINE(0x04) → CUDABackend (NVIDIA CUDA)
TAG_VAAPI(0x05) → VAAPIBackend (AMD/Intel VA-API) ← NEW
TAG_FLAC(0x06) → FLACBackend (PipeWire/FLAC DSP) ← NEW
New backends:
- VAAPIBackend/LocalVAAPIBackend: AMD/Intel hardware encode/decode
- FLACBackend/LocalFLACBackend: FFT spectral analysis, centroid, RMS
- RayVAAPIBackend: Ray actor for VA-API operations
- SyncVAAPIWrapper/SyncFLACWrapper: sync bridges for FrameDispatcher
Capability probe: DSP tier(1) added between FRAMEBUFFER(2) and ESP32(0)
2026-05-30 20:35:42 -05:00
Brandon Schneider
55dc2dbeaf
docs: add wiki to GitHub Pages source (/docs)
2026-05-30 20:17:01 -05:00
Brandon Schneider
dd5b7382b6
docs: comprehensive wiki — full architecture reference (May 2026)
...
512-line wiki documenting the entire Research Stack:
1. Architecture Overview (5-layer stack)
2. Compute Tiers (GPU_CUDA through OFFLINE)
3. Infrastructure (k3s, Tailscale, KubeRay)
4. VCN Pipeline (50x compression)
5. Ray Integration (FrameDispatcher over Ray)
6. Device Capability Probe (multi-GPU, framebuffer fallback)
7. Compute Surfaces (GPU, Ethernet, framebuffer, ESP32)
8. Mesh Networking Plan (Ray over Tailscale)
9. Formal Verification (23 Lean files, 12 sorries)
10. Key Files + Quick Reference
2026-05-30 20:11:58 -05:00
Brandon Schneider
734d9ef125
feat(infra): integrate edge WASM and GitHub batch compute tiers
...
- Update device_capability_probe.py to add BATCH and WASM tiers and fix a NameError bug on has_virtio_net.
- Build Cloudflare Workers WASM compilation and JS fetch handler in 4-Infrastructure/cloudflare/ executing trinary VM steps.
- Create GitHub Actions batch_compute.yml workflow to harvest runner minutes.
- Keep 4-Infrastructure/AGENTS.md updated with the WASM core library anchor.
Build: 3313 jobs, 0 errors (lake build)
2026-05-30 20:08:31 -05:00
Brandon Schneider
c4f7fa7f13
docs(infra): plan — mesh networking layers over Ray
...
Architectural plan for Tailscale mesh + Ray + VCN + compute surfaces.
5-layer stack:
1. Tailscale connects everything (WireGuard, DERP relay)
2. Ray schedules work across the mesh
3. VCN compresses data (50x bandwidth reduction)
4. FrameDispatcher routes by tag
5. Compute surfaces execute (GPU/CPU/Ethernet/framebuffer/MCU)
Key insight: every device in the Tailscale mesh is a potential
compute node. Framebuffer and Ethernet surfaces turn devices
that "cant run Ray" into compute participants.
4 phases:
1. Ray over Tailscale (mostly done)
2. Multi-tier scheduling (probe done, placement pending)
3. Framebuffer + Ethernet integration (host-side pending)
4. Edge devices (ESP32, 1-Wire sensors)
2026-05-30 20:03:57 -05:00
Brandon Schneider
745fb9757c
feat(infra): add ETHERNET compute tier for virtio-net PistPacket DMA
...
New tier between CPU_FFMPEG and FRAMEBUFFER:
GPU_CUDA(7) > GPU_VAAPI(6) > GPU_APU(5) > CPU_FFMPEG(4) >
ETHERNET(3) > FRAMEBUFFER(2) > ESP32(1) > RELAY(0)
- _detect_virtio_net(): probes /sys/class/net for virtio driver (0x1af4)
- PistPacket computation via TX/RX descriptor rings
- Host vhost-user backend does matrix transforms
- CRC32 hardware offload = witness verification
- Works in any VM with network (even without framebuffer)
2026-05-30 20:02:06 -05:00
Brandon Schneider
c961dcbecb
fix(infra): handle Cirrus Logic virtual VGA and DRM naming edge cases
...
- Add Cirrus Logic (0x1013) and virtio (0x1af4) to vendor map
- Fix DRM card parsing for names like "card0-VGA-1"
- Virtual GPUs (cirrus, virtio) never classified as discrete
- Virtual GPUs skip VA-API tier, fall to FRAMEBUFFER
Racknerd microVM (2vCPU, 715MB, Cirrus VGA) correctly classified as
FRAMEBUFFER tier: 1024x768 @ 16bpp = 1.57 MB DMA backplane.
2026-05-30 19:59:38 -05:00
Brandon Schneider
5ede767c5e
feat(infra): device capability probe with framebuffer fallback
...
device_capability_probe.py: classify every device into a compute tier.
Tiers (highest to lowest):
GPU_CUDA — NVIDIA discrete + CUDA (NVENC, Ray GPU worker)
GPU_VAAPI — AMD/Intel discrete + VA-API (hardware encode)
GPU_APU — AMD integrated, yuvj420p, bandwidth-optimized
CPU_FFMPEG — Software encode only (libx264)
FRAMEBUFFER — /dev/fb0 DMA backplane (8.29 MB/frame at 1080p)
ESP32 — MCU, Q0_16 scalar in FreeRTOS idle hook
RELAY — Network only, no compute
OFFLINE — Unreachable
Features:
- Multi-GPU DRM render node scanning (card0=AMD, card1=NVIDIA)
- APU vs dGPU classification via device name + VRAM heuristics
- Framebuffer detection with /sys/class/graphics/fb0 resolution
- Ray scheduling helpers (get_ray_placement_strategy)
- Cluster probe via SSH
- JSON + human-readable output
2026-05-30 19:57:07 -05:00
Brandon Schneider
af51ca5947
docs(infra): update public documentation for virtualized DMA compute backplane
...
- Promote the expanded Virtio-Net Packet-as-Computation (PIST) and QEMU graphics backplane spec from the artifacts directory to 6-Documentation/docs/specs/.
- Update root README.md to highlight virtualized DMA computation fabrics.
- Expand 6-Documentation/INFRASTRUCTURE.md to detail host GPU/APU auto-profiling, lossless color ranges, and framebuffer packing shims.
- Keep AGENTS.md aligned with core surfaces.
Build: 3313 jobs, 0 errors (lake build)
2026-05-30 19:51:24 -05:00
Brandon Schneider
c9de1f406e
feat(infra): add QEMU graphics framebuffer packing shim and spec
...
- Add qemu_framebuffer_packer.py supporting ARGB8888/RGB24 raw matrix mapping
- Implement zero-copy mmap write/read interface to /dev/fb0 with signature headers
- Document the QEMU graphics framebuffer backplane in Section 11 of spec
- Update 4-Infrastructure/AGENTS.md and walkthrough.md documentation
- Verify syntax and workspace compilation baseline status
Build: 3313 jobs, 0 errors (lake build)
2026-05-30 19:49:25 -05:00
Brandon Schneider
e82d32d032
feat(infra): Ray VCN bridge — FrameDispatcher over Ray transport
...
ray_vcn_bridge.py: Ray transport for the VCN-LUPINE bridge.
Replaces GPUNodeConnection TCP/MKV transport with Ray ObjectRef.
FrameDispatcher, BraidBackend, CUDABackend are unchanged — only
the wire between daemon and GPU node changes.
- RayBraidBackend: compute actor matching VCNBraidBackend pattern
- RayCUDABackend: GPU actor with /dev/dri (Mesa, no NVIDIA plugin)
- RayVCNBridge: full bridge as Ray actor (replaces daemon)
- RayGPUNodeConnection: drop-in for GPUNodeConnection
- SyncBraidWrapper/SyncCUDAWrapper: bridge Ray actors to sync interface
STRAND 42B → 63B, CROSSING 42B → 22B, PIST 24B → 57B
Batch 10: 5ms (0.5ms/frame), 10/10 non-empty
2026-05-30 19:48:34 -05:00