Skip to content

fix(web): resume supplier results and copy wallet address - #136

Merged
SuPuHe merged 1 commit into
developfrom
fix/session-details-resume-result
Sep 13, 2026
Merged

SuPuHe merged 1 commit into
developfrom
fix/session-details-resume-result

Conversation

@SuPuHe

@SuPuHe SuPuHe commented Sep 13, 2026

Copy link
Copy Markdown
Member

Summary

  • Add a dedicated wallet-address copy action and align the wallet address styling with the session DID.
  • Resume supplier delivery with exactly one POST /v1/jobs/:jobId/resume.
  • Observe the same job through read-only GET /v1/jobs/:jobId calls until the existing result is available, without repeatedly listing all jobs.
  • Preserve the no-new-payment recovery path and add regression coverage.

Scope and acceptance criteria

  • Wallet address is separated, styled like the DID, and copied in full.
  • Resume sends exactly one POST /v1/jobs/:jobId/resume per click.
  • A 202/PENDING response is treated as asynchronous.
  • Follow-up reads target only the same job_id; the workspace job list is not repeatedly polled.
  • Polling stops when a result is available or delivery reaches a terminal state, with a bounded wait.
  • The UI renders Result ready and the supplier report only when the API returns a result.
  • A still-PENDING response remains explicit; the UI does not fabricate a result.
  • The resume flow never calls /v1/jobs/:jobId/user-wallet/submit.
  • No second payment, settlement, or supplier job is created.

Product and security invariants

  • No settlement or payment path was changed.
  • Resume only observes durable job state and preserves the no-new-payment guarantee.
  • The stable job and business-intent identifiers are reused across recovery.
  • No secrets, credentials, production identifiers, or personal data are committed.

Validation

pnpm --filter @oneshot/web test - PASS (17 files, 96 tests)
Focused resume and job-client tests - PASS (23 tests)
pnpm --filter @oneshot/web lint - PASS
pnpm --filter @oneshot/web typecheck - PASS
pnpm --filter @oneshot/web test:browser - PASS (8 tests)
pnpm format:check - PASS
git diff --cached --check - PASS

Independent review evidence

Gate A

  • Verdict: VERDICT: PASS
  • Reviewer tool: free-pi-cli
  • Reviewer model: deepseek-v4-flash
  • Reviewed base: develop (d671af1da36878b7aaafcfc3049bc958e0daeb34)
  • Reviewed target: fix/session-details-resume-result, staged workspace
  • Reviewed tree: 847ba3af28ac09020ab98539ff885b34e2d21220
  • Blocking findings: None reported
  • Non-blocking findings: None reported with the supplied verdict

Gate B

  • Verdict: NOT RUN — intentionally deferred per user request.

Risk and rollback

  • Residual risk: If the supplier remains PENDING after the bounded observation window, the UI correctly remains in retrieval state and the existing manual refresh can be used. A backend worker or supplier failure must resolve before Result ready is possible.
  • Rollback: Revert commit 1824728d594a04a797fa1447acd1a3f9edc7fd3e; no payment or settlement data migrations are involved.

Human merge

  • A human owner has reviewed the evidence and will perform the merge.

@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Updated (UTC)
✅ Deployment successful!
View logs
oneshot 1824728 Sep 13 2026, 01:22 PM

@SuPuHe
SuPuHe merged commit a5d2848 into develop Sep 13, 2026
5 checks passed
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