Repository navigation
Conversation
…uccess (PX-10 Wave 0) /start, the /onboard/wizard review step and /setup/agent registered the user's machine with a placeholder adapter (onto the shared dev kernel on /start and /setup/agent), then reported success whatever the gateway answered: "You're live" (QA #31), an "offline success" with an invented device id (QA #32), and a test result built from the HTTP status with a made-up duration. The wizard steps also showed invented data as the user's: a random string as each document's sha256, a timed fake AI analysis, read-only example space and pricing values, a network average that one click applied to the user's price, and example certifications. Per product-steward #2386/#2561 and shell #2544, these pages now register nothing. They say "Nothing was registered" and hand what the user typed to /onboard/chat (decision D3): a copyable draft, plus router state (onboardDraft) the chat page can read later. Details: - StartPage: no network call; "Go live" is "Continue"; the last step is "Not live yet" with the hand-off. The false "visible to anyone" and "no platform fees" copy is gone (the protocol charges 2.35%). - Step7_Review: review, then the hand-off; no registration or test job. - SetupAgentPage: a confirmed configuration goes to the hand-off; the fake test-result and "Setup Complete!" renderers are removed. - Step2: the real SHA-256 of the bytes via WebCrypto (or none); documents are listed as not analyzed. - Step4: says space is not collected yet and saves nothing; validation no longer requires it. - Step5: editable, empty pricing; no invented market rate or ROI chart; validation needs a positive base price the user typed. - Step6: adds no example certifications. - SetupWizardPage: a failed or unreachable /setup/validate no longer marks setup complete, and the copy no longer claims an ERC-8004 registration. Tests: dashboard 270 passed (5 new files, 50 tests); tsc --noEmit clean. 10 mutants (reverting each behaviour) all fail the new tests. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PkeiQMnVePeBGU9svhREFy
This branch has not been deployed
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.
What
PX-10 Wave 0. This answers product-steward #2386 and #2561, product-qa #31 and #32 (both P1), and shell #2544.
The onboarding pages that cannot register a machine now register nothing and claim no success. Each one says "Nothing was registered" and hands what the user typed to the canonical entry,
/onboard/chat(decision D3).Before and after, per page
ac86a404)/start(public)kernel_dev_001with amockorgeneric-httpadapter. Never read the response, then showed "You're live … is on the network", even after a 401 (QA #31)./onboard/wizardStep 7adapterType: 'mock'three times, onto a kernel that didn't exist. A network error became an "offline success" with an invented device id (QA #32)./setup/agentkernel_dev_001+mock. Then showed a test result built from the HTTP status withduration: 1234, or "what the results would look like", and "Setup Complete! … added to the PCC network".sha256:${Math.random()…}as each document's hash; a 2.5 s pretend AI analysis; the same invented specs for every file./setup, identity step/setup/validatestill marked setup complete. The copy claimed an ERC-8004 identity registration.The
/startrate step also loses two claims. "Your rate is visible to anyone searching" is false once nothing registers. "You keep 100% — no platform fees" contradicts the 2.35% protocol fee (FYI launch, D0).The hand-off
lib/onboard-handoff.tsbuilds a plain-text draft from only what the user entered. Empty fields are left out; defaults and example data never appear.components/onboard/OnboardHandoffPanel.tsxshows:/onboard/chatwhose router state carries the draft underonboardDraft.Not in this PR
/setupstill ends at "Setup Complete". That surface retires in PX-10./onboard/chatreadingonboardDraft, which is shell's call.Tests
tsc --noEmitis clean.onboard-handoff: the draft keeps only entered values;file-sha256: FIPS "abc" and empty-input vectors; null, never a fake value, without WebCrypto;OnboardHandoffPanel.render: static render. It says nothing was registered, links to/onboard/chat, and claims no success;wizard-draft: the draft, pricing input, and store validation;onboarding-wave0: the source is read as text with comments stripped. No registration or test-job endpoint and no mock or dev-kernel patterns on the three surfaces. No false-success copy. No mock data orMath.randomin Steps 2, 4, 5 and 6./setupdoes not complete on an invalid or unreachable validation.Merging with shell's #368 (N50)
There is one expected conflict, in
SetupAgentPage.tsx, and it is trivial. #368 moves this page toauthorizedFetch, including the register-device call this PR deletes.I checked the resolution locally: the merged tree gives 314 passed and
tscis clean. Whichever PR merges second applies it:SetupAgentPage.tsximports: keepauthorizedFetch(fix(dashboard): N50 — /setup and /setup/agent never send the API key to localhost:3200 #368) and this PR'sOnboardHandoffPanelandmachineConfigDraftimports.getAuthHeadersis no longer used.SetupAgentPage.tsxbody: take this PR'smachine_config_previewbranch. It has no register-device call.no-direct-auth-headers.test.ts: remove"pages/StartPage.tsx"fromKNOWN. StartPage no longer builds an auth header, and that shrink-only ratchet says so.setup-key-origin.test.tsx: check only/api/ai/identify-machine. Addexpect(calls.some((c) => c.url.endsWith("/api/setup/register-device"))).toBe(false).#354 merges cleanly.
Shell's no-prod-mock ratchet (#2544): when this lands, remove the known-offender entries for StartPage, Step7_Review, SetupAgentPage and Steps 2, 4, 5 and 6.
Review
Shell offered to review (#2544). Product-steward owns the dispositions.
🤖 Generated with Claude Code
https://claude.ai/code/session_01PkeiQMnVePeBGU9svhREFy