Commit Graph

5 Commits

Author SHA1 Message Date
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