PLATINUM DOCS

JuiceFS local rig evidence

JuiceFS local rig evidence

This file records only non-sensitive local execution facts. It is not evidence of a Development deployment, host rollout, guest mount, or public API state.

2026-08-28 local execution

  • Host: macOS Darwin 24.6.0 arm64; Docker Desktop server 29.4.1; /dev/kvm absent. The rig correctly selects the Linux-client-container substitution and makes no guest/virtiofs claim.
  • API typecheck, the generated OpenAPI contract, and the focused JuiceFS lifecycle/idempotency/command tests passed. A sequential isolated API matrix ran 4,944 cases: 4,907 passed and 36 failed in 15 files. Thirty failures were classified as existing test-environment assumptions (billing configuration, CREATEDB, and macOS Bun crypto); the six JuiceFS regressions found by the matrix were repaired and their focused reruns passed. After the final security repairs, 45 focused API/PostgreSQL tests passed, including the real pending/attached/detaching RW-cap path and duplicate manifest admission. The isolated matrix's 82 mock-owning processes recorded 1,588 passes and the same six unrelated baseline failures. Its 301-file macOS process terminated in a known Bun/BoringSSL crash rather than emitting a summary; the harness now treats that missing summary as a hard failure instead of a false 0/0 pass.
  • Quay-pinned MinIO and MC images were acquired successfully with an isolated Docker config. PostgreSQL TLS, the dedicated bucket, and three Linux FUSE clients became healthy. CE archive SHA verification completed for Linux arm64.
  • The final real JuiceFS FUSE rig completed in 74.14 seconds. Its measured steps were: concurrent separate-file RW 453 ms; cross-client atomic rename 1,667 ms; flock counter 631 ms; POSIX fcntl counter 448 ms; unlocked same-file observation 245 ms; RO denial 154 ms; independent hidden Git worktrees/checkpoint/merge/conflict/restore 8,176 ms; byte/inode quota, quota lowering and recovery 7,392 ms; staged checkpoint/clone/restore immutability 608 ms; uncached metadata/object outage recovery 39,447 ms; and client/PostgreSQL/MinIO/hidden-Git restart recovery 13,601 ms. Attribute and entry caches are disabled in the rig so close/reopen and lock observations do not rely on a stale client cache.
  • Two compatibility corrections were made from actual CE 1.4.1 runtime output: the metadata driver is postgres:// rather than postgresql://, and an omitted URI password must be supplied through META_PASSWORD. Neither generated credential nor storage coordinate is recorded here.
  • The earlier 1.1-GiB physical fixture did fill Docker storage and returned EIO. After safe rig-only cleanup, the replacement uses sparse logical usage, explicit JuiceFS quota reconciliation, and a bounded MinIO aggregate check; the complete quota/outage/restart sequence above then passed.
  • The application rig passed from both fresh and retained disposable state. The final retained-state run took 309.50 seconds (3.67 user, 4.18 system) and exercised the current control plane and dashboard, two independently authenticated host simulators, curl, TypeScript and Python SDKs, CLI, and MCP for create/list, two attachments, usage, detach, checkpoints, two Git workspaces, status/diff/log/branches/checkpoints, merge/conflict/restore, and fixture-only cleanup. These host simulators prove durable API dispatch and receipt semantics, not KVM guests or virtio-fs.
  • A pinned Linux/arm64 toolchain container passed the complete post-fix host-agent test package in 42.22 seconds, go build, and go vet; the durable-started-receipt restart boundary, staged-blob TOCTOU, rejected-push rollback, symlink, ignore, and guest-mutation regressions also passed independently. Client package totals were: TypeScript SDK 113 pass/2 skip, Python SDK 109 pass/1 skip, CLI 101 pass, MCP 208 pass, and web 75 pass. The Next.js production build compiled in 16.8 seconds and generated all 317 static pages.
  • The exact rig teardown removed only Docker resources bearing the fixed pt-juicefs-rig-20260828 project label and its private state; no prune or unrelated Docker/database/worktree deletion was used.

These results establish the disposable control-plane and real FUSE semantics. They do not establish a Development deployment, Cloud Hypervisor attachment, two distinct Development hosts, or cleanup of live Development resources.