Skip to content

[codex] add instant Sepolia burner session#39

Merged
JamesCarnley merged 20 commits into
mainfrom
codex/instant-burner-session
Jun 24, 2026
Merged

[codex] add instant Sepolia burner session#39
JamesCarnley merged 20 commits into
mainfrom
codex/instant-burner-session

Conversation

@JamesCarnley

@JamesCarnley JamesCarnley commented Jun 23, 2026

Copy link
Copy Markdown
Member

Summary

  • Add an explicit Easy Edits / No prompts control for faucet-configured Sepolia builds.
  • Only connect the existing Scaffold-ETH burner wallet after the user clicks Easy Edits; no page-load funding and no generic wallet-connect drip.
  • Disable wagmi reconnect-on-mount while the instant burner flow is enabled so a stored burner authorization cannot reconnect before user intent.
  • Request one HTTP faucet drip for the burner after the explicit click, surface Adding gas…, ready, and faucet-error states, and treat missing faucet tx hashes as visible failures.
  • Keep real wallets fully available and authoritative: users can connect a normal wallet, and wallet-menu burner disconnects stop Easy Edits fallback until explicitly re-enabled.
  • Gate the flow to faucet-configured Sepolia-first builds, clear/block known public Hardhat burner keys/addresses before Sepolia faucet use, and keep Devnet/Local auto-funding unchanged.
  • Keep the Easy Edits toggle compact and reachable on mobile/tablet, to the right of the wallet controls on desktop.
  • Widen explorer preview panes on xl desktop for readable text/images/games without crushing the file grid at the lg breakpoint.
  • Document NEXT_PUBLIC_INSTANT_BURNER_SESSION in packages/nextjs/.env.example.

Why

This gives the Sepolia buildathon a one-click, no-popup editing path without wasting faucet ETH on every page load. Visitors must explicitly choose Easy Edits before the burner connects and the faucet drips.

This is intentionally a signer convenience: a disposable, faucet-funded Sepolia wallet. It is not the EFS identity/account model, does not link addresses, and writes remain attributable to the wallet address that signs them.

Permanence tier

Ephemeral — packages/nextjs/ debug UI and env documentation only.

Specs/ADRs touched

None.

Test plan

  • git diff --check
  • node --test utils/scaffold-eth/instantBurner.test.ts — 22/22
  • yarn --cwd packages/nextjs test — 138/138
  • yarn next:lint --max-warnings=0
  • yarn next:check-types
  • yarn docs:check
  • Browser checks on http://localhost:3000/: 390px Easy Edits button visible as an 88x36 control; served CSS contains the new xl preview width rules and max-xl overlay rule.
  • GitHub checks are expected to rerun on the latest pushed head.

Not run locally: real live-Sepolia faucet funding plus full upload, because this workspace does not have the operator faucet URL/funds configured. That remains the deployment smoke once the real faucet service env is set.

Review feedback addressed

  • Codex P2: burner reconnect cannot preempt the real-wallet flow or reconnect after wallet-menu disconnects.
  • Codex P2: known public Hardhat burner keys/addresses are cleared or blocked before faucet use.
  • Codex P2: the flow is hidden unless the faucet chain is the configured default chain.
  • Codex P2: faucet pending state clears when funded balance is visible.
  • Expert pass P2: wagmi provider-level reconnect is disabled while instant burner is enabled, preventing page-load burner connection before Easy Edits.
  • Expert pass P2: Easy Edits is reachable below desktop widths.
  • Expert pass P2: widened preview panes now switch to side-by-side at xl, not lg, so the file browser does not collapse at 1024px.

Agents involved

  • [codex-gpt-5 · dev] Implemented the instant burner session, explicit-click faucet guard, Easy Edits UI, review-thread fixes, preview pane widening, expert-pass fixes, verification, and PR updates.
  • [codex-gpt-5 · review] Ran specialist security/faucet, wagmi state-machine, UX/layout, and merge-readiness review lanes before merge.

@JamesCarnley
JamesCarnley marked this pull request as ready for review June 23, 2026 08:14

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: a3134eeca6

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread packages/nextjs/components/InstantBurnerSession.tsx

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 6956f4539e

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread packages/nextjs/components/InstantBurnerSession.tsx Outdated
@JamesCarnley
JamesCarnley force-pushed the codex/instant-burner-session branch from d1129eb to 6eb9398 Compare June 23, 2026 18:04

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 1b6e34cff0

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread packages/nextjs/services/web3/wagmiConnectors.tsx Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 5e5504ee0e

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread packages/nextjs/services/web3/wagmiConnectors.tsx Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: a8ce718245

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread packages/nextjs/components/InstantBurnerSession.tsx

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 31e549e2b0

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread packages/nextjs/components/InstantBurnerSession.tsx Outdated

@JamesCarnley JamesCarnley left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[codex-gpt-5 · reviewer]

