Skip to content

feat: open trace view in extension managed webview - #819

Merged
hi-ogawa merged 55 commits into
vitest-dev:trace-report-previewfrom
hi-ogawa:trace-webview-prototype
Sep 8, 2026
Merged

hi-ogawa merged 55 commits into
vitest-dev:trace-report-previewfrom
hi-ogawa:trace-webview-prototype

Conversation

@hi-ogawa

@hi-ogawa hi-ogawa commented Sep 7, 2026 •

Copy link
Copy Markdown
Contributor

This PR opens the generated report in an extension-managed webview, so that the editor tab is reused when switching tests and auto reselects/refreshes when the report is regenerated.

Screen.Recording.2026-09-08.at.19.36.03.mov

hi-ogawa-agent and others added 9 commits September 7, 2026 20:17
Co-authored-by: OpenCode (gpt-6-astra) <noreply@opencode.ai>
Co-authored-by: OpenCode (gpt-6-astra) <noreply@opencode.ai>
Co-authored-by: OpenCode (gpt-6-astra) <noreply@opencode.ai>
Co-authored-by: OpenCode (gpt-6-astra) <noreply@opencode.ai>
Co-authored-by: OpenCode (gpt-6-astra) <noreply@opencode.ai>
Co-authored-by: OpenCode (gpt-6-astra) <noreply@opencode.ai>
Co-authored-by: OpenCode (gpt-6-astra) <noreply@opencode.ai>
Co-authored-by: OpenCode (gpt-5.6-sol) <noreply@opencode.ai>
Co-authored-by: OpenCode (gpt-5.6-sol) <noreply@opencode.ai>
hi-ogawa and others added 3 commits September 8, 2026 12:15
Co-authored-by: OpenCode (gpt-5.6-sol) <noreply@opencode.ai>
Co-authored-by: OpenCode (gpt-5.6-sol) <noreply@opencode.ai>
Co-authored-by: OpenCode (gpt-5.6-sol) <noreply@opencode.ai>
hi-ogawa and others added 16 commits September 8, 2026 17:35
Co-authored-by: Codex (GPT-6) <noreply@openai.com>
Co-authored-by: Codex (GPT-6) <noreply@openai.com>
Co-authored-by: Codex (GPT-6) <noreply@openai.com>
Co-authored-by: Codex (GPT-6) <noreply@openai.com>
Co-authored-by: Codex (GPT-6) <noreply@openai.com>
Co-authored-by: Codex (GPT-6) <noreply@openai.com>
Co-authored-by: Codex (GPT-6) <noreply@openai.com>
Co-authored-by: Codex (GPT-6) <noreply@openai.com>
Co-authored-by: Codex (GPT-6) <noreply@openai.com>
Co-authored-by: Codex (GPT-6) <noreply@openai.com>
Co-authored-by: Codex (GPT-6) <noreply@openai.com>
Co-authored-by: Codex (GPT-6) <noreply@openai.com>
Co-authored-by: Codex (GPT-6) <noreply@openai.com>
Co-authored-by: Codex (GPT-6) <noreply@openai.com>
hi-ogawa and others added 27 commits September 8, 2026 18:19
Co-authored-by: Codex (GPT-6) <noreply@openai.com>
Co-authored-by: Codex (GPT-6) <noreply@openai.com>
Co-authored-by: Codex (GPT-6) <noreply@openai.com>
Co-authored-by: Codex (GPT-6) <noreply@openai.com>
Co-authored-by: Codex (GPT-6) <noreply@openai.com>
Co-authored-by: Codex (GPT-6) <noreply@openai.com>
Co-authored-by: Codex (GPT-6) <noreply@openai.com>
Co-authored-by: Codex (GPT-6) <noreply@openai.com>
Co-authored-by: Codex (GPT-6) <noreply@openai.com>
Co-authored-by: Codex (GPT-6) <noreply@openai.com>
Co-authored-by: Codex (GPT-6) <noreply@openai.com>
Co-authored-by: Codex (GPT-6) <noreply@openai.com>
Co-authored-by: Codex (GPT-6) <noreply@openai.com>
Co-authored-by: Codex (GPT-6) <noreply@openai.com>
Co-authored-by: Codex (GPT-6) <noreply@openai.com>
Co-authored-by: Codex (GPT-6) <noreply@openai.com>
Co-authored-by: Codex (GPT-6) <noreply@openai.com>
Co-authored-by: Codex (GPT-6) <noreply@openai.com>
Co-authored-by: Codex (GPT-6) <noreply@openai.com>
Co-authored-by: Codex (GPT-6) <noreply@openai.com>
Co-authored-by: Codex (GPT-6) <noreply@openai.com>
Co-authored-by: Codex (GPT-6) <noreply@openai.com>
@hi-ogawa
hi-ogawa marked this pull request as ready for review September 8, 2026 10:40
@hi-ogawa
hi-ogawa merged commit ee48e92 into vitest-dev:trace-report-preview Sep 8, 2026
sheremet-va pushed a commit that referenced this pull request Sep 9, 2026
* feat: open html trace reports

