Octop explained: a self-hosted assistant for users, agents and channels
Reading Octop launch.py: startup success does not prove sandbox readiness
Inspect background bubblewrap provisioning and the foreground service cleanup path.
What you will learn
- Locate the provisioning branch
- Interpret the result narrowly
- Follow cleanup and listener composition
Before you start
- Basic Python and service administration
- An isolated test environment
A proposed read-only dashboard makes unverified capabilities visible before use.
Key takeaways
- Provisioning is best-effort and backgrounded.
- HTTP readiness is not sandbox evidence.
- No live bypass was demonstrated.
Locate the provisioning branch
On Linux, _schedule_linux_bubblewrap_ensure creates a background task using asyncio.to_thread. Non-Linux platforms return without creating that task. Provisioning does not block the foreground startup path.
_ensure_linux_bubblewrap catches exceptions and logs a warning, and also logs a degraded result. Its docstring explicitly describes best-effort provisioning that must not fail octop run.
Interpret the result narrowly
A dashboard that starts successfully therefore cannot by itself prove bubblewrap was provisioned successfully. Inspect the actual sandbox status and tool-execution policy before permitting untrusted commands.
This is a conclusion about the inspected startup function, not a demonstrated sandbox bypass. The downstream tool enforcement code and a live Linux execution were not tested in this series.
Follow cleanup and listener composition
run_foreground starts the domain server, resolves the listener plan, builds the API application and serves it. Its finally block closes memory control, cancels the provisioning task and stops the domain server.
Use this order to classify failures: initialization, listener setup, service runtime or shutdown. Preserve the first error and avoid treating every startup warning as a provider-credential problem.
Decision guide
| Criterion | Option A | Option B |
|---|---|---|
| Best when | You need predictable behavior and easy auditing | You need adaptive optimization and have reliable telemetry |
| Main risk | May leave performance on the table | Can become difficult to explain or debug |
Implementation steps
- 1
Inspect the platform and background-task branch.
- 2
Verify sandbox readiness independently of HTTP startup.
- 3
Classify failures by lifecycle stage.
Copy-ready example
Linux startup -> background provisioning
exception / degraded -> warning, process continues
HTTP available != sandbox readiness verifiedFrequently asked questions
Does a running dashboard prove bubblewrap works?
No. The inspected startup helper logs degraded or failed provisioning without failing the process.
Was a sandbox escape found?
No. This is source analysis of readiness semantics, not an exploit or enforcement audit.
Sources
- Octop / src/octop/launch.pySource checked 2026-09-23