No description
Find a file
toki 0fbab633c5 chore: archive runtime-image-validation milestone and update roadmap
- Move runtime-image-validation milestone to archive
- Archive m-runtime-image-validation task folder
- Update agent-roadmap/current.md and PHASE.md
- Update docs/runtime-image-validation.md
- Update apps/mattermost snapshots and detox config
2026-05-28 19:47:57 +09:00
.claude init: agent-ops, AI assistant rules, and configuration files add 2026-05-26 13:29:38 +09:00
agent-ops feat: runtime image validation & domain rules update 2026-05-28 10:41:06 +09:00
agent-roadmap chore: archive runtime-image-validation milestone and update roadmap 2026-05-28 19:47:57 +09:00
agent-task/archive/2026/05 chore: archive runtime-image-validation milestone and update roadmap 2026-05-28 19:47:57 +09:00
apps chore: archive runtime-image-validation milestone and update roadmap 2026-05-28 19:47:57 +09:00
bin feat: runtime image validation & domain rules update 2026-05-28 10:41:06 +09:00
docs chore: archive runtime-image-validation milestone and update roadmap 2026-05-28 19:47:57 +09:00
packages/messaging_flutter refactor: rename apps/client to apps/flutter-test and add mattermost/push-proxy apps 2026-05-28 05:59:35 +09:00
scratch update roadmap and archive completed milestones 2026-05-28 06:46:50 +09:00
services feat: remote compose 설정 업데이트 및 문서 동기화 2026-05-28 10:53:13 +09:00
.aiexclude refactor: migrate roadmap structure from agent-ops/roadmap/ to agent-roadmap/ 2026-05-27 11:18:08 +09:00
.clineignore refactor: migrate roadmap structure from agent-ops/roadmap/ to agent-roadmap/ 2026-05-27 11:18:08 +09:00
.clinerules sync: agent-ops from agentic-framework v1.1.80 2026-05-28 09:59:21 +09:00
.cursorignore refactor: migrate roadmap structure from agent-ops/roadmap/ to agent-roadmap/ 2026-05-27 11:18:08 +09:00
.cursorrules sync: agent-ops from agentic-framework v1.1.80 2026-05-28 09:59:21 +09:00
.geminiignore refactor: migrate roadmap structure from agent-ops/roadmap/ to agent-roadmap/ 2026-05-27 11:18:08 +09:00
.gitignore track agent-task directory: remove from .gitignore 2026-05-28 04:56:02 +09:00
AGENTS.md sync: agent-ops from agentic-framework v1.1.80 2026-05-28 09:59:21 +09:00
CLAUDE.md sync: agent-ops from agentic-framework v1.1.80 2026-05-28 09:59:21 +09:00
GEMINI.md sync: agent-ops from agentic-framework v1.1.80 2026-05-28 09:59:21 +09:00
opencode.json refactor: migrate roadmap structure from agent-ops/roadmap/ to agent-roadmap/ 2026-05-27 11:18:08 +09:00
README.md refactor: rename apps/client to apps/flutter-test and add mattermost/push-proxy apps 2026-05-28 05:59:35 +09:00

nexo

nexo is a Flutter messaging and notification package workspace. The main deliverable is packages/messaging_flutter: a reusable package that lets many Flutter apps integrate messaging and push-notification behavior without each app reimplementing the same native runtime.

Mattermost upstream repositories are kept as references around the package: apps/mattermost for the original Mattermost app, services/core for the server, and services/push-proxy for the push server. This repository does not contain a dedicated nexo product app.

Name

nexo comes from nexus: a connection point where apps, messages, notifications, and service infrastructure meet.

Current Status

  • packages/messaging_flutter/ is the main product surface: an Android-first Flutter messaging and push-notification plugin package.
  • apps/flutter-test/ is the plugin test app.
  • apps/mattermost/ is the original Mattermost mobile app repository snapshot (see apps/mattermost/UPSTREAM.md).
  • services/core/ is the Mattermost server repository clone.
  • services/push-proxy/ is the Mattermost push-proxy repository snapshot (see services/push-proxy/UPSTREAM.md).
  • Public package, import, and native identifiers are being moved to Nexo-owned names.
  • iOS and macOS plugin scaffolds exist, but Android is the current implementation target.

Quick Start

Show development entrypoints:

bin/dev

Run Flutter package and flutter-test host checks:

bin/test
bin/lint

Start the core compose runtime:

cd services/core/compose
cp .env.example .env
docker compose up

Commands

