fix: stabilize TypeScript LSP startup

Seed new TypeScript LSP profiles with --stdio, validate that shared profiles keep the required flag, auto-add it for existing profiles in the sidecar runtime, and include recent stderr when a language server dies before completing a request. Add shared and sidecar regression coverage.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
David Kaya
2026-03-23 23:16:48 +01:00
co-authored by Copilot
parent fe7155764c
commit cf699b2442
5 changed files with 110 additions and 4 deletions
@@ -1,4 +1,5 @@
using System.Text.Json;
using Eryx.AgentHost.Contracts;
using Eryx.AgentHost.Services;
namespace Eryx.AgentHost.Tests;
@@ -24,4 +25,32 @@ public sealed class LspToolSessionTests
Assert.Contains("relativePath", json);
}
[Fact]
public void ResolveProcessArguments_AddsStdioForTypeScriptLanguageServer()
{
RunTurnLspProfileConfigDto profile = new()
{
Command = "typescript-language-server",
Args = [],
};
IReadOnlyList<string> args = LspToolSession.ResolveProcessArguments(profile);
Assert.Equal(["--stdio"], args);
}
[Fact]
public void ResolveProcessArguments_DoesNotDuplicateStdioWhenAlreadyPresent()
{
RunTurnLspProfileConfigDto profile = new()
{
Command = "typescript-language-server",
Args = ["--stdio"],
};
IReadOnlyList<string> args = LspToolSession.ResolveProcessArguments(profile);
Assert.Equal(["--stdio"], args);
}
}