架构:Desired 没有 endpoint,Hermes sync 复制不了 base_url
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 0
- Forks
- 0
- Avg merge
- 10m
- Merged PRs (30d)
- 12
Description
现状
#33 让 Hermes 拒绝不存在的 provider(写入与观察一致)。但 model.Desired 只有 model / provider / secretRef,Snapshot 只有 baseUrlHost(hostname,不是完整 URL)。
sync --fields provider 因此只能改 provider 名,不能把源 home 的 providers.<id>.base_url 写到目标。mba/box 上同一个 custom provider 指向不同网关时,sync 之后观察层 host 仍是旧的。
为何值得单独跟
这不是 adapter 小修补:要在 Desired / apply / diff / sync 加 endpoint 字段,并决定明文 URL 是否进 -f 文档。Hermes 是最明显的缺口;OpenCode / Codex custom provider 有同样的字段缺口。
建议改动
Desired增加可选baseUrl(或等价字段)- Hermes
WriteFields在 provider 已存在时写入该 provider 的base_url/api - Snapshot 继续只暴露 host;完整 URL 只走写路径
sync从源 adapter 读出完整 endpoint 填进 Desired(不要只抄 host)
不在范围
- 不把完整 URL 打进 doctor/get 人表(继续 host)
- 不改 secret 同步
describe -o wide、droidreasoningEffort、cursor probe hang 另说
发现自 #33 E2E swarm 的刻意未做 gap。
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing model.Desired and Snapshot through apply, diff, and sync, then inspect the Hermes WriteFields path and the source adapters. Verify how an optional complete endpoint can flow through Desired without changing Snapshot's host-only output. Done means sync can copy the source provider's base URL or api to an existing target provider while secrets and human-facing host displays remain unchanged.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- tooling
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100