Repository navigation
feat: open trace view in extension managed webview - #819
Merged
hi-ogawa merged 55 commits intoSep 8, 2026
Merged
Conversation
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>
4 of 9 tasks
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>
4 of 9 tasks
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>
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
marked this pull request as ready for review
September 8, 2026 10:40
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>
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.
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