---
title: 源码架构与包边界
description: 理解共享契约、业务服务和 Harness 适配之间的关系。
lastVerified: 2026-09-23
---

# 6.6 源码架构与包边界

客户端表达用户操作，后端维护业务状态，Harness 适配执行模型与工具，共享契约连接这些层。

```text
React 工作界面
      │ 共享契约
Harness / RPC 适配 ── DSH 模型、会话和工具
      │
业务服务 ── PostgreSQL
      │
资源、任务、同事、群与自动化
```

## 代码放在哪

| 包 | 职责 |
| --- | --- |
| `packages/contract` | 共享类型、数据格式与校验 |
| `packages/backend` | 持久化、业务规则、事务与幂等 |
| `packages/harness-dsh` | DSH 接入、RPC、执行与授权检查 |
| `packages/client/ui-workbench` | React 产品界面及交互状态 |
| `packages/client/ui-kit` | 共用界面能力 |
| `packages/bundle` | 插件组合与预设 |
| `packages/mcp-reference` | 最小只读资料服务 |

## 修改一个跨包字段

先修改契约和默认值，再检查后端存储、适配层解析、客户端读取和测试夹具。精确键集解析器可能拒绝新字段；只改类型并不能证明运行期兼容。

对新增任务状态、计划来源或资料引用，应有至少一条真实数据库与宿主的集成用例，覆盖从创建到展示的整条路径。

## 依赖方向

不要让纯契约依赖数据库或 UI。业务服务不直接操纵浏览器组件；客户端也不绕过适配层直接改库。新的 Harness 可以沿清晰边界设计，但当前公开教程只针对已实现的 DSH 适配。
