Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 10 additions & 4 deletions ui/agijobmanager_genesis_job_mainnet_2026-03-05-v41.html
Original file line number Diff line number Diff line change
Expand Up @@ -2757,6 +2757,7 @@ <h2 style="margin:0 0 10px">Summary</h2>
<h2 style="margin:0 0 10px">My Stats</h2>
<div class="muted">My $AGIALPHA Balance: <b><span id="agiBalance">0</span></b></div>
<div class="muted">My Reputation: <b><span id="myReputation">0</span></b></div>
<div class="muted">Historical score preview: <b><span id="myHistoricalScore">—</span></b> <span class="tiny">(live getter when available)</span></div>
<div class="muted">Jobs I posted: <b><span id="myJobs">0</span></b></div>
<div style="margin-top:10px">
<span class="pill" id="agentPill">Agent ENS: not verified</span>
Expand Down Expand Up @@ -3920,7 +3921,8 @@ <h2 style="margin:0 0 10px">Contact & Legal</h2>
{"inputs":[{"internalType":"uint256","name":"_jobId","type":"uint256"}],"name":"expireJob","outputs":[],"stateMutability":"nonpayable","type":"function"},
{"inputs":[{"internalType":"uint256","name":"_jobId","type":"uint256"}],"name":"cancelJob","outputs":[],"stateMutability":"nonpayable","type":"function"},
{"inputs":[{"internalType":"uint256","name":"jobId","type":"uint256"},{"internalType":"bool","name":"burnFuses","type":"bool"}],"name":"lockJobENS","outputs":[],"stateMutability":"nonpayable","type":"function"},
{"inputs":[{"internalType":"address","name":"agent","type":"address"}],"name":"getHighestPayoutPercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}
{"inputs":[{"internalType":"address","name":"agent","type":"address"}],"name":"getHighestPayoutPercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},
{"inputs":[{"internalType":"address","name":"agent","type":"address"}],"name":"previewHistoricalScore","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}
,
{"inputs":[],"name":"agentBond","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},
{"inputs":[],"name":"agentBondBps","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},
Expand Down Expand Up @@ -4256,6 +4258,7 @@ <h2 style="margin:0 0 10px">Contact & Legal</h2>
if(tbody) tbody.innerHTML = '<tr><td colspan="8" class="muted">Runtime context reset. Reconnect and refresh to load live jobs.</td></tr>';
if(el('jobsVisibleSummary')) el('jobsVisibleSummary').textContent = 'Runtime context reset; live job index not loaded.';
if(el('myJobs')) el('myJobs').textContent = '—';
if(el('myHistoricalScore')) el('myHistoricalScore').textContent = '—';
if(el('managerOwnerAddress')) el('managerOwnerAddress').textContent = '—';
if(el('ensOwnerAddress')) el('ensOwnerAddress').textContent = '—';
if(el('managerModeratorPosture')) el('managerModeratorPosture').textContent = 'Runtime context reset';
Expand Down Expand Up @@ -4789,7 +4792,7 @@ <h2 style="margin:0 0 10px">Contact & Legal</h2>
if(!hasAcceptedTerms){ setToast('Accept the Terms & Conditions before sending any write transaction.', 'warn'); return false; }
return true;
}
const UI_CONTINUITY_KEY = 'agijobmanagerprime.v40.uiContinuity';
const UI_CONTINUITY_KEY = 'agijobmanagerprime.v41.uiContinuity';
const UI_CONTINUITY_FIELDS = ['termsAccepted','alphaTermsAcceptedTop','preflightTermsAccepted','agentSub','clubSub','mintAlphaLabel','premiumActionProcurementId','premiumActionSubdomain','premiumActionProof','premiumActionCommitment','premiumActionSalt','premiumActionApplicationUri','premiumActionFinalist','premiumActionScore','premiumInspectorProcurementId','premiumInspectorJobId','premiumDiscoveryApplicationInspectProcurementId','premiumDiscoveryApplicationInspectAgent','premiumAttachJobId','premiumDiscoveryJobSpecURI','premiumDiscoveryDetails'];
const UI_CONTINUITY_TOGGLES = ['alphaEnsExpertDetails'];
function continuityLoad(){
Expand Down Expand Up @@ -5333,7 +5336,7 @@ <h2 style="margin:0 0 10px">Contact & Legal</h2>
ensPreview: predictedEns || null,
ensURI: predictedEnsUri && !predictedEnsUri.includes("—") ? predictedEnsUri : null,
generatedAt: nowIso(),
createdVia: "AGIJobManager Prime console v40.0"
createdVia: "AGIJobManager Prime console v41.0"
}
};
Object.keys(obj).forEach(k=>{ if(obj[k]===undefined) delete obj[k]; });
Expand Down Expand Up @@ -6787,6 +6790,7 @@ <h2 style="margin:0 0 10px">Contact & Legal</h2>
el("challengePeriod").textContent = "—";
el("agiBalance").textContent = "—";
el("myReputation").textContent = "—";
if(el("myHistoricalScore")) el("myHistoricalScore").textContent = "—";
el("myJobs").textContent = "—";
const tbody = el("jobsBody");
if(tbody) tbody.innerHTML = '<tr><td colspan="8" class="muted">Switch to Ethereum Mainnet (chainId 1) to load jobs.</td></tr>';
Expand Down Expand Up @@ -6905,6 +6909,8 @@ <h2 style="margin:0 0 10px">Contact & Legal</h2>

const rep = await agiJobManager.methods.reputation(userAccount).call();
el("myReputation").textContent = rep;
const historicalRead = await runSafeReadStep('previewHistoricalScore', ()=>agiJobManager.methods.previewHistoricalScore(userAccount).call(), {silent:true});
el("myHistoricalScore").textContent = historicalRead?.__safeReadError ? 'Unavailable on this ABI/runtime' : String(historicalRead);

el("myJobs").textContent = "—";
updateCalculator();
Expand Down Expand Up @@ -8339,7 +8345,7 @@ <h2 style="margin:0 0 10px">Contact & Legal</h2>
['ENS URI', ens.ensUri ? safeLink(ens.ensUri) : '—'],
['ENS node', escapeHtml(ens.node || '—')],
['Resolver', escapeHtml(ens.resolverAddr || '—')],
['Token URI mode', 'Unavailable in ENSJobPages public ABI (v40)'],
['Token URI mode', 'Unavailable in ENSJobPages public ABI (v41)'],
['schema', escapeHtml(ens.texts?.schema || '—')], ['agijobs.spec.public', ens.texts?.['agijobs.spec.public'] ? safeLink(ens.texts['agijobs.spec.public']) : '—'],
['agijobs.completion.public', ens.texts?.['agijobs.completion.public'] ? safeLink(ens.texts['agijobs.completion.public']) : '—']
].map(([k,v])=>`<div class="ensRecord"><div class="k">${k}</div><div class="v">${v}</div></div>`).join('');
Expand Down
8 changes: 8 additions & 0 deletions ui/tests/standaloneV41.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,4 +26,12 @@ describe('standalone v41 artifact', () => {
expect(html).toContain('syncIdentityByLabel(label)');
expect(html).toContain('soulbound identity');
});

it('uses v41 continuity metadata and exposes historical-score read provenance', () => {
const html = fs.readFileSync(file, 'utf8');
expect(html).toContain('agijobmanagerprime.v41.uiContinuity');
expect(html).toContain('previewHistoricalScore');
expect(html).toContain('Historical score preview');
expect(html).not.toContain('Unavailable in ENSJobPages public ABI (v40)');
});
});
Loading