nomadcode/docs/test-environments.md
toki 217c17dfef refactor: rename apps/mobile to apps/client and update project structure
- Rename mobile app directory to client throughout the project
- Restructure client app code into feature-based organization
  - Move code to src/features/workspaces/domain/presentation
  - Move services to src/integrations/ (mattermost, workspace, proto_socket)
  - Add app bootstrap and main entry point
- Add push notification integration (Mattermost push client/host/plugin)
- Add proto socket integration for real-time communication
- Add integration tests for push and socket components
- Archive old milestone: client-integration-standardization.md
- Add new workflow core milestone: roadmap-driven-agent-ops-automation.md
- Update agent-ops rules (project, core, mobile, contracts, workspace-ops)
- Update roadmap files (ROADMAP.md, current.md, phase PHASE.md files)
- Update bin scripts (build, dev, lint, test)
- Add test environments documentation
- Update contracts notes for Flutter Core API
2026-05-25 22:10:43 +09:00

2.6 KiB

Shared Test Environments

NomadCode milestones can reference this document when a verification step needs a shared machine or platform SDK that is not expected to exist in every agent workspace.

Android SDK Remote Runner

Use the Toki Labs host for Android SDK dependent checks.

Access

ssh toki@toki-labs.com

After connecting, use the NomadCode checkout prepared on that host. If the checkout is under the same workspace convention as local agent workspaces, start here:

cd /config/workspace/nomadcode

If that path is absent, use the active NomadCode checkout on the host and make sure it is on the branch or commit that contains the change being verified.

Environment Check

Run these before Android-specific verification:

flutter doctor -v
echo "$ANDROID_HOME"
echo "$ANDROID_SDK_ROOT"
flutter devices

flutter doctor -v should show an Android toolchain with an installed SDK. flutter devices is allowed to show no physical device when the check only needs a build. A device or emulator is required only for an interactive smoke run.

Standard Checks

For Android SDK dependent client milestones, run from the Flutter host:

cd apps/client
flutter pub get
flutter build apk --debug

flutter build apk --debug is the default Android SDK validation for roadmap completion when no device smoke is explicitly required. It verifies Gradle, Android SDK, plugin registration, Firebase Android config wiring, and Dart bootstrap compilation for Android.

Generic Dart/widget checks such as flutter test and flutter analyze --no-fatal-infos may be run locally or on the remote host when the milestone explicitly asks for them. Do not treat the remote host as the source of truth for non-Android SDK checks unless its Flutter SDK version is part of the milestone evidence.

Optional Device Smoke

Run this only when the milestone asks for an Android runtime smoke or notification/device behavior:

cd apps/client
flutter devices
flutter run -d <device-id>

For Mattermost push work, confirm the app boots, Firebase initialization does not crash, and notification navigation callbacks remain observable. Do not record tokens, credentials, signing keys, or private server values in roadmap or docs.

Roadmap Evidence

When a milestone depends on this environment, leave only a short evidence note in the milestone, for example:

Android SDK check: see docs/test-environments.md#android-sdk-remote-runner; flutter build apk --debug passed on toki@toki-labs.com.

Keep detailed reusable environment instructions in this document, not in individual milestone files.