fix(connect): name the checked config paths on "No config found" rows - #949
Merged
Merged
Conversation
A user whose ~/.config/opencode/opencode.jsonc exists saw only "No config found" in the Connect Client form and could not tell which file mcpproxy had looked for (their core predated the #923 jsonc fix). Make the verdict explicit instead of a mystery: - ClientStatus gains additive checked_paths: every config location the existence check consults, highest precedence first (both opencode.jsonc and opencode.json for OpenCode; the single config_path elsewhere). - The macOS form renders it as a "Looked for ... in ..." note on supported, unconnected rows without a config, home-abbreviated. An explicit core note or denied-remediation still outranks it, and a core older than the app falls back to naming config_path.
Deploying mcpproxy-docs with
|
| Latest commit: |
f1f2dc3
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://1e9dd49a.mcpproxy-docs.pages.dev |
| Branch Preview URL: | https://fix-connect-form-show-checke.mcpproxy-docs.pages.dev |
|
Codecov Report❌ Patch coverage is
📢 Thoughts on this report? Let us know! |
…e, note channel Adversarial review (panel + opencode cross-model) found four genuine defects: - opencodeConfigCandidates joined an empty homeDir into CWD-relative paths. Every production Service is built without a homeDir (NewService), so the #923 jsonc preference — and the new checked_paths — silently degraded to stats against the working directory. Empty now resolves via os.UserHomeDir, like ConfigPath. - A permission-blocked aggregate row (access_state=denied, no remediation) fell through to the looked-for note, claiming files were checked when the stat was forbidden. The gate now allows only absent/unknown/nil. - The looked-for hint rendered in the orange warning channel on every not-installed row; it is informational and now renders secondary (ClientRow.noteIsWarning), and the row accessibility label includes the note so VoiceOver announces it. - The home-abbreviation branch had zero coverage (fixtures used /Users/x); new tests exercise real-home tilde abbreviation and the denied gate.
Member
Author
|
Cross-model + adversarial review round 1 (codex quota-blocked; used opencode/gpt-5.6-sol + refute-verify panel) surfaced four genuine defects, fixed in f1f2dc3:
|
📦 Build ArtifactsWorkflow Run: View Run Available Artifacts
How to DownloadOption 1: GitHub Web UI (easiest)
Option 2: GitHub CLI gh run download 30796094892 --repo smart-mcp-proxy/mcpproxy-go
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
On a laptop running stable mcpproxy (≤ v0.52.1), the Connect Client form showed "No config found" for OpenCode even though
~/.config/opencode/opencode.jsoncexists. Two separate issues:.jsoncsupport (connect opencode fails: OpenCode bootstraps opencode.jsonc, mcpproxy only recognizes opencode.json #922, fixed by fix(connect): recognize OpenCode's opencode.jsonc global config #923) has only shipped inv0.53.0-rc.*prereleases — stable builds only checkopencode.json. Upgrading resolves the detection itself.Changes
ClientStatusgains an additivechecked_pathsfield — every config location the existence check consults, highest precedence first. For OpenCode that is bothopencode.jsoncandopencode.json; for other clients the singleconfig_path. Populated on both the stat-only aggregate (GET /api/v1/connect) and the per-client detail. Static path list, no extra stats/reads — the content-read-free contract (Spec 075) is untouched.Looked for opencode.jsonc or opencode.json in ~/.config/opencodenote (home-abbreviated). A denied-access remediation or an explicit core note still outranks it. Against a core older than the app, it falls back to namingconfig_path.config_pathper row; only the hand-writtenClientStatustype gained the new optional field.Tests
checked_paths_test.go— aggregate + detail carry the candidates,.jsoncfirst; single-file clients report exactly one path.go test -race ./internal/connect/..., strict golangci-lint v2, and./scripts/test-api-e2e.shall pass.swift testsuite passes.