v26 standalone mainnet UI: live ENSJobPages resolution, ABI & admin UX hardening#1457
v26 standalone mainnet UI: live ENSJobPages resolution, ABI & admin UX hardening#1457MontrealAI wants to merge 1 commit into
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 2beb0b5aa8
ℹ️ 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".
| } | ||
| activeJobIndexCache.ids = ids.slice(); | ||
| activeJobIndexCache.ts = now; | ||
| APP_STATE.jobsReadDegraded = false; |
There was a problem hiding this comment.
Preserve degraded job-index state when event coverage is missing
getActiveJobIdsFromEvents marks the read path degraded when JobCreated coverage is missing, but this line clears APP_STATE.jobsReadDegraded before returning. That suppresses the degraded-state indicator used in the jobs summary (jobsVisibleSummary), so users can see an incomplete/empty index without the persistent degraded warning after the initial toast.
Useful? React with 👍 / 👎.
| }else if(KNOWN_ENS_JOB_PAGES_FALLBACK && !isZeroAddress(KNOWN_ENS_JOB_PAGES_FALLBACK)){ | ||
| resolvedEnsJobPagesAddress = KNOWN_ENS_JOB_PAGES_FALLBACK; | ||
| resolvedEnsJobPagesSource = 'verified fallback'; |
There was a problem hiding this comment.
Respect zero ensJobPages getter instead of forcing fallback
In resolveEnsJobPagesAddress, the fallback address is used whenever the manager getter does not produce a non-zero address, including the valid address(0) case where AGIJobManager.ensJobPages() is intentionally unset. In that scenario the UI silently binds ENS reads/admin actions to a different contract (verified fallback) instead of reflecting that the manager is unconfigured, which can misdirect operator decisions and transactions.
Useful? React with 👍 / 👎.
Motivation
AGIJobManager.ensJobPages()as the live source of truth while providing a clearly labeled verified fallback.job-label fallback and synthetic job-id fabrication) so on-chain reads drive the UI.Description
KNOWN_ENS_JOB_PAGES_FALLBACK = "0x06188e77c1c38d392b16d9d9fb24673363ce1da0"plusresolvedEnsJobPagesAddressandresolvedEnsJobPagesSource, and addedresolveEnsJobPagesAddress()that readsagiJobManager.methods.ensJobPages().call()and applies the fallback only in a degraded state.ENSJobPagesABIandAGIJobManagerABIto match the provided sources (including accuratejobLabelSnapshottuple signature and owner/write methods) and added additionalensureAbiMethodsentries to expose operational reads/writes used by admin panels.updateEnsJobPagePreview) to instantiate ENSJobPages at the resolved address, surface contract reads (owner, ens, nameWrapper, publicResolver, jobsRootName/jobsRootNode, jobManager, jobLabelPrefix, nextJobId, jobLabelSnapshot, jobEnsLabel/jobEnsName/jobEnsURI/jobEnsNode, useEnsJobTokenURI, configLocked), parse tuple snapshots robustly, and show explicit rows: resolved address + source, owner, infra, link state, snapshot status, effective label/name/URI/node, token URI flags, and a public prerequisites summary (without claiming internal readiness).0xc19A84D10ed28c2642EfDA532eC7f3dD88E5ed94usage and all localjob-canonicalization fallbacks so preview and detail modal usejobEnsLabelandjobLabelSnapshotreads when available, otherwise showunavailable(notjob-).prompt()admin argument collection with an in-pageadminArgsModalandcollectAdminMethodArgs()helpers;executeAdminControl()now opens the modal, validates typed args (type-aware handling for booleans), runs a transaction review (requestActionConfirmation/actionReviewModal), and then submits tracked transactions; noalert()/confirm()/prompt()remain.0..nextJobId-1as live IDs;getActiveJobIdsFromEvents()no longer returns synthetic lists and setsAPP_STATE.jobsReadDegradedwith clear toast guidance.Testing
test -f ui/agijobmanager_genesis_job_mainnet_2026-03-05-v26.html(succeeded).rg -n "prompt\(|alert\(|confirm\(|0xc19A84D10ed28c2642EfDA532eC7f3dD88E5ed94"and related patterns (no remaining native dialogs or the old address found; search succeeded).KNOWN_ENS_JOB_PAGES_FALLBACK,resolvedEnsJobPagesSource,resolveEnsJobPagesAddress) are present (succeeded).ERR_FILE_NOT_FOUND(tool limitation; not a failure of the artifact itself).Codex Task