Repository navigation
Feature/verification api gui - #126
Conversation
…y split endpoints; consolidated data models
# Conflicts: # frontend/app/pages/index.vue
…ious improvements and changes still expected to be made to dial this in
…o standardized badge sizing, and fixed range slider toggle icon
# Conflicts: # frontend/app/components/AppFooter.vue # frontend/app/plugins/auth0.client.ts
… verification searching. One final backend change required to finish view
PR #126 Review: Feature/Verification API GUI (Backend & API Contract)VerdictNot ready to merge. The UI work is substantial and mostly well wired, but it's coded against a backend contract that doesn't exist yet. It is also incompatible with the backend PR it's waiting on (#136). Once #136 merges, the "Lookup Past Verifications" tab breaks.
Merge-Readiness Status
Endpoint Contract Check
Blockers1. Contract mismatch with #136 breaks the Lookup tab
2. The backend half isn't mergedOn
The page doesn't crash, because it falls back to High-Severity Findings3. A stale report can be shown under a different workflow IDLocation:
4. Polling never stops on errors and has no in-flight guardLocation:
5.
|
Resolves the frontend/app/app.config.ts conflict as the union of both sides: main's select/table lenis-prevent slots plus this branch's overscroll-contain body/container slots on modal, drawer and slideover. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
PR #126 Follow-up Review (head
|
Listing: parse the /verification_ids contract proposed on #136 (verifications: VerificationSummary[]) and use its verify_type, status and created. The omex_hash archive filter is sent to the server instead of applied in the browser, omex_hash is no longer sent to /verify/omex, and the optimistic record updates are gone. Backends that only list IDs still work: type falls back to the default ID prefixes and an archive filter is reported as unavailable rather than empty. Reports: switching reports resets per-report state, and late responses for another workflow, compatibility check or listing page are dropped. Polling halts on lasting 4xx errors (with a Retry button), backs off on server, network and retryable 4xx errors, and never overlaps requests. The Auth0 plugin waits for session restore before sending Platform requests, so page-load requests carry the user's token. Concordance: show "—" with a notice when nothing was compared, round down so 100% means every variable agreed, and colour the summary and heatmap green only on full agreement. The heatmap legend now matches the cells. Navigation: navigate before switching tabs so workflow_id and omex_hash reach the URL, and close the report when Back removes workflow_id. include_outputs now defaults to false, matching the backend. Tests: tests/verification-analytics.test.mjs and tests/verification-listing.test.mjs run via npm run test:verification and a frontend-ci step. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…derived OMEX hash Settles the GET /verification_ids contract agreed on PR #136 so the backend and the #126 GUI converge on one shape: - `verifications: list[VerificationSummary]` alongside `verification_ids`, same rows, same order: workflow_id, verify_type, created (UTC with offset), omex_hash, status. Flat, not grouped per page; never carries owner_sub. `records`/`run_ids`/`VerificationRun` are gone; `VerificationRecord` stays the ledger model (no `VerificationLedgerRecord` rename). - `status` is a `VerifyWorkflowStatus`, null until GET /verify/{id} first sees the workflow finished. Recorded once via a guarded `update_one({"status": None})` after authorization, on the recovered paths too; nothing is written at insert; a ledger error never fails the GET. - `omex_hash` is pattern-validated (`^[0-9a-f]{32}$`, else 422) on both routes. POST /verify/runs derives it from the platform's cached BiosimulatorWorkflowRun records; a caller-supplied hash is stored only for authenticated callers and only when nothing is cached, never when cached runs span archives. - Compound `(omex_hash, created, workflow_id)` index serves filtered pages. - Tests: 16 exact-dict assertions updated; Mongo-backed filter/scoping/ pagination/key-set/write-once tests; route-level 422, hash-rule and terminal-status tests. Ruff F401s cleared, OpenAPI regenerated, backend/CLAUDE.md updated. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
Findings from using the verify API directly (from compose-api, 2026-10-22), relevant to this GUI and to Novrus's "100% concordance for a run that compared nothing" finding. 1.
|
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
@jcschaff Thanks, this is a clear diagnosis, and it explains the empty reports. A status update first, then two corrections and four questions for your #126 status: I merged current Confirmed
Corrections
Questions for the failed-simulators PR
GUI follow-upI agree with both suggestions and will do them in one follow-up once your PR is up:
|
…to feature/verification-api-gui
…n id or omex hash
Introduces the Verification API GUI to the main branch along with its corresponding changes
Should remain a draft until the additional verification API endpoints are merged into main.