Same-account advisory review: BLOCKING
Review mode: deep specialist review, native COMMENT review
Base/head: 92b9d8e -> 31e549e
Reviewers/personas: wagmi state-machine, security/key handling, faucet/demo UX, tests/CI/deployment readiness, coordinator synthesis
Preflight: PR description read; AGENTS.md, docs/agent-workflow.md, specs/overview.md, docs/QUESTIONS.md, and docs/review/review-squad.md read; existing review threads scanned with yarn pr:intake 39 and GraphQL reviewThreads. Duplicate policy: new threads only for new P2 root causes; existing unresolved sticky-dismissal P2 remains in its existing thread.

Findings:

  1. [P2] New inline: funding status can stay on funding... until timeout for a fresh burner whose baseline balance was undefined.
  2. [P2] New inline: manual faucet entrypoint can still fund a burner holding a public Hardhat key because the manual path does not apply the instant-flow cleanup.
  3. [P2] Existing unresolved thread remains valid: dismissing the burner chip is not sticky across real-wallet connects because address changes reset dismissed while editingSessionRequested remains true.

P3/residual notes: the one-click affordance/status chip is desktop-only; some faucet comments/docs still describe old connect-time auto-drip wording; the one-shot sessionStorage drip marker can survive a reload after a click; deploy-pin is green on this head but the workflow is continue-on-error; live Sepolia faucet plus full-upload smoke still needs operator env/funds.

Verification on current head:

  • git diff --check 92b9d8e..31e549e — passed
  • yarn workspace @se-2/nextjs test --test-reporter=spec — passed, 122 tests
  • yarn next:check-types — passed
  • yarn next:lint --max-warnings=0 — passed
  • gh pr checks 39 --watch=false — ci, contract-tests, deploy-pin-check all passed

No files were edited in this review pass.

Comment thread packages/nextjs/components/FaucetStatus.tsx
Comment thread packages/nextjs/components/scaffold-eth/GasFaucetButton.tsx
@JamesCarnley

Copy link
Copy Markdown
Member Author

Dev update after review loop:

  • Pushed d89b0cd (nextjs: harden explicit editing faucet flow).
  • Faucet funding is now explicit-only: no page-load or generic connect drip; the one-click marker is same-page and single-use.
  • Both HTTP faucet entrypoints now block known public Hardhat recipient addresses before requestDrip; the manual path also clears known public Hardhat burner keys.
  • Burner dismissal remains sticky across real-wallet connects/disconnects, while the no-wallet Enable editing pill gives a same-page explicit re-enable path.
  • Faucet status now polls the faucet chain balance and clears promptly when a fresh burner receives gas.
  • Updated .env.example and comments to match the explicit-funding behavior and signer-only guardrail.

Verification:

  • yarn --cwd packages/nextjs test — 128/128 passed
  • yarn next:lint --max-warnings=0 — passed
  • yarn next:check-types — passed
  • git diff --check — passed
  • Specialist re-review: security/faucet and wagmi state-machine reviewers both returned merge-ready after fixes
  • GitHub checks on d89b0cd: ci, contract-tests, and deploy-pin-check all passed

All review threads are replied to and resolved.

@JamesCarnley

Copy link
Copy Markdown
Member Author

UI polish update:

  • Pushed 9d0885f (nextjs: simplify promptless edits header).
  • Replaced the overloaded burner wallet header chip with a compact Enable promptless edits button and a compact Promptless edits on state.
  • Removed inline address/balance/error text from the header chip so it cannot overlap wallet controls.
  • Auto-faucet failures now show as a shorter bottom toast instead of a long header string.

Verification:

  • yarn --cwd packages/nextjs test — 128/128 passed
  • yarn next:lint --max-warnings=0 — passed
  • yarn next:check-types — passed
  • git diff --check — passed
  • Local visual smoke at 2048px wide: pre-click button and post-click chip no longer overlap; dummy faucet failure appears as bottom toast
  • GitHub checks on 9d0885f: ci, contract-tests, and deploy-pin-check all passed

@JamesCarnley

Copy link
Copy Markdown
Member Author

[codex-gpt-5 · dev]

UI polish update:

  • Pushed 673e35c (nextjs: compact easy edits wallet control).
  • Replaced the large promptless-editing surface with a wallet-adjacent two-line Easy Edits / No prompts toggle.
  • Active burner state now stays compact: toggle next to the wallet chip, with a small Own wallet escape only on wider desktop.
  • Collapsed nearby network/feedback header labels at laptop-width desktop so the wallet row does not overlap.

Verification:

  • yarn --cwd packages/nextjs test — passed, 128/128.
  • yarn next:lint --max-warnings=0 — passed.
  • yarn next:check-types — passed.
  • git diff --check — passed.
  • Headless Chrome visual smoke: 1280px and 2048px Sepolia header states after enabling Easy Edits; no overlap, no wrapped toggle text.
  • GitHub checks on 673e35c: ci, contract-tests, and deploy-pin-check all passed.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 5bed678e15

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread packages/nextjs/components/InstantBurnerSession.tsx

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: d8e27ba151

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread packages/nextjs/components/InstantBurnerSession.tsx

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: cc4e150fbe

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread packages/nextjs/components/InstantBurnerSession.tsx
claude added 15 commits June 23, 2026 19:29
Give faucet-configured Sepolia builds a popup-free burner by default, while real wallets still take precedence.