Purpose Command Notes
Show development entrypoints bin/dev Prints test host, plugin, and core compose commands
Run default tests bin/test Runs Flutter tests; skips Go tests by default
Run default lint bin/lint Runs Flutter analyze; skips Go vet by default
Run default build bin/build Runs configured app builds; skips apps/flutter-test web build when web is not configured and skips Go build by default
Include server Go tests NEXO_CORE_GO_TEST=1 bin/test Requires local go
Include server Go vet NEXO_CORE_GO_LINT=1 bin/lint Requires local go
Include server Go build NEXO_CORE_GO_BUILD=1 bin/build Requires local go
Run the flutter-test host directly cd apps/flutter-test && flutter run Requires Flutter SDK
Test the plugin directly cd packages/messaging_flutter && flutter test Requires Flutter SDK
Run Android native unit tests cd apps/flutter-test/android && ./gradlew testDebugUnitTest Requires Android SDK

The bin/* helpers skip checks when a required local tool is unavailable. Note any skipped checks in work reports.

Structure

Path Role
packages/messaging_flutter/ Main Flutter messaging and push-notification package
apps/flutter-test/ flutter-test app for package integration checks
apps/mattermost/ Mattermost mobile app repository snapshot
services/core/ Mattermost server repository clone and current compose runtime
services/push-proxy/ Mattermost push-proxy repository snapshot
docs/ Cross-module product, migration, and operations notes
bin/ Workspace helper entrypoints
agent-ops/ Agent rules, domain rules, and common skill entrypoints

Work Context

  • Start by reading AGENTS.md, then agent-ops/rules/project/rules.md.
  • Follow path-specific domain rules under agent-ops/rules/project/domain/*/rules.md.
  • For standard tasks such as README, plan, review, or commit/push, route through agent-ops/skills/common/router.md.
  • Treat packages/messaging_flutter/ as the primary product. App-specific product UI and business logic belong in consuming apps outside this repository.
  • Treat apps/flutter-test/ only as the plugin integration test host; do not grow it into a product app or duplicate plugin internals there.
  • Treat apps/mattermost, services/core, and services/push-proxy as original Mattermost repository clones, not as nexo-owned app or server products.
  • Do not change services/core/UPSTREAM.md baseline information without an explicit upstream decision.
  • Keep upstream working clones outside this repository under a sibling/external mattermost/ staging folder, one clone for each original repository.
  • Track each upstream repository on its recorded staging branch: main for mattermost-mobile, and master for mattermost and mattermost-push-proxy. When a tracked branch changes or a refresh is intentionally scheduled, take a fresh snapshot from staging and open a merge request into this repository.
  • Record the exact upstream commit SHA for every snapshot that enters this repository.
  • Prefer one merge request per upstream repository snapshot: apps/mattermost, services/core, or services/push-proxy.
  • Never auto-apply staging updates into this repository; review the snapshot diff and run the relevant smoke checks first.
  • Keep nexo-specific patches outside the upstream snapshot where possible, using compose, docs, wrappers, or small explicit patches.

Development Flow

  1. Read the domain rule for the path you will change.
  2. Make focused changes inside the owning module.
  3. Run the smallest useful verification for the change.
  4. Use bin/test, bin/lint, or bin/build when workspace-level checks are needed.
  5. Use services/core/compose/ when runtime server verification is needed.

Environment Variables

Core Compose

Name Description Required
NEXO_DB_PASSWORD Password for the Postgres mmuser account Yes
NEXO_SITE_URL Site URL used by the core service Yes
NEXO_CORE_PORT Host port mapped to core 8065 No
NEXO_PUSH_PROXY_PORT Host port mapped to push-proxy 8066 No

See services/core/compose/.env.example for example values. Do not commit real .env files or runtime data. The Docker network subnet is fixed to 172.38.0.0/16; reserve this range for nexo and do not reuse it for other Docker networks.

Optional Verification

Name Description Default
NEXO_CORE_GO_TEST Run server Go tests from bin/test 0
NEXO_CORE_GO_LINT Run server Go vet from bin/lint 0
NEXO_CORE_GO_BUILD Run server Go build from bin/build 0

Reference Documents

  • AGENTS.md
  • agent-ops/rules/project/rules.md
  • agent-ops/skills/common/router.md
  • services/core/UPSTREAM.md
  • services/core/compose/README.md
  • packages/messaging_flutter/README.md
  • packages/messaging_flutter/docs/android-test-environment.md
  • apps/flutter-test/README.md
  • docs/README.md