feat(osi): 实现 OSI JSON 传输层(T-003)

This commit is contained in:
ila
2026-07-06 22:23:01 +08:00
parent 4a5134093b
commit 56acc01d92
8 changed files with 220 additions and 10 deletions
+9 -7
View File
@@ -6,11 +6,11 @@
## 当前快照
- 日期:2026-07-06
- 阶段:**Phase 0 进行中**;T-001/T-002 已完成,Go module、CLI/config 骨架与 MD5 签名已建立
- 技术栈:Go 1.24 单二进制;`main.go -mode server|deliver`;配置读取使用 viper
- 生产代码:已有 `main.go`、`config/`、`osi/sign.go`、`go.mod`/`go.sum`;`contract/ mapping/ pipeline/` 等业务目录仍待后续任务建立
- 阶段:**Phase 0 进行中**;T-001/T-002/T-003 已完成,Go module、CLI/config 骨架、MD5 签名与 OSI 传输层已建立
- 技术栈:Go 1.24 单二进制;`main.go -mode server|deliver`;配置读取使用 viper;OSI 传输支持超时和可选 SOCKS5 代理
- 生产代码:已有 `main.go`、`config/`、`osi/sign.go`、`osi/transport.go`、`go.mod`/`go.sum`;`contract/ mapping/ pipeline/` 等业务目录仍待后续任务建立
- 联调现实:**JKDA00002 个人档案查询已用 Python 脚本打通真实沙箱**(`code="01"`),实测契约沉淀在 `docs/04 §8`
- 测试:`go test ./...` 通过;当前测试覆盖 mode 解析、`config.yaml.example` 加载、MD5 签名和头部组装
- 测试:`go test ./...` 通过;当前测试覆盖 mode 解析、`config.yaml.example` 加载、MD5 签名、请求头组装、JSON POST 传输、超时配置和 SOCKS5 代理地址校验
- 标准启动路径:`./init.sh`(需要 bash/WSL 环境;当前 Windows 环境未安装 WSL,直接运行会失败)
- 标准验证路径:`go test ./...`、`go build ./...`
- 当前 blocker:无硬 blocker。软阻塞:厂家侧 B1/B2/B4/B5 契约缺口(见 `docs/06`),只影响阶段 4,不阻塞阶段 0~3
@@ -22,8 +22,9 @@
| `main.go` | 已有 | 单入口,解析 `-mode server|deliver` 与 `-config` |
| `config/` | 已有 | viper 配置加载,含最小单测 |
| `osi/sign.go` | 已有 | OSI 请求头 MD5 签名与 headers 组装 |
| `osi/transport.go` | 已有 | JSON POST 传输层;支持超时与可选 SOCKS5;不带 cookiejar/网页拟态头 |
| `config.yaml.example` | 已有 | 占位配置,不含真实凭据 |
| `go.mod` `go.sum` | 已有 | module `chis_osi`,依赖 viper |
| `go.mod` `go.sum` | 已有 | module `chis_osi`,依赖 viper 与 `golang.org/x/net/proxy` |
| `docs/` | 已有 | 设计文档集 01~06 + 本快照;`账号.txt` 本地留存不入库 |
| `tasks.md` `progress.md` | 已有 | 任务看板 / 执行流水(根目录) |
| `scripts/` | 已有·不入库 | Python 联调脚本(硬编码真实凭据与身份证,勿提交) |
@@ -37,6 +38,7 @@
- 成功码:字符串 `"01"`(判定按去前导零 == `"1"`),见 `docs/01 §1`。
- 机构码分层:请求头 `orgCode`=18 位统信码 ≠ `manaUnitId`=9 位机构码 ≠ 12 位区划码,见 `docs/01 §3`。
- `deviceSN` 查询可空。
- OSI 代理语义:`socks5_proxy` 非空即只对 OSI 客户端走 SOCKS5,不做直连回退。
## 当前可运行内容
@@ -57,8 +59,8 @@ python3 scripts/query_health_record.py
## 下一步
1. T-003:`osi/transport.go` 传输层骨架,保留 SOCKS5/超时。
2. T-004:`osi/client.go` + `contract/envelope.go` + `osi/codes.go`。
1. T-004:`osi/client.go` `Call` + `osi/codes.go` + `contract/envelope.go`。
2. T-201:查询响应契约结构体(T-004 后)。
## 维护规则