The session is gated by NEXT_PUBLIC_FAUCET_URL plus a kill switch and scoped to the faucet chain. It reuses the existing burner connector and faucet drip, surfaces funding, ready, and faucet-error state, and leaves the fork DevnetAutoFund path alone.

Verified:

- yarn workspace @se-2/nextjs test --test-reporter=spec

- yarn next:check-types

- yarn next:lint --max-warnings=0

- git diff --check

- Browser smoke with NEXT_PUBLIC_TARGET_CHAIN=sepolia and a mock faucet: burner auto-connected, drip POSTed, real-wallet chooser opened, and cancel fell back to burner.

Co-authored-by: Codex GPT-5 <noreply@openai.com>

Tested-by: Codex GPT-5 <noreply@openai.com>

Permanence-tier: Ephemeral
Avoid spending faucet ETH on page load. Faucet-configured Sepolia builds now show a one-click demo-wallet affordance; the burner connects and requests a drip only after that click.

Persisted burner reconnects are disconnected unless the visitor has explicitly started the demo wallet in the current page session. Real wallets and the manual faucet button remain available.

Verified:

- yarn workspace @se-2/nextjs test --test-reporter=spec

- yarn next:check-types

- yarn next:lint --max-warnings=0

- git diff --check

- Browser smoke with a mock faucet: reload did not increment faucet count; clicking Use demo wallet connected burner and incremented count once.

Co-authored-by: Codex GPT-5 <noreply@openai.com>

Tested-by: Codex GPT-5 <noreply@openai.com>

Permanence-tier: Ephemeral
Replace the promptless-editing banner with a wallet-adjacent two-line toggle, keep the real-wallet escape compact, and collapse nearby header labels on laptop-width desktop so the wallet row does not overlap.

Verified with the nextjs unit suite, lint, typecheck, diff whitespace, and headless Chrome captures at 1280px and 2048px.

Co-authored-by: Codex GPT-5 <noreply@openai.com>

Tested-by: Codex GPT-5 <noreply@openai.com>

Permanence-tier: Ephemeral
Keep the Easy Edits control to the right of the wallet chip so enabling the burner swaps Connect Wallet for the address chip without moving the toggle. Brighten the off state, use a larger sliding switch treatment, and remove the separate Own wallet button.

Verified with nextjs lint, typecheck, unit tests, diff whitespace, and headless Chrome captures at 1280px and 2048px.

Co-authored-by: Codex GPT-5 <noreply@openai.com>

Tested-by: Codex GPT-5 <noreply@openai.com>

Permanence-tier: Ephemeral
@JamesCarnley
JamesCarnley force-pushed the codex/instant-burner-session branch from 7e640dc to 8dfe877 Compare June 24, 2026 00:30

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 8dfe877af5

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread packages/nextjs/components/InstantBurnerSession.tsx
@JamesCarnley

Copy link
Copy Markdown
Member Author

[codex-gpt-5 · dev]

Preview-pane polish update:

  • Pushed ff1919c (nextjs: widen explorer preview panes).
  • File previews now grow responsively up to 800px (min(52vw, 800px)) instead of the old fixed 400px.
  • List previews now grow responsively up to 760px (min(52vw, 760px)) instead of the old fixed 380px.
  • Mobile overlay behavior is unchanged; desktop gets a wider text/image/game viewing surface without fully crushing the explorer on narrower screens.

Verification:

  • git diff --check — passed.
  • yarn next:lint --max-warnings=0 — passed.
  • yarn next:check-types — passed.
  • yarn --cwd packages/nextjs test — passed, 136/136.
  • Browser check on http://localhost:3000/ confirmed the served Tailwind CSS includes the new responsive preview width rules.
  • GitHub checks on ff1919c: ci, contract-tests, and deploy-pin-check all passed.
  • Review-thread sweep: all existing review threads are resolved; PR merge state is CLEAN.

Disable wagmi reconnect-on-mount while the instant burner flow is enabled so a stored burner authorization cannot connect before the user clicks Easy Edits. Keep the Easy Edits control reachable below desktop widths and move the widened preview pane's side-by-side breakpoint to xl so the explorer grid is not crushed at 1024px. Also make faucet responses without tx hashes explicit failures and let failed auto-drips retry after another user request.

Verified with git diff --check, Next.js lint, typecheck, docs:check, the full Next.js test suite, and browser checks for mobile Easy Edits visibility plus served preview breakpoint CSS.
@JamesCarnley
JamesCarnley merged commit 57e221a into main Jun 24, 2026
3 checks passed
@JamesCarnley
JamesCarnley deleted the codex/instant-burner-session branch June 24, 2026 02:12
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.

2 participants