Skip to content

docs(readme): walk back unimplemented claims, link 28ms proof#5

Merged
arpan-mondal merged 1 commit into
mainfrom
docs/readme-honest-claims
May 12, 2026
Merged

docs(readme): walk back unimplemented claims, link 28ms proof#5
arpan-mondal merged 1 commit into
mainfrom
docs/readme-honest-claims

Conversation

@arpan-mondal
Copy link
Copy Markdown
Contributor

What

README honesty pass. No code changes.

Why

An internal audit found three places where the README overclaims:

  1. pool_security knobs are dead config. PerUserUID, PIDNamespace, WorkspacePermissions, HidePID are declared in PoolSecurityProviderConfig (internal/providers/docker.go:47-50) and defaulted via viper (internal/config/config.go:261-264) but never read by the Docker provider. Setting them today has no effect. The README presents them as security guarantees, which is the most credibility-damaging thing in the file.
  2. Live preview is port-3000-only. docker.go hardcodes Traefik labels for port 3000. The SDK accepts any port and silently builds non-routing URLs for everything else.
  3. File API count. "9 methods" → "8 file methods + exec" to match the Python SDK.

What this PR does

  • Removes the pool_security YAML example from the Pool mode section
  • Adds an explicit "Coming in v0.2" callout naming the four flags
  • Replaces "Same isolation guarantees" with an honest trust-model recommendation (trusted multi-tenant → pool mode is fine; untrusted → stay 1:1 until v0.2)
  • Scopes live preview to port 3000 in: hero subtitle, comparison table, Live Preview section body, Live Preview caveat
  • Updates File API row in comparison table
  • Adds two roadmap items: pool security hardening (v0.2), configurable preview ports
  • Adds docs/snapshot-restore.md and scripts/benchmark.sh links to the 28ms roadmap entry so the claim is reproducible

What this PR does NOT do

  • Does not touch code. All four pool_security knobs still exist in the config struct and still do nothing — fixing them is a separate PR (v0.2).
  • Does not change the 28ms claim itself. The methodology doc and benchmark script back it up; this PR just makes the proof discoverable.
  • Does not fix the stale ~100-200ms comment at internal/providers/firecracker.go:301. Separate code-side fix.

Follow-ups (tracked separately)

  • Wire up per_user_uid, pid_namespace, workspace_permissions, hidepid in Docker provider (v0.2)
  • Add configurable preview port support (label injection for arbitrary ports)
  • Update stale code comment in firecracker.go:301
  • Publish BENCHMARKS.md with full reproduction methodology

Review focus

The "Pool mode hardening" section rewrite is the most opinionated change. Three things to red-pen:

  1. Whether to name the four flags explicitly in the disclosure (current) or use a softer "hardening features in development"
  2. Whether to keep the trust-model recommendation in the README or stay silent on it
  3. Anything else the audit missed

The README documented four pool_security knobs (per_user_uid,
pid_namespace, workspace_permissions, hidepid) that are declared
in PoolSecurityProviderConfig but never read by the Docker provider.
Setting them in YAML has no effect today. Removed the misleading
config example and added an explicit "Coming in v0.2" callout that
names the four flags. Tracked in the roadmap.

Live preview is also scoped honestly: docker.go hardcodes Traefik
labels for port 3000, but the SDK's get_preview_url(port) accepts
any int. Comparison table, hero copy, and Live Preview section now
say "port 3000 today; configurable ports on the roadmap."

File API count corrected from "9 methods" to "8 file methods + exec"
to match sdk/python/stacyvm/sandbox.py.

28ms snapshot-restore claim retained and now links docs/snapshot-restore.md
(methodology) and scripts/benchmark.sh (reproduce). The stale
"~100-200ms" comment at firecracker.go:301 is out of scope for this
PR — separate fix.

No code changes. No behavior changes. Documentation only.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@mintlify
Copy link
Copy Markdown
Contributor

mintlify Bot commented May 12, 2026

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated (UTC)
stacy 🟢 Ready View Preview May 12, 2026, 10:26 AM

@arpan-mondal arpan-mondal merged commit b3c9041 into main May 12, 2026
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant