oto/apps/client/README.md
toki 365995900e feat(runner): output port 경계 작업을 반영한다
runner 출력 경계 분리의 첫 계약 작업을 완료하고 후속 subtask와 로드맵 상태를 함께 기록한다. workspace 포트와 local smoke 기준도 독립 Control Plane 방향에 맞춰 정리한다.
2026-06-07 13:12:46 +09:00

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.dart only starts the OTO client host.
  • lib/src/app/bootstrap.dart owns app startup concerns such as fullscreen system UI setup.
  • lib/src/app/oto_client_app.dart wires the host MaterialApp to OtoConsoleShell.
  • ../../packages/flutter/oto_console exports the product-owned embeddable widgets. That package consumes the workspace shared agent-shell package.

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.