Hash the root connector URL for ui.domain - #175
Merged
Conversation
The 2026-08-20 Desktop test after the Skybridge-parity merge moved the failure one step forward: mcp-ext-apps-host now engages and logs 'ui.domain validation failed for connector "https://cloud-finops-skills-590a051d.alpic.live/"' - the ROOT url with its trailing slash, while UI_DOMAIN hashed '/mcp'. Skybridge, whose connectors render, hashes https://<host><request-pathname> per request, which for a root-entered connector is exactly the root-with-slash form. Alpic serves the MCP at the root as well as /mcp (verified by a live initialize), so: hash the root form, document the root form as THE connector URL in README and INSTALLATION.md (a variant connects fine but silently disables widget rendering), and correct the wrong 'no trailing slash' note in the CLAUDE.md lesson.
OptimNow
added a commit
that referenced
this pull request
Aug 20, 2026
OptimNow
added a commit
that referenced
this pull request
Aug 20, 2026
…s) (#172) * Add the coverage heat map to the README scripts/render-coverage-heatmap.py renders the waste-playbook coverage (category x provider) as assets/playbook-coverage.svg - OptimNow-accent intensity ramp, dashed cells for the known gaps, footer pointing at the public backlog in docs/ROADMAP.md. Embedded in README.md so users see the coverage shape, gaps included, before installing: publishing the holes deliberately is cheaper than users discovering them by empty query. Same CI discipline as the markdown matrix (--check fails on drift); the new-playbook checklist item now regenerates both. * Add the FCP capability heat map and reframe coverage as three surfaces scripts/render-fcp-heatmap.py renders the 22 FinOps Framework capabilities from the committed fcp-coverage.md (primary / secondary-only / deferred gap) as assets/fcp-coverage.svg, CI-gated like the playbook map. The README coverage section now presents both maps and names the third, behavioural surface (the maintainer-side probe battery), because a field test showed the playbook map alone reads as the skill's whole coverage - it is only the runbook catalogue. The playbook SVG title and footer now say so too. CLAUDE.md: record the 2026-08-20 Desktop render test - valid ui.domain, tool called, no validation error, still no widget - closing the question left open on 2026-08-19: ui.domain is necessary but not sufficient, the Connectors Directory review remains the gate. * Fix invalid XML in the FCP heat map and correct the MCP Apps conclusion The FCP domain names contain '&' (Understand Usage & Cost) and the SVG text nodes were not XML-escaped, so the committed fcp-coverage.svg failed to parse in any renderer. Escape domain, capability and note strings. CLAUDE.md: same-day evidence overturned the earlier conclusion - the Skybridge-built companion connectors render their widgets in Claude as plain custom connectors, so the gate is implementation shape, not the Connectors Directory. Record the three Skybridge deltas to mirror. * Bring the MCP Apps lesson up to date with PRs #174/#175
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.
Follow-up to #174, which moved the widget failure one step forward:
mcp-ext-apps-hostnow engages for this connector and logsThe host sees the connector as the root URL with its trailing slash, while
UI_DOMAINhashed the/mcpform. Skybridge (whose connectors render) computes the hash fromhttps://<host><request-pathname>per request - for a root-entered connector that is exactly the root-with-slash form.Changes:
CANONICAL_CONNECTOR_URLis now the root form with trailing slash;UI_DOMAINfollows (1ec24d63...claudemcpcontent.com).claude mcp addsnippet, with a warning that a variant form connects fine but silently disables widget rendering (Alpic serves the MCP at the root - verified live).server.jsonstill carries/mcp; moving it to the root form can ride the next release PR (registry-validated field).Test sequence after merge: Alpic redeploy, remove + re-add the connector at exactly
https://cloud-finops-skills-590a051d.alpic.live/, then "Show me the idle waste playbooks" on Desktop.