Direct Idea Launch Verification

This proof page verifies the new direct idea -> company launch UI on the current branch against the live API. The browser capture was taken from the local build of the new frontend, using the repo smoke account, so the screenshots show the actual new Launch company button and the transition attempt.

Frontend Under Test
Local branch build on 127.0.0.1:4173
Backend Under Test
https://api.msx.dev
Observed Result
No transition to /app/companies/:agentId
Verification finding The new frontend wiring is present and the CTA is clickable, but the current API does not complete the handoff. The launch attempt stops on the idea page because the launch-draft message step returns 409 launch_draft_message_limit.

Video

This recording shows the exact transition attempt: login, load the idea page, click Launch company, briefly enter the launching state, and then surface the blocking API error.

Screen Transitions

Login gate
Step 1
Login gate

The local build redirects to login so the account can open the authenticated market idea route directly.

http://127.0.0.1:4173/login?next=/app/market/ideas/20260414T124612Z--elevenlabs-voice-assets-have-expiry-and-export-lock-in--idea-1
Idea detail with launch CTA
Step 2
Idea detail with direct launch CTA

After sign-in, the new idea page loads and exposes Launch company as the primary action next to Copy prompt.

http://127.0.0.1:4173/app/market/ideas/20260414T124612Z--elevenlabs-voice-assets-have-expiry-and-export-lock-in--idea-1
Launch attempt pending
Step 3
Launch attempt in progress

Clicking the button does trigger the new mutation path. The UI enters the pending state before the API response comes back.

http://127.0.0.1:4173/app/market/ideas/20260414T124612Z--elevenlabs-voice-assets-have-expiry-and-export-lock-in--idea-1
Launch attempt blocked by API
Step 4
API stop point

The user never reaches the company page. The UI remains on the idea route and surfaces the backend conflict instead.

http://127.0.0.1:4173/app/market/ideas/20260414T124612Z--elevenlabs-voice-assets-have-expiry-and-export-lock-in--idea-1

What The API Returned

This is the exact response captured from the button click. The failing request is the draft message POST that should lock the idea before launch.

Additional probe result Separate direct API checks produced the same structural block: both an already-authenticated deploy-intent draft and an anonymous-draft-then-attach flow came back with message_limit = 0, and both rejected idea_selection with the same launch_draft_message_limit conflict.
{
  "body": {
    "error": {
      "code": "launch_draft_message_limit",
      "message": "launch draft message limit reached"
    }
  },
  "status": 409,
  "url": "https://api.msx.dev/v1/launch-drafts/8d5f65c3-7fd3-4c7d-8f29-37fa0b9efb60/messages"
}

Conclusion