Repository navigation
vscode: redesign the proof job panel - #520
Merged
Merged
Conversation
The panel now says what a run means in plain words and keeps its state
while it updates.
- One wording source (jobVerdict) over the unchanged fail-closed claim
rules: a proof is claimed only with a matching, fully accepted
independent-verifier result. Raw statuses, enums and error codes move
to a collapsed Technical details section.
- A compile failure shows the first Rocq error from build.log inline,
with Go to line, Open build log and a hint for the module-named-after-
the-file clash ("clamp already exists").
- Run steps (Submitted, Worker, Proving, Verifying, result) come from
the event history; a failed run is marked where it stopped.
- Obligations: plain kind and statement labels, template or agent, time,
goal, source line; grouped when there are more than ten. A closed
obligation is "Proved" only when the run claims a proof.
- Activity replaces the flat event log: steps, agent transcript and
problems, grouped by obligation, with a Steps/Agent/All filter and a
text filter. Heartbeats are no longer listed.
- Live elapsed/remaining time against the budget; deadline from the job,
the job.queued event, or submission + budget.
- The page is set once and patched by region, so focus, open sections,
filters and scroll survive updates; loading states make no claim;
panels are restored after a window reload; the tab has an icon.
- Native look: theme colours only (no hard-coded badge text colours),
inline codicon-style SVG icons, high-contrast and reduced-motion rules,
focus outlines, ARIA roles for the verdict, progress and filters.
- test/visual/render.ts renders every state under dark, light and both
high-contrast themes for review (not packaged).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
"Go to line N" on an obligation opened the line the server reported, which
is the proof hole ((* TODO: fill the proof *)) in the submitted file, even
for a proved obligation. A proved obligation now links to its proof in the
returned file ("Go to proof"); any other links to its theorem statement in
the submitted file ("Go to theorem"). Lines differ between the two files,
so the host finds the theorem by name and falls back to the reported line.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
0xGeorgii
added this pull request to stack #524
October 10, 2026 02:04
- Claim structural validity only with a matching result the independent
verifier fully accepted, as the portal does; while it loads, when it
fails to load or without a verifier verdict, no claim is made.
- Title the closed-obligation group like its rows ("Proved" only with a
claim, else "Closed" or "Closed — not verified").
- Skip Rocq warnings that precede the error in build.log.
- "Go to line" uses the local .v only when its open buffer still matches
the upload, not just the file on disk.
- Retry the build log on the next refresh after a failed read.
- Send the final activity after the history catch-up even at the row cap.
- Send the clock when it changes on its own (end time from a late event).
- "Open in Portal" from the panel opens the job page, not the certificate.
- Theorem links ignore declarations inside comments and strings.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Follow-up to #519; this is PR 1 of 3. The next two cover the Proof Jobs view and status bar, then the prove flow and docs.
Why
The local test of #519 against the deployed prover showed the panel was hard to read:
compile_failed: file did not compile (see build.log). The real cause (clamp already exists) took a database query to find.StructuralOnly,PartialSuccess,prove), and the trust banners used internal terms ("DTOs do not agree", "persisted mode").Change
jobVerdict.tsis the single source of wording (the tree and status bar use it in the next PR). The fail-closed claim rules are unchanged; the evidence checks moved verbatim intoverifierEvidence.ts. A proof is claimed only with a matching result that the independent verifier fully accepted. Raw codes now appear only under a collapsed Technical details section.build.logand shows the first Rocq error inline, with Go to line N and Open build log. Go to line opens the local.vwhen it is unchanged, otherwise the uploaded copy. When the error is<stem> already exists, a hint explains the module-named-after-the-file clash.job.queuedevent, else submission time plus budget.readyhandshake → snapshot → region diffs). Loading states make no claim. Panels are restored after a window reload (WebviewPanelSerializer,onWebviewPanel:inference.proofJob), and the tab has an icon.#fff/#1e1e1ebadge text is gone), inline codicon-style SVG icons, high-contrast and reduced-motion rules, focus outlines, and ARIA roles for the verdict, progress and filters.test/visual/render.tsrenders every state under dark, light and both high-contrast themes. It lives undertest/, so it is not packaged.No new packaged files: the
.vsixkeeps the same 11 entries.Verification
In
node:24:npx tsc --noEmit -p .;npm test(482 pass);npm run "test syntax"(93 pass);npm run package, then the CI file-list check.New tests:
clamp already existslog);I also rendered all 12 states × 4 themes and reviewed the screenshots.
Risk
The webview patch protocol is new, and the full snapshot on
readykeeps it recoverable. Claim rules are not edited, and the property test guards them.ProveOutcomeandSubmitOutcomegain fields (vSha256,sha256) used to remember which local file a job came from.🤖 Generated with Claude Code

Confidence Score: 5/5
The PR appears safe to merge; the remaining browser-test suggestion is non-blocking.Findings
Diagram
sequenceDiagram participant Host as Extension participant Page as Proof-job page participant Server as Proof server Host->>Page: Set page shell Page->>Host: ready Host->>Page: snapshot (regions, activity, clock) Server-->>Host: Job detail and events Host->>Page: Changed regions Host->>Page: New activity Host->>Page: Changed clock Page->>Page: Restore open sections and focusReviews (3) · Last reviewed commit: "vscode: address review of the job panel" · Reviewed by Greptile