Skip to content

feat(connectivity): own clipboard connections and multiplexed exchanges - #178

Merged
mkdir700 merged 4 commits into
mainfrom
feat/clipboard-connectivity-slice-2
Oct 11, 2026
Merged

mkdir700 merged 4 commits into
mainfrom
feat/clipboard-connectivity-slice-2

Conversation

@mkdir700

Copy link
Copy Markdown
Member

关联 #34,完成第二切片:调用方提交“向设备 B 发送剪贴板”的意图,由 Application 连接模块统一负责共享拨号、准入、并发流和关闭。此前共享拨号与单流接收缺少统一契约,领头取消及离线后复用旧连接会影响并发发送和恢复。

变更

  • 普通剪贴板收发全部迁移到 Uni 自有连接边界,删除旧 iroh dispatch/receiver adapter;原生操作集中在 Infra bridge。
  • 新新端优先协商 uniclipboard/clipboard-applied/2,同一活动连接支持独立多流;保留 /1 每连接单次交换兼容。
  • 拨号等待者分别持有取消与 deadline;最后等待者离开取消并 join。连接、等待队列、flight 与活动流均有界;单流失败不影响兄弟流,成员撤销及 Space 换代关闭整条连接。
  • 确认离线后淘汰旧连接,消息写出前最多有界更新一次;连接层不重发内容。发送负责人为同条内容/目标增加尝试写入围栏,避免旧结果覆盖新成功。
  • 延续系统剪贴板写入和手动重发的既有不透明观测上下文,补齐真实 Engine 撤销、切换及旧工作排空验收。

稳定 Engine facade、移动绑定、持久化格式及 ACK 的持久接受/去重语义不变;无新增明文持久字段。连接不进入空闲池,其他协议不复用该连接边界。

验证

  • 根检查全部通过:metadata、workspace/all-targets check、fmt、Rust 风格、架构检查、diff 检查。
  • 本切片真实 Engine 独立进程验收 8/8 通过;独立网络矩阵 14/14 通过,覆盖 direct、relay-only、并发发送、故障恢复及新旧双方 /1 互通。
  • 最新 workspace 执行 4226 项:4225 通过、1 失败、35 跳过。唯一失败为既有成员 G2 密码学拒绝场景:未观测到拒绝投影;同一源码隔离执行 27.183 秒通过,此前两轮全套该项也通过。复审发现一次性篡改消费和并行成员历史同步的既有竞态风险,现有日志不足以确认本轮原因;已登记技术债,未将隔离通过记作全套通过。
  • bench 和依赖历史产物的升级包未进入上述测试范围;物理 Desktop/Mobile、切网/睡眠与已发布版本矩阵跳过。混合互通基线为第一切片提交 c2a09cb7,不是发布版本验收。

跨内容 Superseded 的既有迟到写入风险仍为独立技术债;同身份重启恢复的既有债务也未宣称全部关闭。

审查资料

提交依次拆为共同 trace helper 迁移、既有测试机械提取、观测关联修复和生产连接切换。

@coderabbitai

coderabbitai Bot commented Oct 11, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 10 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

⚙️ Run configuration
  • Configuration used: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 12cd5333-84ed-47d6-bda4-869d7def79e7

📥 Commits

Reviewing files that changed from the base of the PR and between c2a09cb and dcf2873.


