Skip to content

vscode: clearer Proof Jobs view, proving status bar item, finish notices - #521

Merged
0xGeorgii merged 4 commits into
feat/vscode-prover-uxfrom
feat/vscode-prover-ux-sidebar
Oct 10, 2026
Merged

0xGeorgii merged 4 commits into
feat/vscode-prover-uxfrom
feat/vscode-prover-ux-sidebar

Conversation

@0xGeorgii

@0xGeorgii 0xGeorgii commented Oct 9, 2026 •

Copy link
Copy Markdown
Contributor

Stacked on #520; this is PR 2 of 3. Review this diff alone. When #520 merges, GitHub retargets this PR to main.

Why

From the #519 test:

  • Job rows were named after the uploaded .v, showed uncoloured icons and raw statuses, and used a plain-text tooltip.
  • Some menus offered the wrong actions: Certificate on failed or canceled jobs, Run Again on Lost.
  • The list polled every 10 s even when idle, and gave no word when a job finished.
  • The toolchain status bar item turned red while proving worked ([FAIL] Platform with a custom inference.path).

Change

Proof Jobs view

  • Rows are named after the source .inf and read like Verified · 15/15 · 2h ago. Icons are coloured codicons, and the tooltip is Markdown. The wording comes from the same jobVerdict as the panel.
  • Jobs are grouped into "In progress" and "Finished" while something runs; the list is flat when filtered.
  • The filter uses plain names, grouped by in progress and finished. The new Show All Proof Jobs command clears it.
  • Error rows are actionable: a rejected key opens Set API Key, a network error retries, and a bad server URL opens the setting.
  • Menus follow the server's rules:
    • Open in Portal is on every job, and opens the certificate tab only for runs that can carry one.
    • Run Again is not offered on Lost (the server re-queues it), while Delete is.
    • The view title gains Prove This File and the key commands.
  • Polling adapts:
    • every 5 s right after a submit;
    • every 10 s while jobs are running, even when the view is hidden;
    • every 60 s when idle and visible;
    • off when idle and hidden;
    • with backoff on errors.

Status bar

  • A proving item shows the running job and its progress (or Proving 2), then the last result. Clicking it opens the job.
  • A watched job that finishes triggers a notification with Open, plus Run Again for failures. No notification appears when the job's panel is already in front.
  • When the doctor reports a failure but infs still resolves a working infc, the toolchain item shows a warning instead of an error. The Configuration view and the log say "works with issues".

Verification

In node:24: typecheck, 492 tests and the grammar tests pass. New tests cover:

  • relativeTime, describeJob, pollDelay and finishedJobs;
  • the proving status state;
  • the degraded toolchain health;
  • the menu matrix (manifest test) and the 25-command schema.

Risk

The job list keeps loading in the background while jobs are running (needed for the status item and notifications), and stops when nothing is running and the view is hidden. jobStatusLabel and jobStatusIconId were removed; their callers now use listVerdict.

🤖 Generated with Claude Code

RetriggerConfidence Score: 5/5

The PR appears safe to merge; no actionable issue remains from this review.

Diagram

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[Refresh jobs] --> B[Load newest page]
    B --> C[Re-read older active jobs]
    C --> D{Read result}
    D -->|Success| E[Use updated job]
    D -->|404| F[Drop deleted job]
    D -->|Other error| G[Keep last known job]
    E --> H[Update tracking]
    F --> H
    G --> H
    H --> I[Update status and finish notices]
    H --> J[Choose next polling delay]
Loading

Reviews (6) · Last reviewed commit: "vscode: keep tracking a running job when..." · Reviewed by Greptile

Comment thread editors/vscode/src/prover/jobsTree.ts Outdated
Comment thread editors/vscode/src/prover/proverStatusBar.ts
Comment thread editors/vscode/src/prover/proverStatusBar.ts
Comment thread editors/vscode/src/prover/jobsTree.ts
Comment thread editors/vscode/src/prover/jobsTree.ts
Comment thread editors/vscode/src/prover/index.ts Outdated
Comment thread editors/vscode/src/prover/proverStatusBar.ts Outdated
@0xGeorgii
0xGeorgii force-pushed the feat/vscode-prover-ux-sidebar branch from 5a22b89 to e356baa Compare October 10, 2026 01:40
Comment thread editors/vscode/src/prover/jobList.ts Outdated
Comment thread editors/vscode/src/prover/proverStatusBar.ts Outdated
@0xGeorgii
0xGeorgii added this pull request to stack #524 October 10, 2026 02:04
@codecov