Co-authored-by: OpenCode (gpt-5.6-sol) <noreply@opencode.ai>

* refactor: scope trace report to run

Co-authored-by: OpenCode (gpt-5.6-sol) <noreply@opencode.ai>

* refactor: derive trace report path

Co-authored-by: OpenCode (gpt-5.6-sol) <noreply@opencode.ai>

* refactor: load worker config over rpc

Co-authored-by: OpenCode (gpt-5.6-sol) <noreply@opencode.ai>

* fix: preserve trace report hash route

Co-authored-by: OpenCode (gpt-5.6-sol) <noreply@opencode.ai>

* refactor: pass worker config on ready

Co-authored-by: OpenCode (gpt-5.6-sol) <noreply@opencode.ai>

* fix: scope trace report menu

Co-authored-by: OpenCode (gpt-5.6-sol) <noreply@opencode.ai>

* refactor: require worker config

Co-authored-by: OpenCode (gpt-5.6-sol) <noreply@opencode.ai>

* refactor: group worker config metadata

Co-authored-by: OpenCode (gpt-5.6-sol) <noreply@opencode.ai>

* refactor: group worker config metadata

Co-authored-by: OpenCode (gpt-5.6-sol) <noreply@opencode.ai>

* refactor: resolve html report path in worker

Co-authored-by: OpenCode (gpt-5.6-sol) <noreply@opencode.ai>

* refactor: align worker config declaration

Co-authored-by: OpenCode (gpt-5.6-sol) <noreply@opencode.ai>

* nit

* refactor: rely on trace command context

Co-authored-by: OpenCode (gpt-5.6-sol) <noreply@opencode.ai>

* docs: clarify browser fallback

Co-authored-by: OpenCode (gpt-5.6-sol) <noreply@opencode.ai>

* refactor: traverse trace tasks with queue

Co-authored-by: OpenCode (gpt-5.6-sol) <noreply@opencode.ai>

* refactor: scope trace queue per file

Co-authored-by: OpenCode (gpt-5.6-sol) <noreply@opencode.ai>

* docs: link trace report conventions

Co-authored-by: OpenCode (gpt-5.6-sol) <noreply@opencode.ai>

* types: narrow trace artifact task

Co-authored-by: OpenCode (gpt-5.6-sol) <noreply@opencode.ai>

* docs: explain artifact type compatibility

Co-authored-by: OpenCode (gpt-5.6-sol) <noreply@opencode.ai>

* docs: explain trace action context

Co-authored-by: OpenCode (gpt-5.6-sol) <noreply@opencode.ai>

* test: add Vitest 5 browser sample

Co-authored-by: OpenCode (gpt-5.6-sol) <noreply@opencode.ai>

* feat: add trace report gutter action

Co-authored-by: OpenCode (gpt-5.6-sol) <noreply@opencode.ai>

* test: pin trace sample to Vitest RC

Co-authored-by: OpenCode (gpt-5.6-sol) <noreply@opencode.ai>

* test: align browser sample dependencies

Co-authored-by: OpenCode (gpt-5.6-sol) <noreply@opencode.ai>

* nit

* refactor: align trace view naming

Co-authored-by: OpenCode (gpt-5.6-sol) <noreply@opencode.ai>

* refactor: name trace view manager instances

Co-authored-by: OpenCode (gpt-5.6-sol) <noreply@opencode.ai>

* refactor: name worker ready metadata

Co-authored-by: OpenCode (gpt-5.6-sol) <noreply@opencode.ai>

* test: use stable Vitest 5 sample

Co-authored-by: OpenCode (gpt-5.6-sol) <noreply@opencode.ai>

* fix: align worker Vite dependency

Co-authored-by: OpenCode (gpt-5.6-sol) <noreply@opencode.ai>

* docs: document Trace View workflow

Co-authored-by: OpenCode (gpt-5.6-sol) <noreply@opencode.ai>

* docs: position Trace View section

Co-authored-by: OpenCode (gpt-5.6-sol) <noreply@opencode.ai>

* docs: use Markdown trace image

Co-authored-by: OpenCode (gpt-5.6-sol) <noreply@opencode.ai>

* docs: store Trace View screenshot

