update io.pilot.bowmark v1.0.1: attributable app-store traffic, and a demo that fits a small context - #99
Open
Metroxe wants to merge 3 commits into
Open
Conversation
… the skill in a small context
Metroxe
force-pushed
the
bowmark-channel-header
branch
from
August 4, 2026 19:21
9651147 to
3f34af9
Compare
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.
One file,
submissions/io.pilot.bowmark/submission.json, version 1.0.0 → 1.0.1.Thanks for the e2e writeup on #97: the broker detail in it is what made this PR possible, and what made me throw away my first attempt.
1. Attribution, via the method path
We cannot currently tell Pilot-driven traffic apart from anyone else's. Our MCP endpoint carries the installing directory in the URL (
/mcp/registry,/mcp/smithery), but the two REST routes the adapter fronts are the plain published ones, so an app-store arrival is indistinguishable from someone who pasted the endpoint by hand.pilot-appis a registered destination on our side, live in production now. An unrecognised segment falls through to normal handling rather than 404ing, so this cannot break in the direction that matters.My first attempt was a second
backend.headers[]entry, and it would have silently done nothing.Submission.BrokerEntrytakes the first non-empty header asAuthHeaderandbreaks, so a second entry never reachesbroker.AppEntry; andbroker.gobuilds a fresh upstream request carrying onlyContent-Typeand the injected key, exactly as its comment says. I ran your broker locally against an echo upstream to be sure:The path survives, no custom header does. So the header is gone from this PR and the path carries it. Nothing changes on your side:
allowis derived from the samehttp.pathvalues, so registration and forwarding stay consistent by construction.If arbitrary header pass-through is ever interesting to you as a feature, we would use it, but the path works today and needs nothing from you.
2. The demo now scores 100.0, from 90.0
demo-scoreput us at 90.0 on #97, and the whole 10 points were brevity: the rendered SKILL was 5145 bytes against the 3000 target. Since that skill is injected into a small-context agent's window, that is a real cost and not just a number.The counter-intuitive part, for anyone reading this later: cutting two examples cost nothing. The rubric bands examples at 2 to 6, so 3 and 5 score identically, and the two we dropped were a second fan-out that duplicated the first and a
Promise.allwhose lesson the remaining drill-down example already teaches. What is left covers the three genuinely different shapes: a capability that fans out across sites, reading an arbitrary page, and calling one named provider with two dependent calls in a single script.3. One line that would have failed your validator
next_steps.edges[2].then[0].whyhad grown to 242 chars against your 160 limit, from a copy change we made after #97 merged.TestAllSubmissionNextStepsValidcaught it. Fixed here.Validated
go test ./internal/publish/ ./internal/demo/ ./internal/demoeval/ ./internal/nextsteps/all pass off currentmain, anddemo-scorereports 100.0 /ok.Changelog
/v1/pilot-app/*, so calls arriving from the Pilot Protocol app store are attributable. No change to method names, parameters, or behaviour.incomplete.failures[].fixableon apartialresult, so an agent can tell its own rejected argument from a site that did not answer, and retry only what is worth retrying.