⛔ Files ignored due to path filters (1)
  • docs/generated/observability-inventory.md is excluded by !**/generated/**

📒 Files selected for processing (66)
  • .config/nextest.toml
  • ARCHITECTURE.md
  • crates/uc-application/src/clipboard/sync/dispatch_entry/delivery.rs
  • crates/uc-application/src/clipboard/sync/dispatch_entry/mod.rs
  • crates/uc-application/src/clipboard/write/coordinator.rs
  • crates/uc-application/src/connectivity/acquisition.rs
  • crates/uc-application/src/connectivity/admission.rs
  • crates/uc-application/src/connectivity/backend.rs
  • crates/uc-application/src/connectivity/connection.rs
  • crates/uc-application/src/connectivity/error.rs
  • crates/uc-application/src/connectivity/manager.rs
  • crates/uc-application/src/connectivity/mod.rs
  • crates/uc-application/src/connectivity/stream.rs
  • crates/uc-application/src/connectivity/tests.rs
  • crates/uc-application/src/deps.rs
  • crates/uc-application/src/lib.rs
  • crates/uc-engine/src/assembly/observability/clipboard.rs
  • crates/uc-engine/src/assembly/sync_engine.rs
  • crates/uc-engine/src/runtime/dispatch.rs
  • crates/uc-engine/tests/space_membership_auto_pairing_e2e.rs
  • crates/uc-engine/tests/space_membership_auto_pairing_e2e/admission.rs
  • crates/uc-engine/tests/space_membership_auto_pairing_e2e/clipboard_connectivity.rs
  • crates/uc-engine/tests/space_membership_auto_pairing_e2e/clipboard_trace.rs
  • crates/uc-infra-p2p/src/network/clipboard/dispatch.rs
  • crates/uc-infra-p2p/src/network/clipboard/dispatch_tests.rs
  • crates/uc-infra-p2p/src/network/clipboard/mod.rs
  • crates/uc-infra-p2p/src/network/clipboard/receiver.rs
  • crates/uc-infra-p2p/src/network/clipboard/receiver_lifecycle_tests.rs
  • crates/uc-infra-p2p/src/network/clipboard/receiver_tests.rs
  • crates/uc-infra-p2p/src/network/clipboard/test_support.rs
  • crates/uc-infra-p2p/src/network/iroh/active_clipboard/dispatch_adapter.rs
  • crates/uc-infra-p2p/src/network/iroh/admitted_connections.rs
  • crates/uc-infra-p2p/src/network/iroh/clipboard_dispatch_adapter.rs
  • crates/uc-infra-p2p/src/network/iroh/clipboard_receiver_adapter.rs
  • crates/uc-infra-p2p/src/network/iroh/connectivity/admission.rs
  • crates/uc-infra-p2p/src/network/iroh/connectivity/backend.rs
  • crates/uc-infra-p2p/src/network/iroh/connectivity/clipboard_handler.rs
  • crates/uc-infra-p2p/src/network/iroh/connectivity/connection.rs
  • crates/uc-infra-p2p/src/network/iroh/connectivity/mod.rs
  • crates/uc-infra-p2p/src/network/iroh/connectivity/stream.rs
  • crates/uc-infra-p2p/src/network/iroh/mod.rs
  • crates/uc-infra-p2p/src/network/iroh/node.rs
  • crates/uc-infra-p2p/src/network/iroh/peer_reachability_adapter.rs
  • crates/uc-infra-p2p/src/network/iroh/protocol_router.rs
  • crates/uc-infra-p2p/src/network/iroh/transfer_progress_adapter.rs
  • crates/uc-infra-p2p/src/network/mod.rs
  • crates/uc-infra-p2p/src/network/trace_context.rs
  • crates/uc-infra-p2p/tests/clipboard_receive_diagnostic_file.rs
  • crates/uc-infra-p2p/tests/inbound_peer_rejection_diagnostics.rs
  • crates/uc-infra-p2p/tests/support/clipboard.rs
  • crates/uc-infra-profile/tests/inbound_peer_single_owner.rs
  • crates/uc-observability-contract/src/diagnostics/mod.rs
  • crates/uc-sync-protocol/src/clipboard.rs
  • docs/PLANS.md
  • docs/architecture/architecture-bible.md
  • docs/design-docs/clipboard-connectivity.md
  • docs/design-docs/index.md
  • docs/design-docs/observability.md
  • docs/exec-plans/completed/2026-10-11-clipboard-connectivity-plan.md
  • docs/exec-plans/completed/2026-10-11-clipboard-connectivity-review.md
  • docs/exec-plans/completed/2026-10-11-clipboard-connectivity-spec.md
  • docs/exec-plans/tech-debt-tracker.md
  • scripts/architecture/check-engine-repository.mjs
  • scripts/testing/connection-recovery-network.mjs
  • tests/hosts/connectivity/src/concurrent_send.rs
  • tests/hosts/connectivity/src/main.rs

  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@mkdir700
mkdir700 merged commit cc98720 into main Oct 11, 2026
7 of 8 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