AGIJobManager UI v26: ENSJobPages resolution & ENS preview hardening, admin modal, ABI expansion, mobile polish#1458
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: c79538449b
ℹ️ 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 useEnsUriPreview(){ | ||
| const uri = (el("predictedEnsURI")?.textContent || "").trim(); | ||
| if(!uri || uri === "—"){ setToast("No ENS URI preview available.", "warn"); return; } | ||
| navigator.clipboard.writeText(uri) |
There was a problem hiding this comment.
Resolve ENS contract before reading job ENS visibility
fetchEnsVisibility unconditionally calls clearEnsPreview(...) on entry (the call is outside the if braces), and clearEnsPreview nulls ensJobPages; the very next ensJobPages.methods... calls then throw and the catch block returns empty data. In practice this makes job detail ENS fields (name/URI/node/text records) fail to load every time, even when ENSJobPages had already been resolved.
Useful? React with 👍 / 👎.
| function useEnsUriPreview(){ | ||
| const uri = (el("predictedEnsURI")?.textContent || "").trim(); | ||
| if(!uri || uri === "—"){ setToast("No ENS URI preview available.", "warn"); return; } | ||
| navigator.clipboard.writeText(uri) |
There was a problem hiding this comment.
Remove unsupported manager admin method from controls
The manager routine controls now include setUseEnsJobTokenURI, but AGIJobManagerABI in this file does not define that function. When this button is used, executeAdminControl tries to invoke contract.methods[method](...) and hits an undefined method at runtime, so the admin action cannot be submitted.
Useful? React with 👍 / 👎.
Motivation
AGIJobManagerandENSJobPagesas required by the protocol model.Description
resolveEnsJobPagesContract()now readsagiJobManager.methods.ensJobPages().call()and setsresolvedEnsJobPagesAddressandresolvedEnsJobPagesSourcewith clear labels; only in degraded state does the UI use the verified fallbackKNOWN_ENS_JOB_PAGES_FALLBACK = "0x06188e77c1c38d392b16d9d9fb24673363ce1da0".jobLabelPrefix,jobLabelSnapshottuple,jobEnsLabel,jobEnsName,jobEnsURI,jobEnsNode, owner and registry/wrapper/resolver getters, and owner-only operational methods) and extendedAGIJobManagerABIcoverage for required reads and admin methods used by the UI.updateEnsJobPagePreview()now resolves live ENSJobPages address, instantiates the contract at that address, readsnextJobId,jobLabelSnapshot(nextJobId)(tuple semantics),jobEnsLabel,jobEnsName,jobEnsURI,jobEnsNode,jobLabelPrefix, owner, registry, nameWrapper, public resolver,useEnsJobTokenURI, andconfigLocked, and renders an explicitSnapshot status,Effective label,Effective ENS name/URI/node, andAddress source(AGIJobManager getter / verified fallback / unavailable). The code never inventsjob-labels; it uses contract reads andjobLabelPrefixonly as a last-resort when public reads are unavailable.nextJobId.prompt(),alert(),confirm()) and replaced admin argument collection with a typed in-pageadminArgsModaland a structuredcollectAdminArgs()+requestActionConfirmation()review flow before sending transactions.v26MobileDock/v26MobileSheet) improvements and ensured preview/admin cards and modals are responsive and do not overflow on narrow screens; updated visible copy tov26.isZeroAddress(),clearEnsPreview(), robust tuple-parsing forjobLabelSnapshot, and conservativerunSafeReadStep()usage for RPC resilience.Testing
test -f ui/agijobmanager_genesis_job_mainnet_2026-03-05-v26.html(succeeded).rgsearches: no occurrences of the old address0xc19A84D10ed28c2642EfDA532eC7f3dD88E5ed94remain and no leftoverprompt()/alert()/confirm()calls (search checks succeeded).node --checkon it (succeeded).file://path due to container file:// resolution limits); this is an environment tooling limitation, not a code regression.runSafeReadStep()patterns and tested via local read-call flows in the script; the UI now clearly indicates degraded state when RPC reads fail, instead of silently fabricating values.Codex Task