runner 출력 경계 분리의 첫 계약 작업을 완료하고 후속 subtask와 로드맵 상태를 함께 기록한다. workspace 포트와 local smoke 기준도 독립 Control Plane 방향에 맞춰 정리한다.
1.5 KiB
OTO Client
Flutter host application for the OTO console.
The embeddable UI surface lives in packages/flutter/oto_console so other
workspace apps, such as ../nomadcode/apps/client, can mount OTO as a modular
Flutter widget instead of depending on this host application's main.dart.
Structure
lib/main.dartonly starts the OTO client host.lib/src/app/bootstrap.dartowns app startup concerns such as fullscreen system UI setup.lib/src/app/oto_client_app.dartwires the hostMaterialApptoOtoConsoleShell.../../packages/flutter/oto_consoleexports the product-owned embeddable widgets. That package consumes the workspace sharedagent-shellpackage.
Embedding
Add the package from another workspace Flutter app:
dependencies:
oto_console:
path: ../../../oto/packages/flutter/oto_console
Then mount any exported widget, for example OtoConsoleShell or
OtoAgentPanel, inside the host application's own workbench shell.
Local Preview
The workspace frontend preview port candidate is 13020:
flutter run -d chrome --web-port=13020
The preview port is separate from the OTO Core server URL. When the client needs to talk to a host-published Core server, pass the server URL with a compile-time define:
flutter run -d chrome --web-port=13020 --dart-define=OTO_SERVER_HTTP_URL=http://localhost:18020
The current app-level fallback http://localhost:8080 remains a local
compatibility default until the runtime default is intentionally migrated.