Co-authored-by: OpenCode (gpt-5.6-sol) <noreply@opencode.ai>

* docs: preserve default reporters

Co-authored-by: OpenCode (gpt-5.6-sol) <noreply@opencode.ai>

* nit

* feat: open trace view in extension managed webview  (#819)

* feat: prototype reusable trace webview

Co-authored-by: OpenCode (gpt-6-astra) <noreply@opencode.ai>

* refactor: simplify trace webview navigation

Co-authored-by: OpenCode (gpt-6-astra) <noreply@opencode.ai>

* fix: preserve trace webview origin and allow Google Fonts

Co-authored-by: OpenCode (gpt-6-astra) <noreply@opencode.ai>

* fix: select available traces when refreshing the report

Co-authored-by: OpenCode (gpt-6-astra) <noreply@opencode.ai>

* fix: preserve trace step when refreshing the same test

Co-authored-by: OpenCode (gpt-6-astra) <noreply@opencode.ai>

* docs: simplify trace view description

Co-authored-by: OpenCode (gpt-6-astra) <noreply@opencode.ai>

* docs: remove trace webview prototype note

Co-authored-by: OpenCode (gpt-6-astra) <noreply@opencode.ai>

* fix: remove trace webview padding

Co-authored-by: OpenCode (gpt-5.6-sol) <noreply@opencode.ai>

* fix: restore light trace background

Co-authored-by: OpenCode (gpt-5.6-sol) <noreply@opencode.ai>

* feat: use focused trace layout

Co-authored-by: OpenCode (gpt-5.6-sol) <noreply@opencode.ai>

* docs: update trace view screenshot

Co-authored-by: OpenCode (gpt-5.6-sol) <noreply@opencode.ai>

* fix: preserve trace attempt on refresh

Co-authored-by: OpenCode (gpt-5.6-sol) <noreply@opencode.ai>

* refactor: extract trace webview HTML transform

Co-authored-by: Codex (GPT-6) <noreply@openai.com>

* refactor: build trace selection hash directly

Co-authored-by: Codex (GPT-6) <noreply@openai.com>

* refactor: remove trace metadata cache busting

Co-authored-by: Codex (GPT-6) <noreply@openai.com>

* docs: clarify trace metadata URL comment

Co-authored-by: Codex (GPT-6) <noreply@openai.com>

* docs: clarify trace asset URL comment

Co-authored-by: Codex (GPT-6) <noreply@openai.com>

* refactor: extract trace webview CSP string

Co-authored-by: Codex (GPT-6) <noreply@openai.com>

* refactor: inline webview CSP source

Co-authored-by: Codex (GPT-6) <noreply@openai.com>

* refactor: extract trace webview CSS string

Co-authored-by: Codex (GPT-6) <noreply@openai.com>

* refactor: extract trace webview bootstrap

Co-authored-by: Codex (GPT-6) <noreply@openai.com>

* nit

* nit

* refactor: reload webview when opening traces

Co-authored-by: Codex (GPT-6) <noreply@openai.com>

* refactor: name debounced trace refresh

Co-authored-by: Codex (GPT-6) <noreply@openai.com>

* refactor: simplify trace hash serialization

Co-authored-by: Codex (GPT-6) <noreply@openai.com>

* refactor: clarify trace view URL hash names

Co-authored-by: Codex (GPT-6) <noreply@openai.com>

* refactor: inline trace URL hash serialization

Co-authored-by: Codex (GPT-6) <noreply@openai.com>

* nit

* refactor: separate trace reconciliation from refresh

Co-authored-by: Codex (GPT-6) <noreply@openai.com>

* refactor: reconcile trace target on results update

Co-authored-by: Codex (GPT-6) <noreply@openai.com>

* refactor: type trace selection message

Co-authored-by: Codex (GPT-6) <noreply@openai.com>

* refactor: type trace message receiver

Co-authored-by: Codex (GPT-6) <noreply@openai.com>

* refactor: remove trace message payload validation

Co-authored-by: Codex (GPT-6) <noreply@openai.com>

* nit

* refactor: align trace selection message fields

Co-authored-by: Codex (GPT-6) <noreply@openai.com>

* refactor: follow latest trace report

Co-authored-by: Codex (GPT-6) <noreply@openai.com>

* fix: refresh trace reports from filesystem events

Co-authored-by: Codex (GPT-6) <noreply@openai.com>

* refactor: group active trace view state

Co-authored-by: Codex (GPT-6) <noreply@openai.com>

* refactor: simplify trace target updates

Co-authored-by: Codex (GPT-6) <noreply@openai.com>

* refactor: clarify trace view state naming

Co-authored-by: Codex (GPT-6) <noreply@openai.com>

* refactor: remove redundant trace target assignment

Co-authored-by: Codex (GPT-6) <noreply@openai.com>

* fix: restore latest trace target fallback

Co-authored-by: Codex (GPT-6) <noreply@openai.com>

* fix: select trace from latest run across processes

Co-authored-by: Codex (GPT-6) <noreply@openai.com>

* docs: explain trace view lifecycle steps

Co-authored-by: Codex (GPT-6) <noreply@openai.com>

* docs: clarify trace open action comments

Co-authored-by: Codex (GPT-6) <noreply@openai.com>

* fix: keep selected trace when still available

Co-authored-by: Codex (GPT-6) <noreply@openai.com>

* nit

* refactor: use revision for stale trace loads

Co-authored-by: Codex (GPT-6) <noreply@openai.com>

* refactor: let report UI handle missing traces

Co-authored-by: Codex (GPT-6) <noreply@openai.com>

* refactor: narrow trace report read error handling

Co-authored-by: Codex (GPT-6) <noreply@openai.com>

* nit

* nit

* refactor: simplify trace message revision guard

Co-authored-by: Codex (GPT-6) <noreply@openai.com>

* docs: update trace view screenshot

Co-authored-by: Codex (GPT-6) <noreply@openai.com>

---------

Co-authored-by: hi-ogawa-agent <266689927+hi-ogawa-agent@users.noreply.github.com>
Co-authored-by: OpenCode (gpt-6-astra) <noreply@opencode.ai>
Co-authored-by: Hiroshi Ogawa <4232207+hi-ogawa@users.noreply.github.com>
Co-authored-by: Codex (GPT-6) <noreply@openai.com>

* refactor: simplify trace report loading

Co-authored-by: Codex (GPT-6) <noreply@openai.com>

* chore: remove worker direct Vite dependency

Co-authored-by: Codex (GPT-6) <noreply@openai.com>

* docs: outline trace panel behavior

Co-authored-by: Codex (GPT-6) <noreply@openai.com>

* docs: explain trace view state lifecycle

Co-authored-by: Codex (GPT-6) <noreply@openai.com>

* docs: clarify trace selection preservation

Co-authored-by: Codex (GPT-6) <noreply@openai.com>

* docs: note trace reloads from external runs

Co-authored-by: Codex (GPT-6) <noreply@openai.com>

* refactor: name trace report entries explicitly

Co-authored-by: Codex (GPT-6) <noreply@openai.com>

* docs: combine trace reload explanation

Co-authored-by: Codex (GPT-6) <noreply@openai.com>

* docs: explain how trace selection survives reloads

Co-authored-by: Codex (GPT-6) <noreply@openai.com>

* docs: trim trace panel lifecycle comment

Co-authored-by: Codex (GPT-6) <noreply@openai.com>

* test: smoke test opening trace view

Co-authored-by: Codex (GPT-6) <noreply@openai.com>

* nit

* feat: open trace view from command palette

Co-authored-by: Codex (GPT-6) <noreply@openai.com>

* fix: load worker vitest config types

Co-authored-by: Codex (GPT-6) <noreply@openai.com>

* fix: align worker Vite dependency

Co-authored-by: Codex (GPT-6) <noreply@openai.com>

* revert: open trace view from command palette

Co-authored-by: Codex (GPT-6) <noreply@openai.com>

* test: explain custom menu setting

Co-authored-by: Codex (GPT-6) <noreply@openai.com>

* test: describe trace view smoke steps

Co-authored-by: Codex (GPT-6) <noreply@openai.com>

* test: align trace test item selector

Co-authored-by: Codex (GPT-6) <noreply@openai.com>

* test: align Playwright and install Chromium in CI

Co-authored-by: Codex (GPT-6) <noreply@openai.com>

* test: allow 15 seconds for trace results

Co-authored-by: Codex (GPT-6) <noreply@openai.com>

* refactor: remove trace view revision tracking

Co-authored-by: Codex (GPT-6) <noreply@openai.com>

* fix: allow external trace snapshot resources

Co-authored-by: Codex (GPT-6) <noreply@openai.com>

* fix: follow vscode theme in trace view

Co-authored-by: Codex (GPT-6) <noreply@openai.com>

---------

Co-authored-by: Hiroshi Ogawa <4232207+hi-ogawa@users.noreply.github.com>
Co-authored-by: OpenCode (gpt-5.6-sol) <noreply@opencode.ai>
Co-authored-by: hi-ogawa-agent <266689927+hi-ogawa-agent@users.noreply.github.com>
Co-authored-by: Codex (GPT-6) <noreply@openai.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants