Flagship v33: elite pale redesign, top-deck prerequisites, mobile modal reachability, and session restore#1490
Flagship v33: elite pale redesign, top-deck prerequisites, mobile modal reachability, and session restore#1490MontrealAI wants to merge 4 commits into
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 0cb0d67ccf
ℹ️ 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".
| }).filter(x=>x.priority < 90).sort((a,b)=>a.priority - b.priority || compareJobs(a.job, b.job, 'urgency')).slice(0, 6); | ||
| } | ||
| function renderAttentionQueue(){ | ||
| const box = el('attentionQueueList') |
There was a problem hiding this comment.
Sync userAccount from eth_accounts before refreshAll
silentWalletRefresh reads eth_accounts but never writes that value back to userAccount/APP_STATE.wallet.account unless the UI currently says "Not connected". If the active wallet changed while the page was backgrounded and accountsChanged did not fire, this path calls refreshAll(true) with stale account state, so reads and subsequent sends still use the old from address and can fail or act on the wrong identity.
Useful? React with 👍 / 👎.
| return {job, priority, title, reason, tags, quick}; | ||
| }).filter(x=>x.priority < 90).sort((a,b)=>a.priority - b.priority || compareJobs(a.job, b.job, 'urgency')).slice(0, 6); | ||
| } | ||
| function renderAttentionQueue(){ | ||
| const box = el('attentionQueueList') |
There was a problem hiding this comment.
Clear verified role flags when membership is invalidated
invalidateVerification only updates badge text/output, but it does not clear verified.agent, verified.club, or alpha-role booleans. In the sameSession === false path, this leaves role-gated actions and checks still treating the user as verified (e.g., Apply/Validate flows that key off verified.*), so the UI can continue using stale ENS role state after an account/session mismatch.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 25e7d6b3e1
ℹ️ 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".
| function renderAttentionQueue(){ | ||
| const box = el('attentionQueueList') |
There was a problem hiding this comment.
Preserve alpha mode when auto-revalidating saved ENS inputs
reverifySavedInputs always calls verifySubdomain(..., false), so after silentWalletRefresh any user who previously verified via the alpha path is downgraded to non-alpha (or fully invalidated if the label only exists under alpha.*). This happens on load/focus/pageshow and clears verified.agentAlpha/verified.clubAlpha, which blocks alpha-gated flows until the user manually re-verifies with the alpha buttons.
Useful? React with 👍 / 👎.
| }).filter(x=>x.priority < 90).sort((a,b)=>a.priority - b.priority || compareJobs(a.job, b.job, 'urgency')).slice(0, 6); | ||
| } | ||
| function renderAttentionQueue(){ | ||
| const box = el('attentionQueueList') |
There was a problem hiding this comment.
Reset terms acceptance on wallet account changes
The accountsChanged handler no longer clears hasAcceptedTerms or unchecks termsAccepted, so switching to a different wallet keeps write gating unlocked if terms were accepted by the previous account. In this build, many write paths gate on mustBeReadyToWrite() (mainnet + terms), so a newly selected account can transact without explicitly re-accepting terms after the account switch.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: d9b0075535
ℹ️ 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".
| }).filter(x=>x.priority < 90).sort((a,b)=>a.priority - b.priority || compareJobs(a.job, b.job, 'urgency')).slice(0, 6); | ||
| } | ||
| function renderAttentionQueue(){ | ||
| const box = el('attentionQueueList') |
There was a problem hiding this comment.
Reset wallet state when eth_accounts returns no account
silentWalletRefresh returns immediately when eth_accounts has no entries, so a tab that was previously connected keeps stale userAccount/UI/write state if the wallet was locked or disconnected without an accountsChanged event. Since this function is the new background recovery path (focus/pageshow/visibilitychange), the no-account case must also clear connection state; otherwise subsequent reads/sends run under a no-longer-valid identity and fail unpredictably.
Useful? React with 👍 / 👎.
| return {job, priority, title, reason, tags, quick}; | ||
| }).filter(x=>x.priority < 90).sort((a,b)=>a.priority - b.priority || compareJobs(a.job, b.job, 'urgency')).slice(0, 6); | ||
| } | ||
| function renderAttentionQueue(){ | ||
| const box = el('attentionQueueList') |
There was a problem hiding this comment.
Clear accepted terms in silent account-mismatch recovery
When silentWalletRefresh detects a different session/account, it only calls invalidateVerification(...) and leaves hasAcceptedTerms untouched, even though restoreAccessState can repopulate termsAccepted from local storage. Fresh evidence: the accountsChanged handler now clears terms, but this fallback branch does not, so wallet switches that rely on silent refresh can keep write gating unlocked for the new account without explicit re-acceptance.
Useful? React with 👍 / 👎.
Motivation
Description
ui/agijobmanager_genesis_job_mainnet_2026-03-05-v33.htmlderived from v32 and implemented a refined pale visual system, top-fold masthead, “Access / Readiness / Verification” deck, and elevated “Before You Transact” card.#verifyEnsSectioninto the top prerequisites cluster at runtime (DOM reorder) so the original section and its IDs/hooks remain intact and JS events continue to function.termsAccepted,agentSub,clubSub, andmintAlphaLabeltolocalStorageunder a safe key, restore onload,pageshow,visibilitychange, andfocus, and attempt a silenteth_accountsre-detection to rehydrate wallet state and re-run lightweight verification when appropriate.body.has-open-modalto hide/suppress#v26MobileDockand#v26MobileSheet, implement sticky modal header + scrollable body + sticky footer (safe-area-aware), use--app-vh/visualViewportstrategy and-webkit-overflow-scrolling: touchto avoid clipped confirm buttons on in-app browsers.v33-flagship-refinementstyle block, card depth/edge refinement, typography treatments, and top-deck session-restore notice (#sessionRestoreNote).Testing
python+regex) against the new file — result: no duplicateidvalues (success).#verifyEnsSection, thetermsAcceptedcheckbox, modal IDs (e.g.actionReviewModal,alphaMintReviewModal,alphaIdentityReviewModal,adminArgsModal,completionAssistantModal,jobDetailModal,commandPaletteModal), and mobile dock/sheet IDs; all remain present and unchanged.bs4-based parsing test was not available in the environment (library not installed); these are environmental and not changes to runtime UI behavior.Codex Task