The selected harness decides
When fresh trading judgment is required, T3 wakes the selected harness. The harness interprets the objective, makes discretionary decisions, and operates through typed tools exposed by T3.
02 · Non-negotiable architectural decision
T3 is the primary runtime and control boundary. A harness turn is temporary; a trading mission is durable. The durable services that stay active between turns persist state, monitor typed events, enforce authority, and execute typed actions — but they never invent strategy, choose entries, or replace the selected harness with a hidden rules engine.
2.1–2.2 · What each side owns
T3 continues to own harness discovery, provider selection, session start and recovery, thread and mission association, tool provisioning, runtime-event ingestion, turn coordination, user conversation, persistent domain state, event scheduling and delivery, ordered UI projections, and pause, resume, and revocation controls. Trading is a first-class T3 orchestration domain — not a separate product-level strategy service that independently owns trading intelligence.
When fresh trading judgment is required, T3 wakes the selected harness. The harness interprets the objective, makes discretionary decisions, and operates through typed tools exposed by T3.
Harness discovery and availability, provider selection, provider session start and recovery, thread and mission association, tool provisioning, runtime-event ingestion, turn coordination, user conversation, persistent domain state, event scheduling and delivery, ordered UI projections, and pause, resume, and revocation controls.
2.2 · Trading Mission Runtime authority
A harness turn is temporary. A trading mission is durable. The persistent services that remain active after an individual agent turn ends form the T3 Trading Mission Runtime inside the T3 server.
The runtime must not independently:
2.3 · Correct runtime boundary
The harness remains the strategy actor. The T3 server remains the harness manager and execution boundary. Hyperliquid remains the canonical exchange-state authority.
Typed requests flow in; ordered pushes flow back out. Nothing in the harness reaches Hyperliquid or Privy directly, and nothing on the exchange reaches the harness except through T3's typed tool surface.
2.4 · Turn vs mission
These four concepts must remain distinct. Conflating them is the most common cause of incorrect autonomous-trading architecture.
The provider completed one reasoning-and-tool-use cycle. The mission is not over. The session is not necessarily closed.
T3 can resume the same provider thread later, with preserved mission, strategy, authority, and tool-version context.
T3 continues monitoring registered events and may wake the harness when a watch, timer, exchange update, or user message requires fresh judgment.
The server process, network connection, subscriptions, timers, and workers are available. Without this, nothing runs.
POC autonomy is conditional. The POC remains autonomous after an agent turn ends only while the T3 execution environment continues running. It does not promise continuous operation while the host machine is powered off, asleep, disconnected, or the T3 server is stopped. Future always-on operation should run the same T3 server architecture in a remote execution environment — it should not introduce a separate trading control plane.
6.1–6.2 · Server composition
The fork should preserve T3's existing architectural shape: React clients communicate with a T3 server through typed RPC and ordered push events; the T3 server is the execution environment and main coordinator; provider adapters own provider-specific protocols; ProviderService provides cross-provider session start, resume, routing, and event streaming; provider-native events are normalized into the orchestration domain; queue-backed workers serialize long-running asynchronous flows; runtime receipts provide deterministic completion signals; contracts define the transport and domain boundary; and remote access changes how a client reaches a T3 server, not who owns runtime state. Trading extends these concepts rather than creating parallel infrastructure.
ProviderServiceOrchestrationEngineProviderCommandReactorRuntimeReceiptBusServerPushBusTradingMissionServiceTradingTurnCoordinatorTradingEventIngestion / TradingEventReactorMarketDataGatewayMarketWatchRegistryTradingScheduleServiceTradingAuthorityServiceTradingControlServiceTradingToolRegistryHyperliquidExecutionServiceHyperliquidNonceCoordinatorOrderPositionReconcilerPrivyWalletServiceTradingProjectionService6.3 · Integration rule
The trading extension may add new domain events, commands, services, tools, projections, and UI surfaces. The constraint is not "do not modify any upstream file" — it is "do not build a second T3 inside T3."
ProviderService.ServerPushBus.The integration rule, stated plainly. Every entry on the MUST NOT list is a way to accidentally build a second trading brain, a second control plane, or a second truth source inside the same process. Any one of them breaks the runtime boundary in §2.3 and the ownership boundary in §9.
9 · Domain ownership boundaries
The architecture is only safe if every layer respects the next layer's decision rights. The table below assigns ownership; it does not describe cooperation. Layers cooperate constantly, but no layer silently absorbs another layer's decisions.
| Layer | Owns |
|---|---|
| Selected harness Strategy actor |
|
| T3 provider layer Harness manager |
|
| T3 Trading Mission Runtime Durable infrastructure |
|
| Hyperliquid Canonical truth |
|
| Privy Identity and signing infrastructure |
|
No layer may silently absorb another layer's decision rights.