Code Load Compiles Into the Live Runtime, Bounded by Capability Tiers

The eOS runtime platform accepts new code into the running runtime as a runtime operation; what the loaded code is allowed to do is bounded by the capability layer at the moment of load. An agent or developer adding a new capability does not redeploy the runtime, and does not reach for an external sandbox container -- the platform compiles the new code in place, and the runtime enforces the loaded code's permissions just as it enforces every existing object's permissions.

Why It Is Held

Code-load patterns built outside the runtime fragment. Each team picks a sandbox technology (containers, processes, virtualization, language-level isolators), each implementation has bugs the team rebuilds, and each requires its own coordination layer to plumb identity and permissions across the sandbox boundary. The application code that orchestrates "compile this, sandbox it, give it credentials, route requests to it" is not the application's actual logic -- it is bookkeeping the platform could provide. Treating sandboxed code load as a runtime primitive removes the orchestration entirely: the runtime compiles the code, the capability layer bounds what it can do, and the loaded code lives alongside existing objects under the same enforcement.

The platform-as-loader stance composes with the capability-separation primitive ([[Capability Boundaries Are Runtime-Enforced, Not Policy-Checked]]). The capability layer that enforces existing objects' permissions also enforces loaded code's permissions; what tier the loaded code runs in is set at load time and bounds every operation thereafter. Without runtime-level capability separation, sandboxing newly-loaded code would require a separate enforcement mechanism -- exactly the per-team-rebuilt sandbox pattern the platform replaces. With runtime-level capability separation, code load is just one more event the existing capability machinery scopes.

The platform-as-loader stance also composes with the hot-reload primitive ([[Hot Reload Is a Runtime Operation, Not a Deployment Event]]). Both rest on the same runtime compile-and-load mechanism, but they make different claims: hot reload is about UPDATING existing code without restart; sandboxed code load is about ADDING NEW code bounded by capability. The two Convictions overlap mechanically while remaining distinct in stance -- a platform that supports hot reload but not sandboxed code load would be a platform where new code can only enter through a redeploy, and a platform that supports sandboxed code load but not hot reload would be one where new code lands but existing code never changes. Both stances together are what makes the platform's code-handling story coherent.

The eOS-kernellib foundation provides this primitive directly at the runtime layer: the runtime's compile-and-load mechanism compiles a source file and registers it as a program, and an inheritance filter checks whether the inheriting object has read access to the inherited program. The kernel layer's access daemon mediates that read-access check via the file-permission system, and its object-load interception point lets the foundation hook compile and load events for tracking, logging, or additional policy.

The Conviction is held because the no-external-sandbox experience is what platform adoption purchases for the agent-skill-extension story. When agents (or developers) can add new capabilities by compiling source into the running runtime under a chosen capability tier, the development cycle for new agent skills compresses to write-and-compile rather than build-deploy-orchestrate. Trading the primitive for an external sandbox would surrender exactly the property that makes the platform well-suited to LLM-driven dynamic-capability scenarios.

What It Asks

Honoring this Conviction asks the project to keep code load inside the runtime under the capability layer, not to delegate it to external sandbox technology.

Drift Recognition

The Conviction has weakened when the project's outputs treat new-code-load as something an external orchestrator handles rather than as a runtime operation under the capability layer.

Relations