Improve Calibration dashboard fixture demo - #39
Conversation
|
@coderabbitai review |
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: a66a43f64f
ℹ️ 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".
There was a problem hiding this comment.
Pull request overview
This PR improves the Calibration Worker admin dashboard demo by adding a deterministic on-chain fixture seeder for dense registry demo data, updating the dashboard UI to support expandable file-row details and clearer “pending/missing” lifecycle states, and documenting the fixture/evidence boundary.
Changes:
- Add
scripts/seed-calibration-registry-fixtures.mjsplus apnpm demo:seed-calibration-fixturesscript to idempotently seed synthetic registry-only rows and write a public seed summary artifact. - Update the admin Files table rendering to use clickable object IDs that expand per-row details, and render zero receipt/coordinator values as pending/missing states; lower the default dashboard page size to 10.
- Extend docs and tests to capture the new dashboard HTML surface and document seeded fixture counts + boundary.
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| test/calibration-worker.test.mjs | Adds assertions for the new dashboard HTML functions/markers (file-row renderer, expand controls, pending state strings). |
| src/worker/calibration-demo.mjs | Lowers default page limit to 10; adds expandable file rows and lifecycle-state rendering for zero values; adds detail-row markup. |
| scripts/seed-calibration-registry-fixtures.mjs | New idempotent Calibration registry fixture seeder producing deterministic synthetic rows + public summary JSON. |
| package.json | Adds demo:seed-calibration-fixtures script entry. |
| docs/calibration-worker-demo.md | Documents fixture seeding workflow, fixture/evidence boundary, and updated live evidence metadata. |
| artifacts/calibration/fixture-seed-summary.json | Commits a public snapshot of a live fixture-seed run (counts + tx hashes). |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
a66a43f to
49de5f7
Compare
|
@codex review |
|
@copilot review |
|
@coderabbitai review |
Both issues from the previous review are already addressed in the current commit:
No further changes needed. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 49de5f7d26
ℹ️ 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".
49de5f7 to
6013839
Compare
|
@codex review |
|
@copilot review |
|
@coderabbitai review |
No new issues found. The two previously flagged items are resolved:
The remaining changes (expandable row details, lifecycle-state cells for zero hashes, default page limit of 10, idempotent fixture seeder) look correct. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 601383993c
ℹ️ 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".
| await assertOwner({ publicClient, config }); | ||
| await ensureCoordinator({ publicClient, walletClient, config, stdout, txHashes }); | ||
| await ensureRelayer({ publicClient, walletClient, config, stdout, txHashes }); | ||
|
|
||
| const beforeCounts = await readCounts({ publicClient, config }); |
There was a problem hiding this comment.
Capture counts before role mutations
When the signer is not already allowlisted, ensureCoordinator/ensureRelayer submit transactions before beforeCounts is read, so the public summary's counts.before.coordinatorCount or relayerCount already includes mutations from this run. That makes the committed evidence misleading for fresh registries or rotated signers; read beforeCounts before any maybeSend role setup or label these counts as post-role-setup.
Useful? React with 👍 / 👎.
| return Number(object.status ?? object[14]); | ||
| } | ||
|
|
||
| function summarizeObservedFixtures(rowStates, config) { |
There was a problem hiding this comment.
Emit object ID ranges from generated summaries
The committed fixture summary and docs use observedFixtures.objectIds.first/last to substantiate the seeded span (50-97), but this generator never computes that field. Any operator rerunning the documented seeder will overwrite artifacts/calibration/fixture-seed-summary.json without the object range, removing the evidence for the claimed fixture span.
Useful? React with 👍 / 👎.
|
Merge readiness summary for latest head
Merging under explicit user authorization after latest-head CI, local validation, and resolved review threads. |
Summary
Scope Boundary
This PR is demo/admin-dashboard support only. The fixture rows are synthetic registry-only rows for read-only dashboard density and do not claim real FOC provider storage. Object
1remains the provider-backed evidence object documented indocs/calibration-worker-demo.md.Live Worker already deployed for manual verification:
63d11d7e-6cc1-41af-8c1b-7056a3b1d8e8Validation
node --check scripts/seed-calibration-registry-fixtures.mjsnode --check src/worker/calibration-demo.mjsnode --test test/calibration-worker.test.mjspnpm lintpnpm ops:validatepnpm ops:smoke -- --iterations 3pnpm testpnpm worker:dry-rungit diff --checkLive Evidence
artifacts/calibration/fixture-seed-summary.json2026-07-demo-grid-durable,requestExpiresAt=4102444800(2100-01-01 UTC)objectCount=97,accountCount=49,datasetRecordCount=17,coordinatorCount=1,relayerCount=150..97, 8 committed, 8 uploading, 32 requested, no missing rows, no expiry mismatches/adminHTML includesrenderFileRows,data-object-id,Pending receipt, andNot assignedCaveats