Panda Review
Panda Review is a VS Code extension for reviewing Markdown and source code in a rendered, source-aware preview. It supports local Markdown comments and hosted pull request workflows without adding review metadata to PR files.
Current pull request support: Azure DevOps (ADO) PR review supports Markdown and common source-code files, including C#, C/C++, TypeScript, JavaScript, Python, Java, Go, Rust, Kotlin, Ruby, PowerShell, shell, SQL, HTML, CSS, XML, YAML, and JSON. GitHub pull requests support public review with limited comment mutations. GitLab is not currently supported.
Feature Overview
Markdown Preview and Navigation
- Source-aware rendered preview with continuous two-way scroll synchronization.
- Heading index with a VS Code document-symbol fallback, comment list, and review timeline for navigating large documents.
- Mermaid rendering with an interactive zoom/pan view and element-level comment targets.
- Syntax-highlighted code blocks, local image support, and zoom controls.
- Stable source-line navigation after images and diagrams change the page layout.
Local Markdown Review
- Create comments from selected preview text or a source line.
- Store self-contained
[[CM-...]] and [[CR-...]] markers in the Markdown file.
- View, edit, delete, copy, and navigate comments from the review preview.
- Drag an open comment thread by its header to keep reviewed content visible.
- Keep the source editor and rendered review aligned while reading or editing.
- Ctrl+Click on Windows/Linux or Cmd+Click on macOS to open referenced workspace files, line targets, and exact code symbols; PR reviews fall back to exact identifier matches in changed files when local symbol indexing has no match, and let you choose when multiple locations remain.
- Each open local review starts at Revision 1 and records distinct content accepted by a preview refresh as the next session-local revision. Choose Recent revision or Local Git (HEAD) as the baseline, then use Show Diff to toggle added or replaced content and the overview ruler in the rendered review. Reopening the review starts a new revision history.
Hosted Pull Request Review
- Open an Azure DevOps or GitHub PR URL directly on its first changed reviewable file, or open a specific file URL.
- GitHub support currently provides public PR review: changed files, current/base content, commit-backed revisions, inline review comment visibility, and create/edit/reply/delete comment operations. GitHub comment resolution, monitor loading, source commits, and mention search are not yet supported.
- Review source code as syntax-highlighted HTML with line numbers and exact source-line selection mapping.
- Browse changed files in a native VS Code Explorer tree, with collapsible directories, new-file and rename indicators, unresolved comment counts, active-file highlighting, and a forced provider refresh action.
- See the total number of Active, Pending, and Won't Fix comments across every file in the pull request directly in the review toolbar, and open the all-PR comments list to switch files and focus a selected thread.
- Review added and removed source lines inline while keeping comments anchored to current-file lines, with identifiable badges on bordered comment ranges; CRLF/LF-only differences are ignored.
- Read, create, edit, reply to, delete, and set PR comments to Active, Pending, Won't Fix, or Closed. Use the compact Keep track action to watch a thread for later replies or resolution even when you did not author it. Closed comments stay hidden from the comments list.
- Filter the all-PR comments list by Active, Pending, or Won't Fix state and by author; the state filter defaults to Active.
- Send an individual review comment and its replies to Copilot Chat from the compact action beside Delete, with a prompt to implement and validate the requested change.
- Start a complete Copilot review from the Auto Review toolbar button. Panda supplies authoritative PR diffs and collects findings as unpublished comments for approval.
- Review, edit, delete, and selectively publish generated pending comments with source-line and full-line range anchors.
- Highlight comment selections and Mermaid element comments in the rendered document.
- On Azure DevOps, search users with mention autocomplete and display participant avatars.
- Switch among PR revisions while preserving revision-scoped content and comment positions; newly detected revisions appear in the dropdown without changing the displayed revision.
- Refresh the PR revision list immediately from the compact action beside the revision picker, while background polling checks revisions before slower comment hydration.
- For Markdown files, use Hide Diff or Show Diff to toggle added/replaced-content highlights in the rendered review. New documents start with diff highlighting visible. Source-code files show additions and removals inline by default.
- Navigate long pull request files from a clickable right-edge overview of changed regions, with green markers for additions, red markers for removals, and current and base content prefetched for faster markers.
- Open referenced files directly from preview links and code identifiers. Changed PR files take priority over matching workspace files, including a unique filename-stem match, and switch the active review before jumping to a referenced line.
- Keep the review preview and modified side of the PR diff continuously synchronized in both directions.
- Auto-refresh comments while the review is visible and VS Code is focused, and optionally notify when new threads or replies arrive.
- Open Azure DevOps source-code reviews against the PR merge base when available, with target-tip fallback, cached base content, deduplicated file discovery, non-overlapping refreshes, and bounded nearby-file prefetching.
- In a PR review, Ctrl+F opens only PR-wide search, not the current-file find widget; the Search PR toolbar button opens the same case-insensitive literal-text search across the current content of every changed reviewable, non-deleted file at Latest, and selected preview text prefills the query.
- In a local review, use Ctrl+F for VS Code's native search within the current preview, and open new review tabs in the active editor group.
- Open an editable original-to-local diff beside the review and commit changes as a new PR revision. A matching open workspace file is used directly; otherwise the extension creates a temporary file.
- Switch between the immutable Online revision and an unpublished Local draft.
GitLab support is planned but not implemented. Known binary formats are excluded from the file picker; unrecognized text extensions remain reviewable as escaped plaintext without syntax highlighting.
Quick Start
Local Review
Open a Markdown file and run Panda Review from the editor context menu, Explorer context menu, or Command Palette.

Open a Pull Request
Run Panda Review: Open Pull Request File from the Command Palette, then paste an Azure DevOps PR overview URL or a supported file URL. The review opens the requested file, or the first changed reviewable file when using an overview URL. VS Code Explorer opens Pull Request Files automatically so you can navigate the complete PR by directory.
In Pull Request Files, select any file to switch the existing review panel. Use the Refresh Pull Request Files title action to force a reload of revisions, comments, and changed-file metadata from the provider. Added files use a green status icon and +; renamed files use a (rename) prefix while retaining their natural filename sort order; files with actionable Active or Pending comments use a discussion icon and a compact count. An added file with comments combines both states as + N. Hover over a file for its full path and status details.

Monitor Project Pull Requests
Run Panda Review: Monitor Project Pull Requests and paste any Azure DevOps URL containing the organization and project on first use. The monitor opens the last saved project directly on later uses; select Change project in the monitor to switch it. It builds an AI-picked TODO queue from actionable pull requests across every repository in that project. After Azure DevOps identifies the authenticated user, Panda adds a project-scoped ME group that initially scopes the queue to active pull requests authored by that user. It does not select ME automatically or replace an existing case-insensitive ME group; deleting it causes the default to return on the next authenticated load. Use Add to create a project-scoped monitor group from search text, repositories, searchable authors and reviewers, states, tracking states, interest colors, and draft visibility. Repository choices come from the Azure DevOps project catalog, including repositories without a pull request in the currently loaded pages. Type to filter repositories, then use the arrow keys and Enter or click a result to add it; remove selections from the rows below, or leave the selection empty to include all repositories. Select a group to apply it immediately, or use Edit to update or delete its saved conditions. Author and reviewer conditions accept multiple names or email addresses; leaving them empty includes everyone without loading an organization-wide user list. Review and interest records used by TODO scoring are stored locally per project and PR.
The built-in ME group applies its author filter in the webview to monitor pages loaded so far. A short visible ME list is therefore provisional while paging continues; it does not mean Panda has already fetched every active pull request authored by the authenticated user.
The monitor's active-comment counts treat both Active and Pending Azure DevOps threads as actionable, so either status can place an otherwise ineligible loaded pull request in the TODO queue. When the authenticated user authored that pull request, at least one active discussion also adds the explainable active discussion on your PR (+25) priority factor. Reviewer approvals lower priority, and approval by the authenticated user lowers it further. A completed review automatically returns to Open after Panda observes a newer PR iteration or comment update. Late hydration applies these signals and re-sorts the queue.
The #panda-review Copilot tool can access the latest loaded monitor snapshot for date-, author-, reviewer-, repository-, and status-based summaries. Only monitor pages loaded so far are included.
Set pandamarkdownreview.sharedReviewGuidancePath to a writable shared folder, including one inside OneDrive or a FUSE-style synced location. Each machine creates and writes only its own review-experience-<hash>.md and pull-request-todo-state-<hash>.json files, where the stable hash is derived from the VS Code machine identity. Auto Review reads every machine experience in deterministic filename order whenever it starts and includes the combined content as required instructions. The Pull Request Monitor merges the newest completion or reopen event for each project-scoped TODO item whenever the monitor loads, so checked state follows the shared folder across machines; local VS Code state remains available when the folder cannot be read. Existing shared-review-guidance.md content is also read for compatibility but is no longer created or appended. Panda keeps a shared jobs ledger in the same folder. If the folder path is empty or invalid, Panda opens the monitor or pull-review window first and prompts for the folder in the background. The monitor also has a Shared guidance button to configure or change the folder at any time. Unreadable experience files are omitted. When the monitor detects a new reply to one of your PR comments, it runs a background task and appends the reply text as a clearly marked, reviewable candidate to that machine's experience file. In a PR comment dialog, use Investigate to force the same job for that specific comment and its replies; if no folder is available after prompting, the dialog reports that no investigation job was run. Each automatic reply event or manual investigation is claimed by its event ID in the shared ledger, so multiple Panda instances do not process it twice. The Guidance work monitor tab is project/shared-folder scoped rather than group scoped, so it hides the group selector, refreshes the shared jobs/*.json ledger about every 15 seconds while active, and uses distinct status pills for running, completed, skipped, and failed work. Existing experience is preserved. This first version extracts reviewer feedback transparently and does not claim that Copilot has analyzed or approved the candidate.
Select AI monitor when saving a monitor group to enable AI-assisted scoring for that group. Selecting an AI-enabled group or pressing Generate AI sends its loaded scope and focus to VS Code's language-model API in the extension host; opening the monitor alone does not call the model, generation does not open or add messages to the user's Chat window, and model-generated recommendation prose is not displayed. The host accepts only integer score adjustments from -20 through 20 for loaded repository/PR identities and ignores malformed, duplicate, unknown, or out-of-range entries. Valid adjustments change the TODO effective score before its existing 0-100 clamp, so the queue immediately rerenders and re-sorts. Requests are cancelled when the group, project, full snapshot, or monitor changes. AI adjustments clear when a new request starts, generation is cancelled or fails, or AI becomes unavailable, and they are never persisted. When VS Code has no usable language model or Panda lacks permission, the monitor disables its AI controls. Prompts use only monitor pages loaded when generation starts and are truncated when necessary to fit the selected model. The TODO tab follows the active group’s filters and shows AI-picked actionable matching pull requests plus tracked activity. Review rows show who raised the PR, its active-comment count (or unknown when unavailable), and its total approval count. Resolved-activity rows show Raised by <PR creator> without the review-only count badges. Follow-up rows show the known reply author and message without PR-creator metadata; resolved rows also show the latest attributable reply context, and show no reply-author label when none is available. Each item shows a 0-100 effective review score and sorts by score descending, then newest first. Its deterministic base considers the Reviewed marker, your approval when identity is known, completed reviewer coverage, waiting and rejected reviewers, active discussions, PR age, and reviewable changed-file count; replies needing follow-up and resolved activity receive explicit boosts, and any active numeric AI adjustment appears in expanded score factors. File count is neutral and marked pending until expansion loads it, then the score and order update. Check an item to move it from Open to Completed; uncheck it to resume the work, with completion persisted per project. Each item explains why it is present and uses amber for review work, red for follow-up, and blue for resolved activity. A PR with open tracked activity appears as an activity item rather than a duplicate review row; after that activity is completed, an otherwise actionable review row returns. Use + or - on any PR-backed TODO item to show or hide its score factors, creator, full title and description, every named reviewer's vote state, lazily loaded Azure DevOps review-round count, discussion volume, and threads with at least three actual replies. Select Open on an item to inspect that PR. Scroll to load more pages.
Tracked resolved TODO activity remains visible regardless of who wrote the latest reply because Azure DevOps does not identify who changed the thread status. Latest-reply identity is presentation context only. An open tracked activity item replaces the PR's normal review row; after that activity is completed, an otherwise actionable review row returns. Panda retains completed resolved activity for seven days and removes it from the TODO page and persisted monitor activity on the next monitor or activity refresh.
Panda keeps separate preview sessions for different pull requests while reusing one panel as you move among files in the same PR. GitHub and Azure DevOps HTTP requests time out after 30 seconds so a stalled network call cannot permanently block background refresh. Background revision checks run only while the review panel is visible and the VS Code window is focused and update available revisions without opening a switch prompt. Skipped intervals are not queued; when VS Code regains focus, an active visible review whose auto-refresh staleness timestamp is at least one interval old immediately attempts one guarded refresh. The timestamp is initialized when polling starts and advances after each successful automatic cycle. Explicit review actions can still prompt when a newer revision is available.
In a PR review, press Ctrl+F or select the Search PR toolbar button to search the provider's Latest content for all changed reviewable files except deletions. Either trigger prefills the query with selected preview text when available. Results stream into a VS Code Quick Pick as files finish, with at most 50 matches per file and 500 overall; one file failure does not stop the remaining search. Dismissing the picker or closing the review cancels the search. Selecting a result switches the review to Latest, opens its file, and navigates to the matching line. Ctrl+F in a local review continues to use VS Code's native find for the current preview.
The monitor tracks new direct replies and open-to-resolved transitions on comments authored by the authenticated user or explicitly marked Keep track, and surfaces them as TODO items. Tracked items receive a distinct outline and badge. Newly captured reply and resolved-activity items show the original comment in a two-line preview; expanding the item shows the full conversation captured when the event was detected. Older persisted activity may omit this context. Reply items show the reply author and text; when a reply and resolution arrive together, one resolved item shows the latest reply and identifies its author as resolution context. Use Open on the TODO item to open the PR file and jump directly to that comment thread. The first observation creates a silent baseline, and later refreshes add newly detected activity. Azure DevOps thread data identifies reply authors but does not identify who changed a thread's resolution status, so Panda does not present the latest reply author as an authoritative resolver.
The monitor initially loads up to 20 pull requests for the primary active status and up to 50 for secondary selected statuses. While TODO is active, Panda requests and appends all remaining pages sequentially without requiring scrolling. Switching to Guidance work pauses that automatic paging away from the scroll boundary; returning to TODO resumes it. This keeps the first monitor view responsive while allowing TODO and ME filtering to reach later project-wide results.
Commands
- Panda Review - open a rendered review for a local Markdown file.
- Panda Review: Open Pull Request File - open an Azure DevOps PR Markdown or source-code file for review.
- Panda Review: Monitor Project Pull Requests - build and filter a review TODO queue across an Azure DevOps project.
- Commit PR Revision - push an edited PR source document as a new revision. This command appears in the edit-source title bar.
The first two commands are also available from Markdown editor and Explorer context menus where applicable.
PR Review Workflow
Run Panda Review: Open Pull Request File.
Paste an Azure DevOps PR overview URL or PR file URL, for example:
https://dev.azure.com/example/project/_git/repository/pullrequest/123
If the URL does not identify a file, the first changed reviewable file opens automatically.
Authenticate if prompted. The extension first tries Git credentials, then a stored PAT, then prompts for a PAT.
Select text in the preview and use the context menu to create a PR comment.
Use Pull Request Files in VS Code Explorer to inspect the directory tree, new files, and unresolved comment counts, then select a file to switch the active review.
Use the revision picker to review a specific PR iteration and its anchored comments.
Select Auto Review to submit #panda-review to Copilot Chat. Panda supplies changed-file diffs directly from Azure DevOps even when no matching repository is open. For supporting code, Copilot verifies and uses the matching repository; if required context or repository access is unavailable, it asks you to open, configure, or repair the repository before continuing. Inspect generated findings in Pending Comments, then publish selected comments to Azure DevOps.
Open a comment and select the Copilot icon beside Delete to ask Copilot Chat to implement that thread's requested change.
For Markdown files, select Show Diff to turn changed-content highlights and the diff overview ruler on or off. Source-code reviews show the diff inline and do not display this button.
Select Source to open an original-to-local diff. If the matching repository is open in VS Code, the local file is used; otherwise an editable temporary file is created. Without write permission, the diff is read-only.
Use Commit PR Revision from the editable source title bar to push your changes.
The Online view always represents the selected server revision and its comments. The Local view represents unpublished edits and intentionally hides PR comment decorations.
Local Review Workflow
- Open a Markdown file and run Panda Review.
- Navigate with the heading or document-symbol index, comments list, or timeline. Hold Ctrl on Windows/Linux or Cmd on macOS while clicking a file or code reference to open its workspace target.
- Use the revision indicator and baseline menu to compare the current session revision with the recent revision or the file committed at local Git
HEAD, then toggle the rendered highlights with Show Diff.
- Select preview text and use the context menu to add a comment.
- Edit or delete existing comments from the preview, or use the Copilot icon beside Delete to send one comment to Copilot Chat for implementation.
Settings
| Setting |
Default |
Description |
pandamarkdownreview.azureDevOpsPat |
Empty |
Optional Azure DevOps PAT fallback. Secrets entered at a prompt are stored in VS Code secret storage. |
pandamarkdownreview.githubToken |
Empty |
Optional GitHub token for private pull request file review. Public GitHub pull requests do not require a token; when unset, Panda can use an authenticated GitHub CLI session if available. |
pandamarkdownreview.prNotifyOnIncomingComments |
true |
Show notifications for new PR threads and replies. |
pandamarkdownreview.prAutoRefreshIntervalSeconds |
15 |
PR comment refresh interval while the review panel is visible and VS Code is focused, and the staleness threshold for refresh on focus regain. Minimum 5 seconds. |
pandamarkdownreview.prPrewarmFileCount |
4 |
Number of nearby changed PR files to predownload when changed-file metadata is first hydrated for a review session. Recurring refreshes do not repeat a broad all-file prewarm. |
pandamarkdownreview.prBlockInteractionUntilLoaded |
true |
Show a loading blocker until the first interactive PR preview is ready; supporting metadata continues loading in the background. |
pandamarkdownreview.sharedReviewGuidancePath |
Empty |
Shared folder containing per-machine review experience and TODO state files plus the centralized comment-job ledger. Auto Review combines all machine experiences and legacy guidance; the monitor merges TODO completion across machines. |
pandamarkdownreview.previewTheme |
dark-black |
Preview palette: dark-blue, VS Code-inspired dark-black, light, high-contrast, or custom. |
pandamarkdownreview.previewFontSize |
14 |
Base preview and comment font size in pixels, from 10 to 32. |
pandamarkdownreview.previewCustomTheme |
Dark blue palette |
JSON object containing colorScheme, textColor, backgroundColor, linkColor, surfaceColor, and borderColor. |
pandamarkdownreview.logLevel |
INFO |
Output verbosity: VERBOSE, DEBUG, INFO, WARN, or ERROR. |
Appearance changes apply immediately to open reviews. Preset themes override the custom theme object but retain the configured font size. Custom colors accept six-digit hex values.
Authentication Behavior
Azure DevOps PR mode uses this authorization order:
- Git credential store (for organization URL).
- Stored PAT (VS Code secret/config).
- Prompt for PAT if needed.
GitHub uses the configured githubToken, an authenticated GitHub CLI token, or anonymous access for public repositories. GitHub comment operations require an authenticated token with the appropriate repository permissions.
Troubleshooting Azure DevOps
Use scripts/test-pr-comments.ps1 to inspect what Azure DevOps returns for a PR file:
Example:
./scripts/test-pr-comments.ps1 -Project "Project" -Repository "Repository" -PullRequestId 123 -FilePath "/docs/design.md" -ShowRaw
The script:
- Calls PR threads API with paging.
- Filters by file path.
- Reports status/path/comment visibility reasons.
- Can validate a specific discussionId.
Development
Prerequisites: Node.js 18+, npm, and VS Code 1.95+.
See docs/ARCHITECTURE.md for runtime boundaries, data flows, module ownership, and the documentation maintenance contract.
npm install
npm run compile
npm test
To build and install the extension from a local checkout, run npm install first, then npm run build:install. The command uses the locally installed @vscode/vsce dependency, packages the VSIX, and searches PATH plus standard Windows and macOS VS Code CLI locations. You can override discovery with PANDA_REVIEW_CODE_COMMAND or pass --code-command <path> through npm, for example npm run build:install -- --code-command /path/to/code. The PowerShell compatibility wrapper is ./scripts/build-install.ps1; its optional -CodeCommand <path> maps to the same override.
Packaging
npm run package
npm run release:package
The VSIX is written to out/pandamarkdownreview.vsix.
Release Notes
1.0.15
- Reopened completed review TODO items after newer pull request iterations or comment updates, and lowered priority for approved pull requests with a stronger reduction after your own approval.
- Added a persistent Keep track action for pull request comment threads, with highlighted TODO follow-ups for later replies and resolution.
1.0.14
- Fixed completed Pull Request Monitor activity tasks hiding an otherwise actionable review TODO; only open activity tasks now suppress the PR's generic review row.
1.0.13
- Prioritized active discussions on pull requests authored by the authenticated user with a deterministic, explainable +25 TODO score factor that follows late Active/Pending comment-count hydration.
- Counted Azure DevOps Pending comment threads as actionable discussions so affected pull requests appear in the monitor TODO queue and active-comment badges.
- Continued loading all remaining Pull Request Monitor pages while TODO is active, so client-side groups such as ME can include authored pull requests beyond the initial 20 results without requiring scrolling.
1.0.12
- Highlighted Pull Request Monitor TODO approval counts with a high-contrast status badge.
- Shared TODO completion and reopen state across machines through per-machine files in the configured shared guidance folder, with timestamp conflict resolution and resolved-activity retention.
1.0.10
- Fixed Azure DevOps source diffs to compare pull request content with the common ancestor used by the Files view, avoiding false removals from target-branch-only changes.
- Ignored CRLF/LF-only differences when rendering added and removed source lines.
1.0.9
- Added a searchable multi-repository picker for monitor groups, backed by the complete Azure DevOps project repository catalog instead of only the currently loaded pull request pages.
1.0.8
- Fixed pull request active comment navigation when clicking a historical comment so it ensures target file revisions are loaded and cleanly falls back to latest available content instead of failing with an unavailable revision warning.
1.0.7
- Paused automatic PR refresh while its review is hidden or VS Code is unfocused, cleaned up timed-out preview waiters, and added one guarded stale refresh when focus returns.
1.0.6
- Added a seven-day retention window for resolved Pull Request Monitor activity after it is marked completed, including timestamp migration and cleanup of persisted events and completion markers.
1.0.5
- Restored Mermaid diagram expansion and element-level comment creation by fixing generated preview script initialization.
1.0.4
- Prioritized Ctrl/Cmd-click file and symbol navigation when references overlap comment decorations, while preserving ordinary clicks for opening comments.
1.0.3
- Added a Refresh Pull Request Files Explorer action that reloads revision availability, changed-file metadata, and comment counts from the provider.
- Kept Explorer file state synchronized after revision switches and guarded overlapping refreshes from publishing stale results.
1.0.2
- Added original-comment previews and expandable full conversation context to newly tracked Pull Request Monitor reply and resolved activity.
- Hid the preview diff overview ruler when the current document has no diff markers.
1.0.1
- Simplified the Pull Request Monitor TODO queue to show only AI-picked actionable work and tracked activity, removing the separate scope selector and its Show all option.
1.0.0
- Made TODO the Pull Request Monitor's main review surface, removed the separate Pull requests and Activity tabs (including Activity's Clear action), and retained tracked reply and resolution follow-ups as open or completed TODO items.
0.4.24
- Applied validated, transient AI analysis directly to TODO priority scores and sorting instead of displaying free-form recommendation text.
- Added dedicated reply author/message context to follow-up and resolved-activity TODO rows, plus PR creator metadata on resolved rows, while keeping tracked resolutions visible when resolver identity is unavailable.
0.4.23
- Added latest-reply context for replied and resolved monitor activity, with Activity and TODO Open actions that jump directly to the exact PR comment thread.
0.4.22
- Added inline PR Monitor AI recommendations through VS Code's language-model API, with explicit generation, cancellation, input limits, and disabled states when AI is unavailable.
- Improved modifier-click code navigation with current-file, workspace-symbol, and exact PR-content fallbacks plus progress feedback while references are resolved.
- Routed Ctrl+F to PR-wide search in pull request reviews while preserving native file search for local review panels.
0.4.21
- Added an active-only ME monitor group that filters pull requests to the authenticated author while preserving existing project-scoped group settings.
- Added explainable 0-100 TODO review scores, score-based ordering, and expandable PR context with reviewer states, review rounds, reviewable file count, discussion volume, and high-reply threads.
- Improved code-reference jumps by checking the current PR file before workspace-wide symbol search and showing progress while references are resolved.
0.4.20
- Added case-insensitive PR-wide text search from Search PR or Ctrl+F, with progressive bounded results and direct file-and-line navigation.
- Fixed Azure DevOps @-mention suggestions being offset or clipped after dragging a comment dialog, and prevented mention identity lookup from running for non-Azure providers.
0.4.19
- Improved long-running review stability with bounded PR base, diff-overview, and avatar caches; panel-scoped listener and state cleanup; 30-second provider HTTP timeouts; noninteractive background revision checks; and nearby-only PR file prewarming.
- Added modifier-click workspace file and exact-symbol navigation, symbol-backed document maps, and Git upstream diffs to local reviews; fixed unique changed-file stem navigation in PR reviews; and distinguished removed regions with red overview markers.
- Kept different pull requests in separate preview panels while continuing to reuse one panel for navigation within the same PR.
- Expanded the PR Monitor TODO view with Open and Completed sections, PR author/comment/approval metadata, and priority for work that the authenticated user has neither reviewed nor approved.
0.4.18
- Isolated shared review experience writes into stable per-machine files while combining every machine's experience at Auto Review launch.
- Added bounded retries for transient OneDrive and synced-folder sharing errors while preserving atomic cross-instance job claims.
0.4.17
- Added shared review guidance folders with a
shared-review-guidance.md prompt file and jobs ledger so Panda instances can coordinate comment-learning work without duplicate analysis.
- Added a PR comment Investigate action and a refreshed Guidance work monitor tab with status-colored running, completed, skipped, and failed jobs.
- Prevented authorization tests from invoking the real Git credential helper, avoiding Windows credential popups during test runs.
0.4.16
- Added cancellable PR prewarm generations so closed or replaced reviews stop publishing stale background results.
- Added bounded revision-content caching so reopened PR revisions can reuse previously downloaded content.
- Moved cache eviction and prewarm generation ownership into the storage layer.
0.4.15
- Added provider-based pull request routing with public GitHub review support for changed files, revisions, inline comments, comment replies, and optional private-repository token access.
- Added explicit provider capabilities so unsupported GitHub operations remain unavailable while Azure DevOps behavior stays fully supported.
- Added the provider abstraction and layered architecture documentation, with GitLab tracked as future work.
0.4.14
- Filtered PR Monitor queries by the selected repositories when a group or status page is scoped, reducing unnecessary project-wide fetches and keeping monitor pages aligned with the active filter.
- Preserved per-repository monitor pagination behavior while merging results and keeping the initial status page responsive.
0.4.13
- Enabled resolve, reply, edit, delete, and Copilot handling for PR-level comments that have no file path or source anchor.
- Made PR Monitor interactive after the priority status page loads, then progressively appended secondary statuses with stale-load protection and stage-level timings.
0.4.12
- Made pull request reviews interactive immediately after the selected file renders while revision, diff, Explorer, and prewarm hydration continue in the background.
- Limited initial prewarming to the four nearest changed files and added stage-level performance timings for PR loading diagnostics.
0.4.11
- Enabled line comments on JSON and other source reviews without requiring a text selection, and kept same-file line and symbol navigation stable across preview refreshes.
- Normalized encoded Azure DevOps paths and recovered deleted or renamed files as reviewable diffs instead of failing on missing source-branch items.
- Fixed opening historical, cross-file, and PR-level comments, including pathless discussion threads that appear in the all-comments list.
0.4.10
- Added fast, server-backed author and reviewer search to PR Monitor filters and groups, with exact alias/email ranking, six-result suggestions, and full keyboard navigation.
- Kept monitor group changes local when the required PR status data is already loaded, avoiding unnecessary full monitor refreshes.
0.4.9
- Renamed the visible product and command branding to Panda Review while preserving extension, command, setting, storage, and tool identifiers for compatibility.
- Made JSON and TypeSpec files explicit source-review formats with line-based diffs, selections, comments, and appropriate editor language handling.
0.4.8
- Added project-scoped PR Monitor groups with an All default and searchable Add/Edit dialogs for repository, identity, status, tracking, interest, text, and draft conditions.
- Split required and optional reviewer approvals, displayed zero active comments explicitly, and added authenticated reviewer-vote actions to the Pull Request Files Explorer.
- Improved PR-first file and code-symbol navigation, enabled Markdown diff visibility by default, and accelerated revision discovery and refresh.
- Fixed monitor alias filtering and pagination, incomplete active-comment hydration, and opening deleted PR files that no longer exist at the source commit.
0.4.7
- Prevented asynchronous Explorer tree selection from incorrectly failing an otherwise successful PR file switch.
0.4.6
- Added reliable PR-first navigation for preview file references and code identifiers, including cross-file review switching and stable line jumps.
- Added immediate revision-list refresh beside the picker and prioritized revision discovery ahead of slower background comment hydration.
- Included unknown text extensions such as
.tsp in PR reviews with safe plaintext rendering while continuing to exclude known binary formats.
0.4.5
- Kept open reviews pinned to their loaded revision when newer iterations arrive, highlighted historical selections, and added an explicit switch-or-stay prompt.
- Improved Markdown and source-code diff highlighting with a clickable, resize-aware changed-region overview.
- Prewarmed all other reviewable pull request files by default for faster file switching.
0.4.4
- Grouped monitored pull requests by creation time and replaced large author/reviewer checkbox lists with compact multi-person name and email filters.
- Exposed the latest loaded pull request monitor snapshot and tracked comment activity to Copilot for date-, identity-, repository-, and status-based summaries.
- Added a persistent monitor Activity tab for new replies and resolutions on the authenticated user's comments.
0.4.3
- Show the complete pull request file tree as soon as discovery finishes instead of waiting for slower comment and revision hydration.
- Added diagnostic logging for pull request file discovery and Explorer publication, with failures retained at warning level.
0.4.2
- Changed the Markdown PR diff control to an opt-in Show Diff toggle so newly opened documents no longer highlight every changed region by default.
0.4.1
- Fixed right-edge diff overview alignment so multi-line markers span their full rendered changed regions.
0.4.0
- Added a project-wide Azure DevOps pull request monitor with persistent multi-select filters, personal review tracking, interest flags, and direct review opening.
- Added incremental loading for completed and abandoned pull requests, plus fork, approval, draft, state, and active-discussion indicators.
- Kept initial PR loading blocked until the complete Explorer file snapshot is ready, and restored comments to closed-by-default behavior.
0.3.12
- Fixed right-edge diff overview alignment so multi-line markers span their full rendered changed regions.
0.3.11
- Added a clickable right-edge diff overview for quickly locating changed regions in long pull request files.
- Loaded and prefetched base content in parallel so overview markers appear sooner without delaying the initial preview.
0.3.10
- Added live preview theme presets with Dark Black as the default, plus Dark Blue, Light, High Contrast, and Custom options.
- Consolidated custom preview colors into one validated JSON theme object while preserving existing appearance settings as migration input.
0.3.9
- Improved pull request opening and switching with cached content, deduplicated discovery, non-overlapping refreshes, and direct source-diff rendering.
- Added rename-aware Azure DevOps diffs and
(rename) Explorer labels without classifying renamed files as additions or changing filename sort order.
- Defaulted comment filtering to Active, enabled native preview find, and opened new review tabs in the active editor group.
0.3.8
- Clarified that Copilot receives changed pull request files directly from Azure DevOps even without a local checkout.
- Require Copilot to verify and scope supporting-code review to the matching PR repository, and to stop with actionable setup guidance when required repository context is unavailable or broken.
0.3.7
- Added live preview appearance settings for font size, color scheme, text, background, links, surfaces, and borders, with a higher-contrast default link color.
- Enlarged comment dialogs and made comment and reply inputs grow with their content within viewport-aware limits.
0.3.6
- Count only Active pull request threads in toolbar totals and per-file badges while keeping Pending and Won't Fix threads visible in comment lists.
0.3.5
- Added Azure DevOps Pending and Won't Fix comment-state support alongside Active and Closed.
- Kept Active, Pending, and Won't Fix threads visible in comment lists and counts while excluding Closed threads.
- Added composable state and author filters to the all-PR comments list.
0.3.4
- Restored local View Source navigation to the original Markdown file in a standard VS Code editor.
- Added an on-demand document map for pull request Markdown previews while keeping it hidden for source-code files.
- Start document maps collapsed and place the accessible map icon beside Settings for a quieter toolbar.
0.3.3
- Maintenance release: repackaged the extension after merging upstream updates and revalidating test coverage.
0.3.2
- Prevented Mermaid modal comment popout from opening after drag-scroll/pan gestures; comments now open only on intentional click.
- Added movable comment thread dialogs that can be dragged by their header and remain within the preview viewport.
0.3.1
- Added Panda's
#panda-review Copilot tool and instructions for authoritative active-PR diff review, with an Auto Review toolbar action.
- Added configurable review context so Copilot can follow project-specific skills or guidance during reviews.
- Added approval-based pending findings with edit, delete, selective publish, immediate post-publish cleanup, and precise source ranges.
- Corrected Azure DevOps thread line numbering and generated-comment anchors.
- Consolidated the comments-list toggle into the Active count control to reduce toolbar clutter.
- Added all-PR Active comment navigation with automatic file switching and thread focus, plus mutually exclusive Active and Pending panels.
- Refresh the revision dropdown when new PR revisions appear without switching content until the user selects one.
- Fixed pending-dialog Publish so it cannot fall through to duplicate PR comment creation and removes successful pending items immediately.
0.3.0
- Added an Active toolbar total that counts unresolved comments across every reviewable file in the pull request; local reviews continue to count only the current file.
- Improved source-code first paint by rendering the current revision immediately while target-branch content and comments hydrate concurrently.
- Prefetch up to four adjacent PR files with two concurrent requests, shared in-flight downloads, a bounded cache, and a two-minute freshness limit.
- Made Node and VS Code ambient type resolution explicit for consistent editor and command-line diagnostics.
0.2.9
- Added a compact per-comment Copilot action beside Delete for local and Azure DevOps reviews.
- Open Copilot Chat with the selected comment's file, line, status, author, content, and PR replies, plus instructions to implement and validate the change.
- Updated PR marker and selection-offset tests to match DOM-based comment decoration and precise source ranges.
0.2.8
- Moved changed-file navigation into a native Pull Request Files view in VS Code Explorer and removed the duplicate file list from the review webview.
- Open and focus the PR file tree automatically when a pull request review starts, with native expandable directories and active-file reveal.
- Preserve added-file and unresolved-comment metadata with compact status visuals: green added icons, colored discussion icons,
+, comment counts, and detailed tooltips.
- Route native Explorer selections through the same revision fetch, comment refresh, local-file cleanup, and review-panel switching workflow.
0.2.7
- Made Source prefer the PR-relative file in the matching Git repository or open workspace, including repositories nested below a workspace folder.
- Keep local repository files available for editing by users and Copilot even when Azure DevOps PR push permission is unavailable.
- Track temporary edit files explicitly so cleanup never deletes a local workspace file.
0.2.6
- Added rich Azure DevOps PR review for C# and other common source-code files, with syntax highlighting, source-line mapping, inline additions and removals, and anchored code comments.
- Replaced the flat changed-file list with a searchable, collapsible directory tree that preserves folder state and shows unresolved comment counts.
- Added a
+ indicator for newly added PR files and automatic opening of the first reviewable file from PR overview URLs.
- Added workspace-aware source editing: matching repository files open directly in an original-to-local diff, with temporary editable files as a fallback.
- Improved code comment visibility with bordered line ranges and author badges.
- Kept Show PR Diff for rendered Markdown reviews while source-code reviews display their diff inline by default.
0.2.5
- Accept Azure DevOps PR overview URLs and show a searchable picker containing the changed Markdown files in the PR.
- Keep direct PR Markdown file URLs as the fast path with no additional selection step.
- Replace HTML export with a toolbar Markdown file selector. Single-file reviews show a disabled selector; multi-file PR reviews switch to any changed Markdown file in the same review panel.
- Reuse the existing PR review panel when Open Pull Request File is run again, including for a different PR or Markdown file.
- Highlight added and replaced current-revision lines in the review panel whenever Show PR Diff opens the synchronized source diff.
0.2.4
- Added Show PR Diff to compare the selected PR revision with the original Markdown at the PR target commit.
- Added continuous two-way source-line synchronization between the review preview and the modified side of the VS Code diff editor.
- Diff opening now waits for the modified editor and starts at the review's current visible source line.
- Added support for newly introduced PR Markdown files by comparing them against an empty original document.
- Refreshed the feature overview, PR workflow, settings, development, and troubleshooting documentation.
0.2.3
- Added PR revision picker to the toolbar: select any PR iteration to view its content and the comments that were anchored to that specific revision. Each iteration uses
$iterationId on the Azure DevOps threads API so comment positions are always correct for the selected revision.
- Added Local/Online toggle button in the PR review toolbar. Online (default) shows the selected PR revision with full comment decorations; Local shows your locally-edited draft without any comments. The review panel is never refreshed from local edits in Online mode.
- Local edits now drive a
localPreviewUpdate message that only updates the Local draft buffer — the Online view stays locked to the selected PR revision and is unaffected by typing in the edit source file.
- Mermaid element badges are hidden in Local mode, consistent with other comment decorations.
- Fixed comments not appearing on initial PR open:
webviewReady handshake ensures the snapshot is re-delivered after first page load.
- Fixed newly-created table-cell comments showing as block indicators immediately after creation by preserving
selectedText through the snapshot rebuild cycle.
- "Add Comment" context-menu item is now disabled when no text is selected.
- Fixed a webview
SyntaxError caused by a \n escape inside a JS comment in the HTML template literal.
0.2.2
PR comment threads are now highlighted in-place using DOM-based text wrapping.
Fixed comments not appearing on initial PR file open via webviewReady handshake.
Newly created comments (including table-cell selections) are immediately decorated with inline text wrapping.
"Add Comment" disabled when no text is selected.
Fixed webview syntax error from \n escape in JS comment inside template literal.
Fixed Mermaid modal element interaction: element clicks now work consistently by debouncing modal refresh operations and re-binding click handlers after each refresh.
Fixed badge click handlers not working on initial modal open by deferring badge binding to refresh cycle when SVG coordinates are properly established.
Fixed ESC key behavior: comment editor and mermaid modal now close in layers (editor first, then modal) instead of closing simultaneously.
Added comprehensive INFO-level logging for modal interactions, badge binding, element clicks, and refresh operations to aid debugging.
Modal refresh operations now debounced to 500ms to prevent rapid successive refreshes that destroyed event listeners.
0.2.0
- Added the ability to edit a PR markdown file and commit it back as a new revision: the Source button opens an editable editor (when you have permission), and the Commit PR Revision title-bar button pushes your changes as a new PR revision.
- Toolbar now wraps cleanly and button labels no longer overflow their rectangles at smaller preview sizes.
- Consolidated the zoom controls into a compact group and removed the redundant reset button; the percentage label itself is now clickable to reset zoom.
- Scroll sync now also works with the opened PR source editor (both read-only "View Source" and editable "Edit Source"), keeping the source and preview panes aligned in both directions.
0.1.9
- Fixed PR comment markers (
[[PR-...]]) being injected inside fenced code blocks (e.g. Mermaid diagrams), which caused Mermaid parse errors. Markers are now placed on the line immediately after the closing fence.
0.1.8
- Major PR review performance upgrade: preview panel now opens immediately with a loading UI while PR file content downloads in the background.
- Reduced first-load command latency by deferring heavy markdown engine loading until first render.
- Added startup pre-activation and command-path performance logs to diagnose cold-start delays.
- Optimized PR open flow by skipping revision enumeration for default Latest mode.
- Improved perceived responsiveness by rendering markdown first, then hydrating PR comments and mention users asynchronously.
0.1.7
- Added Azure DevOps identity search and mention autocomplete for PR comments and replies.
- Added participant avatars to mention suggestions, comments, and replies.
- Display mention names while composing and submit Azure DevOps mention GUID tokens to the service.
- Made mentions atomic when deleting text to prevent partial names and broken autocomplete state.
- Added visible webview error reporting and generated-script syntax regression coverage.
- Clarified that PR review currently supports only Markdown files in Azure DevOps pull requests.
0.1.3
- Fixed PR comment retrieval edge cases (paged thread fetch, left/right anchor handling).
- Improved PR comment list reliability by using PR snapshot as list source of truth.
- Added discussionId-aware thread matching for PR URL workflows.
- Added PR comment diagnostics script for backend validation.
- Added comment-list metadata display (author/time).
0.1.2
- Added PR notifications for incoming new comments/replies.
- Added settings for PR notification toggle and auto-refresh interval.
- Improved TOC jump behavior stability for large/reflowing content.
0.0.4
- Refactored extension into modular architecture.
- Fixed Mermaid rendering and preview context-menu behavior.
- Fixed comment update regressions.
0.0.3
- Added Copy action in preview context menu.
- Improved preview/editor pane behavior and lifecycle.
- Improved scroll sync behavior.
Project Structure
- src/extension.ts: activation and registration entry point.
- src/commands.ts: command handlers and PR workflow orchestration.
- src/html.ts: webview UI, interaction wiring, and panels.
- src/prApi.ts: Azure DevOps API integration.
- scripts/test-pr-comments.ps1: PR comment diagnostics helper.
License
UNLICENSED
| |