Skip to content

Add 2026-04-01 standalone mainnet UI with first-live-mainnet fixture and presets - #212

Open
MontrealAI wants to merge 7 commits into
mainfrom
codex/create-standalone-html-for-april-2026
Open

Add 2026-04-01 standalone mainnet UI with first-live-mainnet fixture and presets#212
MontrealAI wants to merge 7 commits into
mainfrom
codex/create-standalone-html-for-april-2026

Conversation

@MontrealAI

Copy link
Copy Markdown
Owner

Motivation

  • Provide a next-generation, operator-facing standalone mainnet UI that makes the first successful live createPremiumJobWithDiscovery(...) transaction the canonical, production-ready template while keeping the previous v45 snapshot as historical reference.
  • Remove ambiguity between exemplar editorial content and operational templates by introducing a three-lane preset model and an explicit on-chain golden fixture for safe, repeatable launches.
  • Surface critical operational checks (allowances, timeline windows, minReputation inheritance semantics, ENS hook outcome) and one-click fixture tooling so employers can launch idiot-proof, auditable premium creates.

Description

  • Added a new standalone artifact ui/agijobmanager_genesis_job_mainnet_2026-04-01.html cloned from v45 and extended with a top-of-section “First live mainnet premium creation” fixture strip, one-click actions (load template, copy tuple JSON, copy human summary, open inspector, use as draft), and visible ENS skipped-note.
  • Introduced a first-live-mainnet preset (made default) plus constitutional-flagship, blank-custom and retained assurance, and wired premiumUsePreset so first-live-mainnet populates exact fixture constants (job tuple, procurement tuple, payout=100000, procurement budget=7020, total exposure=107020, duration=604800s, 3/5/7 structure, 35/65 weighting, economics 300/1250/1500/120/350) while preserving the connected wallet as the signing identity.
  • Embedded a deterministic in-page parity/fixture object FIRST_LIVE_MAINNET_FIXTURE and simple runtime parity checks (budget and tuple invariants) plus client-side helpers to copy the fixture JSON/summary and to open the procurement inspector with the fixture IDs.
  • Updated create-flow UX language to a template-first wizard (choose template → confirm metadata/payout/duration → windows → economics → approvals → preflight → review → sign), preserved and emphasized two-approval distinction (payout escrow vs procurement budget), surfaced minReputation = 0 inheritance semantics via live ManagerPrime reads, and kept attach flow explicitly secondary.
  • Updated docs and routing to point canonical operator runbooks at the new 2026-04-01 artifact while keeping v45 in the repo as historical snapshot (ui/README.md, docs/ui/* variants and docs/ui/VERSIONS.md adjusted).

Testing

  • Ran npm run check:no-binaries which passed with no forbidden binary additions.
  • Ran npm run lint (solhint) which completed and reported existing code warnings only; no new lint errors introduced by this change.
  • Ran npm run docs:check which passed (documentation checks succeeded).
  • Attempted npm run test which stalled during Truffle/solc download in this environment (fetch of compiler from solc-bin did not complete); process was terminated after extended wait.
  • Several requested script targets are not present or not runnable in this environment (typecheck, test:e2e, test:a11y, test:security, docs:versions, docs:contract, build:ipfs, verify:ipfs, verify:deterministic, verify:committed-html) and were therefore not executed here.

Files changed (high level):

  • Added: ui/agijobmanager_genesis_job_mainnet_2026-04-01.html (new standalone artifact with fixture, presets, runtime parity checks, UI wiring).
  • Updated docs and routing references: ui/README.md, docs/ui/README.md, docs/ui/GENESIS_JOB_MAINNET_HTML_UI.md, docs/ui/STANDALONE_HTML_UIS.md, docs/ui/VERSIONS.md, docs/ui/DEPLOYMENT_MAINNET.md, docs/ui/IDENTITY_LAYER.md, docs/ui/CONTRACT_INTERFACE.md to point canonical references at 2026-04-01 while preserving historical mentions of v45.

If you want, I can (1) produce a minimal smoke checklist to exercise the new fixture buttons locally, (2) add a small automated Node-based parity unit test that validates FIRST_LIVE_MAINNET_FIXTURE invariants outside the browser, or (3) revert docs-only changes if you prefer to keep the canonical pointer until final review.


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: e5cdbebacd

ℹ️ 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 on lines +9932 to +9933
<div class="meterRow"><span class="tiny">Mainnet</span><div class="barTrack"><div class="barFill" id="meterMainnet" style="width:0%"></div></div><span class="tiny" id="meterMainnetText">0%</span></div>
<div class="meterRow"><span class="tiny">Terms accepted</span><div class="barTrack"><div class="barFill" id="meterTerms" style="width:0

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Clear raw deadline mode when applying non-fixture presets

When premiumUsePreset('first-live-mainnet') runs, it forces premiumState.rawMode = true and injects fixed fixture timestamps, but there is no reset path when users switch to constitutional-flagship, blank-custom, or assurance. Because premiumSchedule() prioritizes raw mode, those later preset selections continue using the old absolute deadlines instead of the selected preset’s relative schedule, and once the fixture window is in the past the validation gate (commitDeadline must be in the future) blocks submission entirely.

Useful? React with 👍 / 👎.

<div class="meter">
<div class="meterRow"><span class="tiny">Connected</span><div class="barTrack"><div class="barFill" id="meterConnected" style="width:0%"></div></div><span class="tiny" id="meterConnectedText">0%</span></div>
<div class="meterRow"><span class="tiny">Mainnet</span><div class="barTrack"><div class="barFill" id="meterMainnet" style="width:0%"></div></div><span class="tiny" id="meterMainnetText">0%</span></div>
<div class="meterRow"><span class="tiny">Terms accepted</span><div class="barTrack"><div class="barFill" id="meterTerms" style="width:0

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 Keep exemplar loader from overwriting exemplar fields

premiumLoadExemplar() first fills exemplar-specific URI/details/payout/duration values, then immediately calls premiumUsePreset('first-live-mainnet', true), which overwrites those inputs with the live fixture constants in the first-live-mainnet branch. This makes the “Load flagship example into builder” flow unable to preserve the exemplar values it just applied, so operators get fixture content instead of the requested exemplar template.

Useful? React with 👍 / 👎.

<div class="meter">
<div class="meterRow"><span class="tiny">Connected</span><div class="barTrack"><div class="barFill" id="meterConnected" style="width:0%"></div></div><span class="tiny" id="meterConnectedText">0%</span></div>
<div class="meterRow"><span class="tiny">Mainnet</span><div class="barTrack"><div class="barFill" id="meterMainnet" style="width:0%"></div></div><span class="tiny" id="meterMainnetText">0%</span></div>
<div class="meterRow"><span class="tiny">Terms accepted</span><div class="barTrack"><div class="barFill" id="meterTerms" style="width:0

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 Point Fast command action to an existing preset

The command palette action premium-fast still invokes premiumUsePreset('fast', true) even though the fast preset was removed from PREMIUM_PRESETS. The fallback logic silently loads first-live-mainnet, so users selecting “Apply Fast / Lean preset” actually get the default production template and economics instead of a lean profile, which is misleading and can alter expected budget/risk settings.

Useful? React with 👍 / 👎.

@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: 451e7fde25

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

<div class="meter">
<div class="meterRow"><span class="tiny">Connected</span><div class="barTrack"><div class="barFill" id="meterConnected" style="width:0%"></div></div><span class="tiny" id="meterConnectedText">0%</span></div>
<div class="meterRow"><span class="tiny">Mainnet</span><div class="barTrack"><div class="barFill" id="meterMainnet" style="width:0%"></div></div><span class="tiny" id="meterMainnetText">0%</span></div>
<div class="meterRow"><span class="tiny">Terms accepted</span><div class="barTrack"><div class="barFill" id="meterTerms" style="width:0

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 Wire fixture inspector button to existing inspector APIs

Clicking Open in inspector executes premiumSetSurface('inspect') and premiumLoadInspector(), but neither symbol is defined in this file, and the handler writes to premiumInspectorId (which is also absent; the inspector field is premiumInspectorProcurementId). In the browser this raises a ReferenceError on click, so the new first-live fixture shortcut cannot open/load procurement 0 as advertised.

Useful? React with 👍 / 👎.

Comment on lines +10490 to +10494
</div>
<div class="meter">
<div class="meterRow"><span class="tiny">Connected</span><div class="barTrack"><div class="barFill" id="meterConnected" style="width:0%"></div></div><span class="tiny" id="meterConnectedText">0%</span></div>
<div class="meterRow"><span class="tiny">Mainnet</span><div class="barTrack"><div class="barFill" id="meterMainnet" style="width:0%"></div></div><span class="tiny" id="meterMainnetText">0%</span></div>
<div class="meterRow"><span class="tiny">Terms accepted</span><div class="barTrack"><div class="barFill" id="meterTerms" style="width:0

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 Guard mission actions against missing local-scope helpers

The command-palette mission actions call if(setPanel), loadProcurement(), and reviewClaim() directly from this IIFE, but these identifiers are not in scope here (the implementations are declared inside a different IIFE). Triggering premium-open-*, premium-load-procurement, or premium-claim-discovery therefore throws at runtime instead of navigating/loading, breaking those palette shortcuts.

Useful? React with 👍 / 👎.

@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: 7b07c497a5

ℹ️ 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 on lines +9936 to +9937
<div class="meterRow"><span class="tiny">Mainnet</span><div class="barTrack"><div class="barFill" id="meterMainnet" style="width:0%"></div></div><span class="tiny" id="meterMainnetText">0%</span></div>
<div class="meterRow"><span class="tiny">Terms accepted</span><div class="barTrack"><div class="barFill" id="meterTerms" style="width:0

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Stop defaulting to expired raw fixture deadlines

The default first-live-mainnet preset copies fixed UNIX deadlines from the fixture into the form, so the commit window is hardcoded to April 3, 2026 UTC (1775258936) rather than being computed from current time. Once that date passes, the built-in validation (commitDeadline must be in the future) blocks submission for the default/recommended flow until operators manually edit deadlines or disable raw mode, which makes the primary launch path time-bombed.

Useful? React with 👍 / 👎.

Comment on lines +10502 to +10503
<div class="meterRow"><span class="tiny">Mainnet</span><div class="barTrack"><div class="barFill" id="meterMainnet" style="width:0%"></div></div><span class="tiny" id="meterMainnetText">0%</span></div>
<div class="meterRow"><span class="tiny">Terms accepted</span><div class="barTrack"><div class="barFill" id="meterTerms" style="width:0

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 Bind palette actions to reachable inspector helpers

Even with the new typeof guards, these palette actions are still effectively inert: setPanel, loadProcurement, and reviewClaim are declared inside a separate IIFE later in the file and are never exported to window, so these checks evaluate false in this scope. In practice, premium-load-procurement and premium-claim-discovery silently do nothing instead of opening/loading/claiming as advertised.

Useful? React with 👍 / 👎.

@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: 1de03042bc

ℹ️ 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 on lines +10440 to +10444
</div>
<div class="meter">
<div class="meterRow"><span class="tiny">Connected</span><div class="barTrack"><div class="barFill" id="meterConnected" style="width:0%"></div></div><span class="tiny" id="meterConnectedText">0%</span></div>
<div class="meterRow"><span class="tiny">Mainnet</span><div class="barTrack"><div class="barFill" id="meterMainnet" style="width:0%"></div></div><span class="tiny" id="meterMainnetText">0%</span></div>
<div class="meterRow"><span class="tiny">Terms accepted</span><div class="barTrack"><div class="barFill" id="meterTerms" style="width:0

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 Open inspector tab before loading fixture procurement

Fresh evidence in this revision: the fixture button now guards setPanel/loadProcurement, but when those helpers are out of scope in this IIFE it only scrolls to premiumInspectorPanel and never activates the inspector tab. In the default create view, that panel is hidden, so clicking Open in inspector appears to do nothing instead of loading procurement 0 as advertised.

Useful? React with 👍 / 👎.

Comment on lines +9925 to +9927
<div class="meterRow"><span class="tiny">Connected</span><div class="barTrack"><div class="barFill" id="meterConnected" style="width:0%"></div></div><span class="tiny" id="meterConnectedText">0%</span></div>
<div class="meterRow"><span class="tiny">Mainnet</span><div class="barTrack"><div class="barFill" id="meterMainnet" style="width:0%"></div></div><span class="tiny" id="meterMainnetText">0%</span></div>
<div class="meterRow"><span class="tiny">Terms accepted</span><div class="barTrack"><div class="barFill" id="meterTerms" style="width:0

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 Sync visible duration chip with first-live preset

Applying the default first-live-mainnet preset forces premiumDiscoveryDurationDays to 7, but there is no corresponding chip-state update, so the UI can still show the pre-marked 45 days chip as active. That mismatch makes operators believe they are launching a 45-day configuration while the submitted struct actually uses 7 days until they manually notice/edit the numeric field.

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