feat(FN-3111): add mesh configuration API routes and generator service

The merge lands the mesh configuration system (FN-3111) with type definitions, a `MeshConfigGenerator` service using a new `DockerClientService.recreateContainer()` method, and backend API routes for managing Docker-based mesh nodes. It also adds a "New Chat" button to the ChatView header on desktop

Fusion-Task-Id: FN-3111
This commit is contained in:
Fusion
2026-05-03 15:13:08 -07:00
committed by gsxdsm
parent 0347bd4afe
commit d812427be7
10 changed files with 1420 additions and 2 deletions

View File

@@ -809,6 +809,46 @@ describe("runServe", () => {
});
await triggerSignal("SIGINT");
});
it("uses process.env.PORT as fallback when no explicit CLI port is given", async () => {
const originalPort = process.env.PORT;
process.env.PORT = "4041";
try {
await runServe(4040, {});
expect(mocks.listenCalls[0]).toMatchObject({
port: 4041,
host: "127.0.0.1",
});
await triggerSignal("SIGINT");
} finally {
if (originalPort !== undefined) {
process.env.PORT = originalPort;
} else {
delete process.env.PORT;
}
}
});
it("ignores process.env.PORT when explicit CLI port is not the default", async () => {
const originalPort = process.env.PORT;
process.env.PORT = "4041";
try {
await runServe(3000, {});
expect(mocks.listenCalls[0]).toMatchObject({
port: 3000,
host: "127.0.0.1",
});
await triggerSignal("SIGINT");
} finally {
if (originalPort !== undefined) {
process.env.PORT = originalPort;
} else {
delete process.env.PORT;
}
}
});
});
describe("runServe — Plugin wiring", () => {