web: integrate QoL slices 1-5 (model switch/rename, history deletes, usage stats, repo prepare+badges+imageUsed, markdown/search/FAB/timestamps) — 263 tests, ≥95% all metrics

This commit is contained in:
Raphael Westphal
2026-08-19 10:35:40 +02:00
parent 698b742cb3
commit c8ad68aaea
17 changed files with 2618 additions and 170 deletions
+9
View File
@@ -19,6 +19,7 @@ describe("protocol", () => {
expect(EventType.AgentEnd).toBe("agent_end");
expect(EventType.AgentSettled).toBe("agent_settled");
expect(EventType.SessionInfo).toBe("session_info");
expect(EventType.ErrorNotice).toBe("error_notice");
expect(EventType.Bye).toBe("bye");
});
@@ -29,6 +30,9 @@ describe("protocol", () => {
expect(Route.GitlabStatus).toBe("/api/gitlab/status");
expect(Route.GitlabConnect).toBe("/api/gitlab/connect");
expect(Route.GitlabRepos).toBe("/api/gitlab/repos");
expect(Route.ModelCatalog).toBe("/api/model-catalog");
expect(Route.Repos).toBe("/api/repos");
expect(Route.Stats).toBe("/api/stats");
});
it("session routes interpolate and encode ids", () => {
@@ -36,6 +40,11 @@ describe("protocol", () => {
expect(Route.SessionPrompt("abc")).toBe("/api/sessions/abc/prompt");
expect(Route.SessionAbort("abc")).toBe("/api/sessions/abc/abort");
expect(Route.SessionContainer("abc")).toBe("/api/sessions/abc/container");
expect(Route.Session("abc")).toBe("/api/sessions/abc");
expect(Route.SessionModel("abc")).toBe("/api/sessions/abc/model");
expect(Route.SessionStats("abc")).toBe("/api/sessions/abc/stats");
expect(Route.RepoImage("g/p")).toBe("/api/repos/g/p/image");
expect(Route.RepoPrepare("g/p")).toBe("/api/repos/g/p/prepare");
expect(Route.SessionEvents("a/b c")).toBe("/api/sessions/a%2Fb%20c/events");
});
});