codecov Bot commented Oct 10, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@0xGeorgii
0xGeorgii force-pushed the feat/vscode-prover-ux-sidebar branch from e356baa to f2d987f Compare October 10, 2026 02:15
Comment thread editors/vscode/src/prover/proverStatusBar.ts Outdated
Comment thread editors/vscode/src/prover/proverStatusBar.ts
@0xGeorgii 0xGeorgii self-assigned this Oct 10, 2026
@0xGeorgii 0xGeorgii added the vscode VSCode extension label Oct 10, 2026
0xGeorgii and others added 3 commits October 10, 2026 21:36
Proof Jobs view:
- Rows are named after the .inf they came from and read like
  "Verified · 15/15 · 2h ago", with coloured codicons from the same
  verdict wording as the job panel and a Markdown tooltip.
- "In progress" and "Finished" groups while something runs (flat when
  filtered); reveal works through real parents.
- The filter offers plain names grouped by in progress / finished, and
  Show All Proof Jobs (new command) clears it.
- Error rows act: a rejected key opens Set API Key, a network error
  retries, a bad server URL opens the setting.
- Menus follow the server: Open in Portal for every job (certificate tab
  only for runs that can carry one), Run Again not for Lost (the server
  re-queues it), Delete also for Lost; the view title gains Prove This
  File and the key commands.
- Polling adapts: 5 s just after a submit, 10 s while jobs move (also
  when hidden), 60 s when idle and visible, off when idle and hidden,
  with backoff on errors.

Status bar:
- A proving item shows the running job and its progress (or "Proving
  2"), then the last result; it opens the job or the view.
- A notice when a watched job finishes, with Open (and Run Again for
  failures), unless its panel is already in front.
- The toolchain item is no longer red when a doctor check fails but infs
  resolved a working infc (e.g. Platform with a custom inference.path):
  it shows a warning that the compiler works, and the Configuration view
  and the log say "works with issues".

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- The status bar, finish notices and polling follow every job, not the
  filtered view: a filtered load also reads the newest page of all jobs,
  and moving jobs pushed off that page by newer ones are re-read one by
  one (at most 10), so they no longer look moving forever.
- Keep polling right after a submit even when the view is hidden and the
  list does not show the new job yet.
- Remember a submitted job's status, so a job that finishes before the
  next load still gets its notice and status bar result.
- When several jobs finish between loads, the status bar shows the newest.
- Forget the last result and watched jobs when the server or key changes.
- No polling after the view is disposed.
- "Open in Portal" opens the job page for jobs without a certificate.
- Offer Run Again in the notice when the returned proof did not compile.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- A click opens the last finished job even after newer jobs push it out
  of the loaded page (clickedJob falls back to the saved result).
- A finish notice answered after the server or account changed is
  ignored, so Open and Run Again never act on the old job against the
  new server.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@0xGeorgii
0xGeorgii force-pushed the feat/vscode-prover-ux-sidebar branch from 4178e87 to 7ceb0c9 Compare October 10, 2026 12:36
Comment thread editors/vscode/src/prover/jobsTree.ts Outdated
Comment thread editors/vscode/src/prover/jobDetailModel.ts Outdated
0xGeorgii added a commit that referenced this pull request Oct 10, 2026
#520 landed on main by rebase (788fa5c), so this branch and main hold the
same code under different commits. Joining them lets the PRs stacked on
this branch (#521) diff against main's history.
…ain for Lost

- A moving job that newer jobs pushed off the first page is re-read on
  each load. A failed read used to drop it from tracking for good, so its
  progress and finish notice were lost (and polling could stop). It now
  keeps the last known copy and tries again on the next load; only a job
  the server deleted (404) is dropped (rereadJob, tested).
- The job panel no longer offers Run Again for a Lost job, matching the
  Proof Jobs menu: the server runs it again by itself, and a second job
  would prove the same file twice. The Lost wording now says so.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@0xGeorgii
0xGeorgii force-pushed the feat/vscode-prover-ux-sidebar branch from 1906811 to f79a65c Compare October 10, 2026 12:56
@0xGeorgii
0xGeorgii merged commit 4265f8f into main Oct 10, 2026
15 checks passed
An error occurred while trying to automatically change base from feat/vscode-prover-ux to main October 10, 2026 13:05
0xGeorgii added a commit that referenced this pull request Oct 10, 2026
#521 landed on main by rebase (4265f8f), so this branch's code is all in
main under different commits. Joining them lets #522, stacked on this
branch, diff against main's history.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

vscode VSCode extension

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant