From fb02b165d75183f8c982515922eda12add874d56 Mon Sep 17 00:00:00 2001 From: Lukasz Raczylo Date: Sat, 23 May 2026 21:13:16 +0100 Subject: [PATCH] feat: URL-derived provider keys (hs-) + dedup providers sharing same gateway URL MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - GatewayProviderKey() derives stable key from gateway URL hostname e.g. https://llmgw.h.raczylo.com/v1 → hs-llmgw-h-raczylo-com - AbsorbDuplicateProviders() merges providers sharing the same baseURL into our canonical entry; user-crafted model metadata wins for overlaps - kilo: renders to opencode.jsonc (primary config), deep-merges providers, deletes enabled_providers filter that was hiding our gateway - opencode: absorbs duplicate providers from existing config - All adapters use GatewayProviderKey() instead of hardcoded string - Fix goose URL doubling (was /v1/v1/chat/completions → /chat/completions) - Fix token propagation: api_key written directly (not env var ref) - Zed: adds prompt_cache_key capability, deletes context_servers key to avoid ContextServerSettingsContent serde untagged-enum parse error --- README.md | 2 +- docs/CNAME | 2 +- docs/index.html | 10 +++ internal/adapter/common/blocks.go | 40 +++++++++--- internal/adapter/common/common_test.go | 2 +- internal/adapter/common/dedup.go | 69 +++++++++++++++++++++ internal/adapters/cagent/cagent.go | 10 ++- internal/adapters/cagent/cagent_test.go | 12 ++-- internal/adapters/crush/crush_test.go | 8 +-- internal/adapters/goose/goose_test.go | 6 +- internal/adapters/kilo/kilo.go | 16 +++-- internal/adapters/kilo/kilo_test.go | 18 +++--- internal/adapters/opencode/opencode.go | 22 ++++++- internal/adapters/opencode/opencode_test.go | 6 +- internal/adapters/zed/zed.go | 4 +- internal/adapters/zed/zed_test.go | 10 +-- 16 files changed, 180 insertions(+), 57 deletions(-) create mode 100644 internal/adapter/common/dedup.go diff --git a/README.md b/README.md index 4d05aa3..4581cff 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@

- harness-sync — one config, every harness + harness-sync — one config, every harness

diff --git a/docs/CNAME b/docs/CNAME index 0ae8f84..8f79d57 100644 --- a/docs/CNAME +++ b/docs/CNAME @@ -1 +1 @@ -harness-sync.raczylo.com \ No newline at end of file +harness-sync.raczylo.com diff --git a/docs/index.html b/docs/index.html index d4b6223..f827088 100644 --- a/docs/index.html +++ b/docs/index.html @@ -8,6 +8,16 @@ name="description" content="One canonical source of truth for skills, agents, MCP servers, LLM endpoints, and global instructions across every LLM harness on your machine." /> + + + + + + + + + +