12 Commits

Author SHA1 Message Date
a7d4f352b7 build(webapi): update publish artifacts and switch to port 5001
Adjust published appsettings.json to listen on http://localhost:5001 and refresh
static web assets + DLL after rebuild.
2025-10-28 18:18:45 -04:00
86500af544 docs: update agent guide and SKILL docs; standardize Web API port 5001
- Update .claude SKILL to use port 5001 in all examples
- Add repo-root SKILL.md consolidated API guide
- Expand AGENTS.md with rb.ps1 usage and policies
2025-10-28 18:18:45 -04:00
daa60c53dd chore(scripts): add rb.ps1 helper for Roslyn Bridge queries
Auto-detects Web API (5001) or VS plugin (59123), prefers compact JSON output,
adds commands for projects, diagnostics, symbol/ref lookup, history, and
solution-overview summary.
2025-10-28 18:18:44 -04:00
cd0f96ca1e feat(webapi): add solution overview summary endpoint
Adds GET /api/roslyn/solution/overview/summary with json|text|yaml formats.
Parses getsolutionoverview payload and renders compact summary for agents.
2025-10-28 18:18:44 -04:00
cade9dcc47 Update roslyn-bridge skill documentation and settings
- Update SKILL.md with comprehensive WebAPI documentation:
  - New architecture diagram showing WebAPI middleware
  - Complete REST API endpoints documentation
  - WebAPI usage examples and best practices
  - Instance discovery and multi-client support
  - History tracking features
  - Updated troubleshooting guide

- Update settings.local.json:
  - Add auto-approval for WebAPI startup commands
  - Add auto-approval for common build and test commands
  - Streamline development workflow

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-26 23:51:59 -04:00
89a349ae72 Add extension management documentation and utilities
- Add EXTENSION_MANAGEMENT.md with detailed instructions for:
  - Manual installation steps
  - Uninstalling previous versions
  - Troubleshooting common issues
  - Finding extension installation paths
  - Using PowerShell script for cleanup

- Add cleanup-and-reinstall.ps1 PowerShell script for:
  - Automated cleanup of extension directories
  - Restarting devenv /updateconfiguration
  - Rebuilding and reinstalling extension
  - Simplifies development workflow

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-26 23:51:46 -04:00
1cbfba3893 Add WebAPI middleware for multi-instance Roslyn Bridge routing
Add RoslynBridge.WebApi - ASP.NET Core 8.0 middleware that:
- Provides a centralized REST API for accessing multiple VS instances
- Manages instance registry with discovery by port, solution, or PID
- Proxies requests to the appropriate VS instance
- Tracks request/response history for debugging
- Auto-cleanup of stale instances via background service

Features:
- Health endpoints: /api/health, /api/health/ping
- Roslyn endpoints: /api/roslyn/projects, /api/roslyn/diagnostics, etc.
- Instance management: /api/instances (register, heartbeat, unregister)
- History tracking: /api/history, /api/history/stats
- Swagger UI at root (/) for API documentation
- CORS enabled for web applications

Services:
- InstanceRegistryService: Thread-safe registry of VS instances
- HistoryService: In-memory request/response history (max 1000 entries)
- InstanceCleanupService: Background service to remove stale instances
- RoslynBridgeClient: HTTP client for proxying to VS instances

Update RoslynBridge.sln to include RoslynBridge.WebApi project.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-26 23:51:33 -04:00
716827a665 Add instance registration service for multi-client WebAPI integration
- Create RegistrationService to register VS instances with WebAPI
  - Registers on startup with: port, process ID, solution info
  - Reads WebApiUrl from ConfigurationService
  - Sends heartbeat every N seconds (configurable)
  - Unregisters on shutdown
  - Gracefully handles registration failures (VS extension works standalone)

- Update RoslynBridgePackage to use RegistrationService
  - Creates BridgeServer and gets actual port used
  - Registers with WebAPI using discovered port
  - Cleans up registration on disposal

This enables the WebAPI middleware to discover and route requests to
the correct Visual Studio instance based on solution path, port, or PID.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-26 23:51:20 -04:00
1ad0a98d4d Implement automatic port discovery for multi-instance support
- Update BridgeServer to try multiple ports sequentially
  - Reads DefaultPort and MaxPortRange from ConfigurationService
  - Tries ports from DefaultPort to DefaultPort+MaxPortRange
  - Updates _port field to the port that successfully starts
  - Throws exception if no available ports found

- Make _port field mutable to store discovered port
- Add public Port property to expose the actual port being used
- Make startPort parameter optional (nullable), defaults to config value

- Add WriteRawResponseAsync helper method for future use

This allows multiple Visual Studio instances to run simultaneously,
each with their own Roslyn Bridge server on different ports.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-26 23:51:08 -04:00
48d85e1906 Add configuration system for RoslynBridge extension
- Add appsettings.json with configurable settings:
  - WebApiUrl: URL of the WebAPI middleware (default: http://localhost:5001)
  - DefaultPort: Starting port for VS instances (default: 59123)
  - MaxPortRange: Number of ports to try (default: 10)
  - HeartbeatIntervalSeconds: Heartbeat interval (default: 60)

- Create ConfigurationService singleton to load settings
  - Loads from appsettings.json in extension directory
  - Falls back to sensible defaults if file missing
  - Provides easy property access

- Update RoslynBridge.csproj to include:
  - ConfigurationService.cs in compilation
  - appsettings.json as content (copied to output and included in VSIX)
  - System.Data reference for future use

This allows users to customize extension behavior without recompiling.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-26 23:50:55 -04:00
AJ
0054386700 Fix build errors and update dependencies
- Add ProjectOperationsService.cs to project file compilation
- Update System.Text.Json from 8.0.0 to 8.0.5 to fix security vulnerabilities
- Fix .NET Framework 4.8 compatibility (remove entireProcessTree parameter from Process.Kill)
- Remove ExcludeAssets restriction from Microsoft.VisualStudio.SDK package
- Add project operation endpoints (NuGet, build, clean, restore, directory creation)
- Update AGENTS.md with MSBuild build instructions and warnings
- Replace roslyn-api skill with roslyn-bridge skill
- Update settings with additional auto-approvals

Build now completes successfully with MSBuild (0 errors, 34 warnings).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-25 12:43:06 -04:00
AJ
b75fbbedb9 Added Files 2025-10-25 11:03:29 -04:00