Replies: 2 comments
-
Beta Was this translation helpful? Give feedback.
-
|
Maintainer disclosure: I build Better Agent, a local workspace supervising native Claude, Codex, and Gemini agents with scoped approvals and restart recovery. The three-plane split is clear. I would make the capability object action-specific rather than treating terminal or control as broad powers. A minimal capability could bind:
Initial scopes should avoid overlap:
A generic shell or control scope is too broad to be the default composition primitive. For freshness, I would classify actions:
If freshness cannot be established, preserve the existing low-risk session only within its exact scope and deadline; do not allow new authority. The UI should visibly show degraded/uncertain authority. Maximum-use budgets need reservation semantics for concurrency. Two peers must not each observe one remaining use and both execute. The target verifier should atomically consume or reserve a use under a capability/attempt identity, with an idempotency key so retries do not double-spend. Subdelegation can only attenuate scope, expiry, uses, and budget. For private session evidence, anchor commitments rather than raw logs:
A signed result proves what envd reported, not necessarily that an external side effect occurred correctly. Keep application verification or independently observed outcome as a separate evidence relation. Before retiring coordinator authority, test relay compromise, stale revocation state, duplicate delivery, crash after side effect before acknowledgement, and restart with uncertain outcome. None should mint authority or project false success. License note: Better Agent is source-available and free for non-commercial use; commercial use requires separate permission. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Summary
FractalMind AI currently spans several repositories and capabilities: SUI contracts,
envd, remote desktop, Agent Console, messaging adapters, agent lifecycle tools, team/OKR tooling, and skill packages.The capabilities are useful, but the architecture is harder to explain than it needs to be because runtime services, applications, trust primitives, and distributable skills are often presented as peer components.
This RFC proposes a simpler three-plane model:
envdas the P2P Data / Execution Planeenvd-desktopas the Application PlaneThe short version is:
1. Control / Authority Plane: SUI Contracts
SUI should be the durable source of authority for:
An authority decision should answer:
SUI should not merely provide a key format while an off-chain bearer token remains the real authority. The contract state, capability proof, or delegated authority derived from it should be what a target node ultimately verifies.
What should not go on-chain
The authority plane should not carry high-frequency or high-volume runtime data such as:
Putting these on-chain would add latency, cost, availability coupling, and unnecessary data exposure.
Instead, SUI should grant a bounded capability with fields such as:
2. P2P Data / Execution Plane:
envdenvdshould become the common peer-to-peer fabric for:The local
agent-managerfunctionality fits here as a host execution adapter. It is not a separate network plane.envdcan call a local adapter for tmux, systemd, Docker, or other runtimes while keeping one network protocol between peers.Proposed command flow
envdtransports the signed intent to the target peer.envdverifies the signer, capability, scope, target, nonce, TTL, replay state, and a sufficiently fresh revocation checkpoint.envddata path.Availability policy
Nodes should not require a synchronous SUI RPC request for every mouse input or low-level command.
A reasonable policy could be:
The exact freshness window and risk classes need to be specified.
3. Application Plane
Agent Console
Agent Console is the controller application. It should:
It should not depend on a permanent coordinator bearer token or hold a node's long-lived local credential.
envd-desktopenvd-desktopis a node-side remote desktop application. It should:The application is separate from the plane it uses:
envd-desktopis an application, while its media and input streams travel through the data plane.Other applications and adapters
Other FractalMind components can be positioned without creating more architecture planes:
fractalbot: human-channel application adapter for Slack, Telegram, Feishu, Discord, and other channelsagent-manager: local node execution adapterSkills, ROMs, specs, and applications should not be counted as independent runtime infrastructure services.
Current Implementation Gap
The proposed model is a target architecture, not a description of the current runtime.
Today:
envdprimarily uses coordinator REST/WebSocket connectivity rather than a complete P2P authority modelfractalmind-envdcontains an older TypeScript gateway alongside the newer embedded Go coordinatorfractalmind-protocoland the policy Move package insidefractalmind-envdThe coordinator should gradually become a replaceable, multi-instance rendezvous / relay / index cache, not an authority owner. A relay outage should affect connectivity, but compromising a relay should not grant control over a node.
Repository and Component Simplification
The three-plane model suggests the following cleanup:
Keep as core products
fractalmind-protocol: Control / Authority Plane contracts and SDKfractalmind-envd: P2P Data / Execution Planeagent-console: controller applicationenvd-desktop: node-side remote desktop application, currently shipped withenvdskills: capability catalog and distribution surfaceConsolidate or retire
fractalmind-envdafter Go parity is confirmedenvdroleagent-managerwhere the runtime state already livesThe private
fractalmind-gatewayrepository is a separate Postgres/Redis private-deployment product line. It should receive an explicit keep/archive/rename decision rather than being confused with the legacy gateway insideenvd.Proposed Migration
Phase 0: Freeze contracts and vocabulary
NodeCommand/NodeEventenvelopeenvdcheckout and implementation sourcePhase 1: Replace bearer authority
envdfractalbotfrom directly invoking local lifecycle commands outside the authority flowPhase 2: Decentralize connectivity
Open Questions
view,control,logs,terminal,shell,lifecycle,deploy?Proposed Decision
Adopt the three-plane model as the target architecture:
envd: P2P Data / Execution Planeenvd-desktop: Application PlaneBegin with Phase 0. This gives the project a stable vocabulary and security boundary before repository consolidation or production migration.
Feedback is especially welcome on capability design, revocation freshness, P2P rendezvous, and the first set of application scopes.
Beta Was this translation helpful? Give feedback.
All reactions