Commit Graph

9 Commits

Author SHA1 Message Date
m3ultra
3b6b9124f9 docs: FABLE_STARTUP_PACKET §7 — round-2 verification (ADOPT confirmed HIGH, transpose policy verified, parity oracle CPU-runnable, BiRefNet fetched; flags ss_dec double-transpose + bf16-crash + downcast in convert_weights)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-19 11:51:47 +10:00
m3ultra
abfa344565 docs: FABLE_STARTUP_PACKET — prep recon consolidated (adopt PR#175 MLX base, Hunyuan mx.compile targets, prep_local draft, weight-convert+parity plan)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-19 11:11:23 +10:00
m3ultra
ca4c802e40 docs: master build plan — TRELLIS.2+Hunyuan full MLX + kernel rewrites + preprocessing frontend (multi-day roadmap for Fable)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-19 10:46:38 +10:00
m3ultra
daa6124dcf benchmarks: first trellis_mac vs fal trellis-2 head-to-head — local faster, quality gap = hole-fill + pre-simplify
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-19 00:22:41 +10:00
m3ultra
2734ef9107 docs: TRELLIS.2 Apple Silicon recon — trellis-mac is already TRELLIS.2, MLX ladder, PR #175 watch
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-18 23:44:30 +10:00
MODELBEAST
210d80484c runner: resolve relative operator python paths against repo root (multi-node portability)
Manifest "python" can now be a repo-relative path (venvs/mflux/bin/python) that
resolves against db.ROOT, so the same operator code runs on any machine/checkout
(M3 Ultra, M1 Ultra worker). All 6 venv operators switched to relative paths.
Prep for the M1 Ultra second node.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-14 11:47:39 +10:00
MODELBEAST
514ec6cdcc Security hardening from adversarial review (5-agent workflow)
Fixed confirmed findings before public exposure:
HIGH:
- upload filename path traversal → store.safe_name() strips to basename
- login rate-limit XFF bypass → key on request.client.host + per-username bucket;
  auth.check_login() burns bcrypt time on unknown users (no enumeration)
- cross-user read access → per-user isolation: guests see/use/download/delete only
  their own assets & jobs (owner sees all); WS job events scoped per-user
MEDIUM:
- unbounded upload read → bounded chunked streaming to the 1GB cap
- asset member path check → Path.is_relative_to boundary + ownership gate
- WS token-in-query-string leak → session-cookie-only WS auth
LOW:
- retry_job bypassed the per-user job cap → cap now checked on retry
- wholesale API-key injection → env_for_operator injects a paid key only to
  operators that declare it (guest local jobs never receive fal/OpenRouter keys)
- session revocation → users.session_epoch, bumped on password change
- int() 500s → 400; net-lane defense-in-depth (guests blocked by requires_env AND
  resources==net, so a mis-tagged paid op is still blocked)
+ public /api/health for serve.sh & proxy; docs/VPS.md; mb MB_TOKEN bearer auth

tests/smoke.sh: 34 checks passing incl. all new hardening.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-13 12:25:13 +10:00
MODELBEAST
8fc7b407f3 docs: CUDA worker — add Win11 + WSL2 path (recommended, no reinstall)
T490s already runs Win11, so keep it: WSL2 gives clean Linux CUDA env with eGPU
passthrough where the Linux-first 3D repos build properly. Bare-metal Ubuntu kept
as the leaner Path B. Covers mirrored WSL networking, headless/lid + Windows Update
settings for an always-on worker.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-13 11:01:36 +10:00
MODELBEAST
27ce69782d docs: CUDA worker setup guide (T490s + 2080Ti eGPU on tailnet)
Ready-to-follow checklist for standing up a headless Linux + eGPU CUDA node to
offload the CUDA-only 3D/mocap jobs the Mac can't run (splat->mesh, GVHMR mocap).
Bare-metal Linux required (no VM GPU passthrough on Mac hosts). Planned remote-CUDA
operators: sugar_mesh, gvhmr_mocap.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-13 10:58:32 +10:00