Skip to content

Clarify ENS preview vs effective semantics in docs and UI (no manager bytecode changes)#152

Open
MontrealAI wants to merge 1 commit into
mainfrom
codex/audit-ensjobpages-and-agijobmanagerprime-compatibility
Open

Clarify ENS preview vs effective semantics in docs and UI (no manager bytecode changes)#152
MontrealAI wants to merge 1 commit into
mainfrom
codex/audit-ensjobpages-and-agijobmanagerprime-compatibility

Conversation

@MontrealAI

Copy link
Copy Markdown
Owner

Motivation

  • Remove dangerous ambiguity where UI/docs presented projected ENS values as authoritative, which risks operator mistakes during mainnet cutover.
  • Preserve the zero-manager-change architecture: authoritative ENS identity must be ENS-side (snapshot) and operator/keeper-driven, not by changing Prime runtime bytecode.
  • Make the repo truthful about what was provable from this environment (audit artifact may be non-authoritative when RPC is unreachable).

Description

  • Relabeled UI fields and copy to make projection vs authoritative semantics explicit by changing UI labels from “Effective …” to “Preview …” and adding snapshot-status contextual warnings in the v39 standalone HTML (ui/agijobmanager_genesis_job_mainnet_2026-03-05-v39.html).
  • Updated operator-facing docs and README to state that <prefix><jobId>.<jobsRootName> is a preview until a per-job authority snapshot is established and to prefer chain-backed audit outputs over prose (README.md, docs/ui/GENESIS_JOB_MAINNET_HTML_UI.md, docs/ENS/OBSERVED_MAINNET_STATE.md).
  • Refreshed the checked-in audit output artifact (scripts/ens/output/audit-mainnet.json) from this environment and explicitly flagged it non-authoritative because the sandbox RPC was unreachable.
  • No Solidity changes, no AGIJobManagerPrime runtime-bytecode changes, and no change to the existing handleHook(uint8,uint256) ABI or ENS-side logic; this patch is operator-facing only.

Testing

  • node scripts/ens/audit-mainnet.ts executed and wrote scripts/ens/output/audit-mainnet.json, but the artifact records rpcReachable: false and error: "AggregateError" so it must be re-run from a networked operator workstation before production actions. (PASS — audit ran; artifact non-authoritative)
  • npm run docs:check was run and documentation consistency checks passed. (PASS)
  • npx truffle test ... and npm run test:size were attempted but the environment stalled while fetching/downloading compiler artifacts, so full on-chain unit/size tests could not be completed here. (INCONCLUSIVE — environment network/compile stall)
  • npm run ui:abi:check failed pre-compile because local compiled artifacts were not present in this sandbox; a local compile would be required to validate ABI-sync checks. (FAIL - precondition)

Codex Task

@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: 8d74b3c89b

ℹ️ 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".

facts:[
{label:'Job status', value: job ? classifyJobStatus(job) : 'Unknown'},
{label:'Effective ENS name', value: currentLivePacket?.job?.id === jobId ? (currentLivePacket.job.ensName || '—') : (job ? ensLabelPreviewForJobId(jobId) : '—')},
{label:'Preview ENS name', value: currentLivePacket?.job?.id === jobId ? (currentLivePacket.job.ensName || '—') : (job ? ensLabelPreviewForJobId(jobId) : '—')},

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Restore effective ENS labeling in the lock dialog

For terminal jobs, this dialog usually shows currentLivePacket.job.ensName, which comes from fetchEnsVisibility() via ENSJobPages.jobEnsName(). In the checked contract path (contracts/ens/ENSJobPages.sol::_createJobPage), authority is established at create time, so completed/expired jobs normally have an effective name already. Relabeling that field to "Preview ENS name" reintroduces the exact ambiguity this patch is trying to remove right before the operator signs lockJobENS(...).

Useful? React with 👍 / 👎.

Comment on lines +8343 to +8344
['ENS URI (preview or authoritative, see snapshot status)', ens.ensUri ? safeLink(ens.ensUri) : '—'],
['ENS name (preview or authoritative, see snapshot status)', escapeHtml(ens.ensName || '—')]

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Render snapshot state next to the job-detail ENS fields

These labels now tell the reader to "see snapshot status", but the job-detail modal does not render any snapshot indicator and fetchEnsVisibility() only loads the compatibility getters (jobEnsName/jobEnsURI/jobEnsNode), not whether authority is established. In the exact cutover/debug workflow this patch targets, operators still cannot tell whether the displayed name/URI is mutable preview data or authoritative state.

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant