Skip to content

Remote Host integration: CommandRuntime, Session/Message mapping, Presentation, and wire profile` #4

Description

@Blank-not-black

背景

我们正在维护一个独立的 dsh-remote-std 参考适配项目,将 DSH Remote 的插件能力逐步迁移到 dsh-std。当前已经验证了 Community v0.15 dsh-plugin.json、Host Facet、Lifecycle,以及 commands.dsh/v1alpha1 的最小接入。

项目地址:https://github.com/Blank-not-black/dsh-Remote-std

我们希望优先使用 dsh-std 中已经明确的协议接口;对于尚未覆盖的能力保留产品实现,不在本地发明新的协议字段或远程封帧规则。

希望确认或补充的接口

1. Remote consumer 如何使用 CommandRuntime

adapter-dsh 已经提供 CommandRuntime 和 session-scoped command 执行入口,但标准客户端在远程 Host 中如何获得 transport-neutral 的 typed client、如何传递 session identity 和 presentation agreement,目前缺少完整的推荐示例。

我们希望确认:

  • CommandRuntime 的远程 consumer 入口是否由 connection 承载;
  • contextId、session identity 和 invocation identity 的推荐映射;
  • 标准命令在传统 DSH ctx.commands 与标准 Facet 之间的渐进迁移方式。

2. Session / Message 的 DSH 事件映射

Remote 当前同时承载 mux 和 host 两类下行事件。希望有一份推荐映射,明确:

  • 哪些事件应进入 session.dsh/v1alpha1
  • 哪些事件应进入 messages.dsh/v1alpha1
  • privacyClassscopesequencereplay 和未知事件如何处理;
  • 网关重连、基线重放和事件游标是否属于协议层语义。

3. Presentation 跨端点调用

审批、提问、选择和取消操作需要绑定到一次 invocation,而不是长期注册。希望明确标准 adapter/connection 对远程 Presentation client 的推荐实现,尤其是:

  • invocation-scoped agreement 如何传递;
  • 断线、取消、超时和重复响应如何处理;
  • Presentation 操作是否应该单独定义 wire profile。

4. Connection wire profile

Remote 场景需要认证绑定、重连、流控、封帧、序列化和关闭语义。当前 connection 文档将这些内容列为尚未标准化的部分。

希望确认这些内容后续应归入:

  • @dsh-std/connection 的正式 wire profile;
  • 独立的 carrier profile;
  • 或另一个 Remote/Transport RFC。

我们希望避免每个 Host 都各自发明一套不兼容的远程 wire protocol。

5. Legacy DSH plugin migration

希望有一个推荐的渐进迁移模式,说明同时拥有传统 DSH apply(ctx) 和标准 facets.host.entry 的插件应该如何:

  • 声明 optional contract;
  • 在 adapter 不存在时保持 legacy fallback;
  • 在标准能力可用后切换为标准路径;
  • 最终安全移除传统入口。

我们可以提供的验证

我们可以为上述接口提供真实的移动端/网关场景 fixture,包括:

  • 文本、图片、文件和会话事件;
  • 审批、提问、取消和断线恢复;
  • mux/host 双流、游标和基线重放;
  • DSH 重启、网关重启和客户端恢复。

如果其中某些方向已经有对应 proposal 或正在实现,也请指向相应文档;我们会优先按现有方向适配并回传测试结果。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions