Skip to content

Add About section, MCP update flow, and session restore#3

Merged
YuliiaKovalova merged 2 commits intomainfrom
feature/about-and-update
Mar 24, 2026
Merged

Add About section, MCP update flow, and session restore#3
YuliiaKovalova merged 2 commits intomainfrom
feature/about-and-update

Conversation

@SergeyTeplyakov
Copy link
Copy Markdown
Collaborator

Summary

Adds an About section to the Binlog Explorer tree view with MCP server version info, update checking, and one-click updates. Also adds session restore so previously loaded binlogs are automatically reopened on VS Code reload.

Features

About / MCP Server Section

  • New About root node in the tree view showing extension and MCP versions
  • MCP Server child node with tool location, config file links, and update status
  • Right-click context menu: Refresh and Check for Updates

Update Flow

  • Auto-check on activation: shows popup only when an update is available
  • Check for Updates command: explicitly checks and confirms even when up to date
  • No binlog loaded: runs dotnet tool update directly (no MCP server running)
  • Binlog loaded: defers update to next reload to avoid file-lock conflicts
  • Shows Updating MCP server welcome view during deferred updates

Version Detection

  • Reads version from ~/.dotnet/tools/.store/ directory structure
  • Works with all MCP versions including v0.1.0/v0.2.0 that lack --version
  • Falls back to --version CLI flag for newer versions

NuGet Version Check

  • Uses dotnet package search --exact-match --format json
  • Respects all configured NuGet sources including local/private feeds

Session Restore

  • On activation, auto-restores previously loaded binlogs from globalState
  • Shows Restoring previous session spinner to prevent welcome view flicker

MCP Server cwd

  • Extension sets cwd on the MCP server config to the workspace folder
  • Helps relative binlog paths resolve correctly

Other Changes

  • AboutInfo fields prefixed with mcp for clarity
  • fetchAboutInfo supports three modes: interactive, auto, silent
  • Version bumped to 0.10.1
  • Three new commands: checkForUpdates, updateMcpServer, refreshMcpInfo

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds an “About” section to the Binlog Explorer tree (showing extension/MCP server info and update actions), introduces an MCP server update flow (including deferred updates to avoid file locks), and implements session restore so previously loaded binlogs reopen automatically on reload.

Changes:

  • Added About/MCP nodes to the tree view plus commands to refresh info, check for updates, and update the MCP server.
  • Implemented session restore from globalState, including UI flags to prevent welcome-view flicker during restore/update.
  • Updated extension contributions (welcome view + commands/menus) and bumped versioning metadata.

Reviewed changes

Copilot reviewed 3 out of 4 changed files in this pull request and generated 5 comments.

File Description
src/extension.ts Adds activation-time update/apply flow, version detection, NuGet lookup, update commands, and session restore logic.
src/binlogTreeView.ts Adds About/MCP tree nodes and a restoring spinner state.
package.json Adds welcome view variant for updates, new commands, and context-menu items for About/MCP.
package-lock.json Updates lockfile metadata (currently mismatched with package.json).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/extension.ts Outdated
Comment thread src/extension.ts Outdated
Comment thread src/extension.ts
Comment thread src/binlogTreeView.ts
Comment thread src/extension.ts
@SergeyTeplyakov SergeyTeplyakov force-pushed the feature/about-and-update branch from b501981 to fca74df Compare March 24, 2026 04:02
## Summary

Adds an About section to the Binlog Explorer tree view with MCP server version
info, update checking, and one-click updates. Also adds session restore so
previously loaded binlogs are automatically reopened on VS Code reload.

## Features

### About / MCP Server Section
- New About root node in the tree view showing extension and MCP versions
- MCP Server child node with tool location, config file links, and update status
- Right-click context menu: Refresh and Check for Updates

### Update Flow
- Auto-check on activation: shows popup only when an update is available
- Check for Updates command: explicitly checks and confirms even when up to date
- No binlog loaded: runs dotnet tool update directly (no MCP server running)
- Binlog loaded: defers update to next reload to avoid file-lock conflicts
- Shows Updating MCP server welcome view during deferred updates

### Version Detection
- Reads version from ~/.dotnet/tools/.store/ directory structure
- Works with all MCP versions including v0.1.0/v0.2.0 that lack --version
- Falls back to --version CLI flag for newer versions

### NuGet Version Check
- Uses dotnet package search --exact-match --format json
- Respects all configured NuGet sources including local/private feeds

### Session Restore
- On activation, auto-restores previously loaded binlogs from globalState
- Shows Restoring previous session spinner to prevent welcome view flicker

### MCP Server cwd
- Extension sets cwd on the MCP server config to the workspace folder
- Helps relative binlog paths resolve correctly

## Other Changes
- AboutInfo fields prefixed with mcp for clarity
- fetchAboutInfo supports three modes: interactive, auto, silent
- Version bumped to 0.10.1
- Three new commands: checkForUpdates, updateMcpServer, refreshMcpInfo
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 4 changed files in this pull request and generated 5 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/extension.ts
Comment thread src/extension.ts
Comment thread src/extension.ts
Comment thread src/extension.ts
Comment thread package.json Outdated
@YuliiaKovalova
Copy link
Copy Markdown
Contributor

@SergeyTeplyakov could you please check the comments posted by Copilot and fix what makes sense to you?

- Switch all child_process.exec calls to execFile with argument arrays
  to avoid shell injection and quoting issues on paths with metacharacters
- Tighten .store version filter from /^\d+\.\d+/ to /^\d+\.\d+\.\d+$/
  to exclude prerelease folders that would cause NaN in compareVersions
- Rename 'Refresh' command title to 'Binlog: Refresh MCP Info' for
  consistency with the extension's naming convention
@YuliiaKovalova YuliiaKovalova merged commit 2a84856 into main Mar 24, 2026
2 checks passed
@SergeyTeplyakov
Copy link
Copy Markdown
Collaborator Author

@YuliiaKovalova addressed the comments.

@SergeyTeplyakov
Copy link
Copy Markdown
Collaborator Author

ah! You merged it :)

@YuliiaKovalova
Copy link
Copy Markdown
Contributor

ah! You merged it :)

thank you for the contribution!
I am fixing other bugs I have discovered and will push the update of the extension later today .

@SergeyTeplyakov
Copy link
Copy Markdown
Collaborator Author

Awesome!!

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.

3 participants