Skip to content

refactor: extract shared relay service and enforce Cargo boundary - #1569

Merged
limityan merged 1 commit into
GCWing:mainfrom
limityan:yanzhn/relay-boundary-enforcement
Jul 16, 2026
Merged

refactor: extract shared relay service and enforce Cargo boundary#1569
limityan merged 1 commit into
GCWing:mainfrom
limityan:yanzhn/relay-boundary-enforcement

Conversation

@limityan

@limityan limityan commented Jul 16, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • 将 room/device 状态、account/sync 存储、asset store 与 HTTP/WebSocket router 抽取到 services/relay-service,standalone relay app 与 embedded 入口同向消费共享实现。
  • 删除 assembly/core -> apps/relay-server 反向 Cargo 边,并用 Cargo metadata 门禁保护 crate 层级方向。
  • 保留 bitfun_relay_server 原有模块路径、根导出、AppState 结构、公开 handler 签名与四参数 router builder;新代码可直接依赖 bitfun-relay-service
  • 同步 Docker 构建上下文、部署说明、最近层级 AGENTS、架构事实与执行计划。

Scope and behavior boundaries

  • HTTP/WebSocket 路由、协议版本、SQLite schema、zero-knowledge 语义、bind/config 与关闭流程不变。
  • /health/api/info 的版本由构造 router 的宿主注入,避免 app/service 版本分离后误报 service crate 版本。
  • standalone 的 bind、环境配置、静态 fallback、进程生命周期和管理 CLI 仍在 app。
  • embedded TCP bind、静态 fallback 与任务生命周期仍在 assembly 兼容路径,属于独立后续债务;本 PR 只完成共享 owner 与 Cargo 方向修复。
  • 本 PR 不实现或证明 HarmonyOS 本地 GUI/TUI、HAP 宿主、TTY/PTY、进程、网络、存储或本地 Agent Runtime。该分层修复可与 HarmonyOS 可行性验证并行,不是其完成前提。
  • 不新增用户模式、配置项、协议对象、平台总接口或第二套 runtime。

Compatibility and deployment

  • Rust 旧导入路径由薄 facade 保留,并有编译测试覆盖原模块、根导出、AppState literal、零参 server_info() 与四参数 builder。
  • Docker build context 从 app 目录调整为仓库根;README 给出唯一支持的 build/compose 命令。只复制 src/apps/relay-server 的部署包还需同时包含 src/crates/services/relay-service
  • runtime volume、端口与环境变量不变。

Adversarial review

架构、产品与实现三位隔离 subagent 完成两轮审查。首轮及修复复核发现并关闭:

  1. 边界矩阵和 resolved graph 覆盖不足,可能漏过 patch/replace、standalone package、未激活 optional/target 反向依赖。
  2. declared/resolved 依赖未合并,renamed dependency 可能重复报告。
  3. health/info 版本在迁移后错误归属 service crate。
  4. 初版删除旧 library target 或收缩公开 API 会造成源码兼容破坏。
  5. 架构文档仍把已删除反向边写成现存债务,且未区分 embedded 宿主后续工作。
  6. Docker 根上下文迁移缺少升级说明,计划基线使用不可复现的浮动措辞。

最终三方复审均未发现 P0-P3,也未发现功能、接口或产品边界过度膨胀。

Validation

通过:

  • node --test scripts/check-core-boundaries.test.mjs(12/12)
  • node scripts/core-boundaries/self-test.mjs
  • node scripts/check-core-boundaries.mjs
  • cargo +nightly fmt -p bitfun-relay-service -p bitfun-relay-server -- --check
  • cargo +nightly test -p bitfun-relay-service(12/12 + doc tests)
  • cargo +nightly test -p bitfun-relay-server --test library_compat(1/1)
  • cargo +nightly check -p bitfun-core --features service-integrations --locked
  • cargo +nightly check --workspace --exclude bitfun-desktop
  • cargo +nightly test --workspace --exclude bitfun-desktop
  • pnpm run check:repo-hygiene
  • git diff --check gcwing/main

环境限制:本机没有 Docker CLI/daemon,未执行镜像构建;Dockerfile/Compose 已完成静态复核。Desktop 本地全 workspace check 需要预生成 src/mobile-web/dist,本轮由 GitHub CI 继续覆盖三平台 Rust build。

@limityan
limityan force-pushed the yanzhn/relay-boundary-enforcement branch from f4c241b to 97c313d Compare July 16, 2026 05:19
@limityan limityan changed the title refactor: enforce relay runtime ownership refactor: extract shared relay service and enforce Cargo boundary Jul 16, 2026
@limityan
limityan merged commit 0a2f431 into GCWing:main Jul 16, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant