Skip to content

Launch readiness: brand, the live demo, and a refusal that was wrong - #6

Merged
charlespers merged 1 commit into
mainfrom
charles-launch-readme
Aug 27, 2026
Merged

Launch readiness: brand, the live demo, and a refusal that was wrong#6
charlespers merged 1 commit into
mainfrom
charles-launch-readme

Conversation

@charlespers

Copy link
Copy Markdown
Contributor

Three changes ahead of today's SDK launch.

1. The prompt refusal denied a door that exists

fromOpenRouter / from_openrouter refused OpenRouter's legacy prompt field with "the legacy text-completion prompt field has no Conifer door".

Measured against api.conifer.build today:

POST /v1/completions  {"model":"claude-haiku-4-5","prompt":"say OK"}  -> 200
POST /v1/completions  {"model":"gpt-5.6-luna","prompt":"say OK"}     -> 200, x-conifer-cost-nanousd: 6400

The door exists, bills, and returns the full receipt header set. Only streaming is refused there, and it names /v1/chat/completions when it does. conifer.build already documented this correctly (setup/drop-in), so the SDK was the single surface telling a migrating caller the opposite — the exact failure mode the portability card exists to prevent, pointed the other way.

The shim still throws, because it converts to the chat wire and this client does not drive that door. But the message now names the door and the streaming caveat instead of denying it.

2. The README opens with the brand and the product working

  • The Conifer mark, theme-aware via <picture> (transparent-alpha PNG already served from conifer.build).
  • The router demo that is live on the landing page, as a clickable still.

GitHub sanitizes <video> with a remote src, so a poster-and-link is the form that actually renders — and the same markup works on npm and PyPI, which is why the still is committed and referenced by absolute raw URL.

The still is frame 14s, not the shipped poster. The poster is the opening frame: an almost-empty terminal that shows none of the routing. 14s shows the router panel resolving to kimi-k3 and the 3s answer, which is the claim being made. Every timing in the copy (3s, 1m 7s, 50s runtime) was checked against the frames.

3. Cut the passages that read as internal notes

  • A ten-line essay on macOS CA trust stores sat between the API key and the first code sample. Now one sentence and a link, with the reasoning in its own ## Python and TLS section — where someone hitting CERTIFICATE_VERIFY_FAILED will actually look.
  • Two sections opened with the same "offline tests can only confirm what we already believed" line and then listed the same defects. Merged.
  • The README closed on a five-item bug diary from an internal QA pass, in the position where a reader decides whether to install. The point that the live gate finds real defects survives in one sentence; the post-mortem is not product docs.
  • npm test says 162; the README said 145.

3835 -> 3619 words, no claim removed.

Gate

From this clone: npm test 162 pass, pytest 105 pass, typecheck and build clean. npm run qa:live 20/20 green against api.conifer.build.

The tree here is byte-identical to git subtree split --prefix=sdk of the workspace repo at bcf89ef.

Three changes, ahead of the SDK launch.

1. THE PROMPT REFUSAL DENIED A DOOR THAT EXISTS. fromOpenRouter refused
   OpenRouter's legacy `prompt` field saying it 'has no Conifer door'. Measured
   against api.conifer.build today, POST /v1/completions answers 200, bills, and
   returns the full receipt header set, on both a Claude and a GPT seat. Only
   streaming is refused there, naming /v1/chat/completions. conifer.build already
   documented this correctly, so the SDK was the one surface telling a migrating
   caller the opposite. The shim still throws (it converts to the CHAT wire and
   this client does not drive that door) but now names the door instead of
   denying it.

2. THE README OPENS WITH THE BRAND AND THE PRODUCT WORKING. The Conifer mark,
   theme-aware via <picture>, and the router demo that is live on the landing
   page as a clickable still. GitHub sanitizes <video> with a remote src, so a
   poster-and-link is the form that actually renders, and the same markup works
   on npm and PyPI. The still is frame 14s rather than the shipped poster: the
   poster is the opening frame, an almost-empty terminal that shows none of the
   routing, while 14s shows the router panel resolving to kimi-k3 and the 3s
   answer. Every timing in the copy was checked against the frames.

3. CUT THE PASSAGES THAT READ AS INTERNAL NOTES. A ten-line essay on macOS CA
   trust stores sat between the API key and the first code sample; it is now one
   sentence and a link, with the reasoning in its own section where someone
   hitting CERTIFICATE_VERIFY_FAILED will look. Two sections opened with the same
   'offline tests can only confirm what we already believed' line and listed the
   same defects, now merged. The README closed on a five-item bug diary in the
   position where a reader decides whether to install; the point that the live
   gate finds real defects survives in one sentence. 3835 -> 3619 words, no
   claim removed. Also: npm test says 162, the README said 145.

Gate, from this clone: npm test 162 pass, pytest 105 pass, typecheck and build
clean. The live QA harness ran 20/20 green against api.conifer.build.
@charlespers
charlespers merged commit a14abac into main Aug 27, 2026
8 checks passed
@charlespers
charlespers deleted the charles-launch-readme branch August 27, 2026 16:41
@greptile-apps

greptile-apps Bot commented Aug 27, 2026

Copy link
Copy Markdown

Greptile Summary

The PR refreshes the launch-facing README and corrects the OpenRouter prompt refusal so it accurately identifies the gateway’s non-streaming completions endpoint.

  • Adds branded README media, navigation, and a live router demonstration.
  • Consolidates TLS, testing, and live-gateway documentation.
  • Aligns the TypeScript, Python, and portability-card refusal text for legacy completion prompts.

Confidence Score: 5/5

The PR appears safe to merge, with no concrete changed-code defect identified.

The executable changes only revise an existing portability error message, consistently across both SDKs and their contract, while the documentation and media changes align with the described launch behavior.

Important Files Changed

Filename Overview
README.md Reorganizes launch documentation, adds branded demo media, and consolidates installation and live-verification guidance without an identified actionable defect.
cards/portability.card.json Corrects the migration contract to distinguish the gateway’s supported completions endpoint from the chat-only portability shim.
src/portability/openrouter.ts Updates the TypeScript prompt refusal guidance while preserving the existing refusal behavior.
python/conifer_sdk/portability.py Mirrors the corrected prompt refusal guidance in the Python shim.
docs/media/router-demo.jpg Adds the still image referenced by the README’s router demonstration.

Reviews (1): Last reviewed commit: "Launch readiness: brand, the live demo, ..." | Re-trigger Greptile

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant