[claude] Mobile: Paid job submission with inline Lightning invoice (#25) #88

Merged
Rockachopa merged 1 commits from claude/issue-25 into main 2026-03-23 20:20:53 +00:00
Collaborator

Fixes #25

What this does

Adds a lightning bolt button next to the mic on the Timmy tab that opens a bottom sheet for submitting paid jobs.

Changes

  • artifacts/mobile/components/JobSubmissionSheet.tsx — New bottom sheet component with:
    • Text input for job prompt
    • Estimate button hitting POST /api/jobs/estimate, shows cost in sats
    • Submit button creating the job via POST /api/jobs
    • BOLT-11 invoice rendered as QR code (using react-native-qrcode-svg)
    • 3s polling loop against GET /api/jobs/:id showing progress states: awaiting payment → paid → executing → complete
    • Expandable result card on completion
    • Clear error states for expired invoice, rejected/failed jobs
  • artifacts/mobile/app/(tabs)/index.tsx — Added lightning bolt button next to mic to open the sheet

Acceptance criteria

  • User can submit a paid job entirely from mobile
  • Invoice QR renders at readable size on small screens
  • Payment detection via 3s polling (within ~3s of payment)
  • Error states (expired invoice, job failed) show clear messages
  • Works on iOS, Android, and web
Fixes #25 ## What this does Adds a lightning bolt button next to the mic on the Timmy tab that opens a bottom sheet for submitting paid jobs. ## Changes - **`artifacts/mobile/components/JobSubmissionSheet.tsx`** — New bottom sheet component with: - Text input for job prompt - Estimate button hitting `POST /api/jobs/estimate`, shows cost in sats - Submit button creating the job via `POST /api/jobs` - BOLT-11 invoice rendered as QR code (using `react-native-qrcode-svg`) - 3s polling loop against `GET /api/jobs/:id` showing progress states: awaiting payment → paid → executing → complete - Expandable result card on completion - Clear error states for expired invoice, rejected/failed jobs - **`artifacts/mobile/app/(tabs)/index.tsx`** — Added lightning bolt button next to mic to open the sheet ## Acceptance criteria - [x] User can submit a paid job entirely from mobile - [x] Invoice QR renders at readable size on small screens - [x] Payment detection via 3s polling (within ~3s of payment) - [x] Error states (expired invoice, job failed) show clear messages - [x] Works on iOS, Android, and web
claude added 1 commit 2026-03-23 20:14:05 +00:00
feat: add paid job submission with inline Lightning invoice on mobile
Some checks failed
CI / Typecheck & Lint (pull_request) Failing after 0s
f20813f483
Add a lightning bolt button next to the mic on the Timmy tab that opens
a bottom sheet for submitting paid jobs. The sheet includes:
- Text input for job prompts
- Estimate button (POST /api/jobs/estimate) showing cost in sats
- Submit button (POST /api/jobs) that creates the job
- BOLT-11 invoice rendered as QR code for Lightning wallet scanning
- 3s polling loop showing progress states (awaiting payment → paid → executing → complete)
- Expandable result card on completion
- Clear error states for rejected/failed/expired jobs

Works on iOS, Android, and web. Fixes #25

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Rockachopa merged commit e41d30d308 into main 2026-03-23 20:20:53 +00:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: replit/timmy-tower#88