Add /publish — app-store submission wizard#33
Merged
Conversation
The publish UI now lives in the website (Nav + Footer), a multi-step wizard
that POSTs to the submission API on the VM (CORS-locked to the website origin):
- io.pilot. prefix enforced; backend page explains ${TOKEN} secret placeholders;
- methods as multi-row cards with field headers, info tooltips, a structured
params builder, required latency + reference (fast<5s/med<=15s/slow<=1m),
per-method description, and a LIVE help + pilotctl preview (POST /api/preview);
- split Listing (store fields + app description + requires-binary + URL) and
Vendor (vendor + 'how agents use this' + 'capabilities') pages; review table.
API base via PUBLIC_PUBLISH_API (.env, gitignored).
|
🚀 Preview deployed to Cloudflare Pages
|
…d DOM) The wizard DOM is built client-side via innerHTML, so Astro's component-scoped <style> (which only tags build-time markup) never matched it — the page looked unstyled. Make the block is:global and namespace every rule under #publish so it applies to the runtime DOM without leaking into the rest of the site.
…form - stepper now lays out on a single line (was wrapping 'Review' under step 1). - the form is forced LIGHT + larger and fills the screen (the site defaults to a dark theme, which made the form unreadable); bigger type, wider 1060px layout. - split the presentation from the form: /publish is an intro (hero + bulleted requirements/disclaimers + how-it-works + 'Publish your app now' button); the button opens the big form view; 'Back to overview' returns. No internal details.
- copy now refers to your 'app' throughout (lede, requirements, how-it-works,
backend explainer, placeholders); example secret renamed ${WEATHER_TOKEN}.
- the io.pilot. prefix + 'installs as' no longer use the monospace font; they
match the rest of the form (Inter Tight).
…methods - all green buttons (Next, Submit, 'Publish your app now') now match the site's primary button (the cookie Accept): mono, uppercase, accent, same font. - form state persists across reloads (view + step saved to localStorage); you no longer get bounced to the intro and lose your place. - 'Your app installs as io.pilot.' chip: forced light bg + dark text so it's readable on the light form (the global code style was theme-dependent/dark). - methods card tidied: aligned 4-col header (name/verb/path/latency), latency reference line, full-width description, a divider, and an aligned params table.
- new Email step (step 1/7): collect email → send code → verify, calling /api/email/start + /api/email/verify; advances on success - segmented 6-digit OTP input (auto-advance, paste-to-fill, backspace, auto-submit on the 6th digit), code auto-fills in dev/placeholder mode - submission carries email + verify_token; vendor contact = the verified email - wizard steps keyed by name (not index) so ordering is robust - move the latency reference text into the Latency tooltip - fix Back/Next scroll reset; persist the verify token across reloads
…lish - Email step now just collects the publisher email (no verification code) — the backend no longer gates submit on a verified token - Backend step: app-type choice — HTTP API (available) vs CLI/binary (coming soon) - remove the now-redundant "ships a binary" listing field - app-store page: replace the two "Install Pilot" CTAs with "Publish your app" → /publish
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.
The publish UI moves into the website (Nav + Footer): a multi-step wizard that POSTs to the submission API on the VM (CORS-locked to the website origin).
${TOKEN}secret placeholder.help+pilotctlpreview (POST /api/preview).PUBLIC_PUBLISH_API(.env, gitignored). Admin dashboard stays on the VM.Verified locally: website :4321 → API :8098 (CORS allowed); live preview + submit → case created.