fix: remove conversation list and message history limits
Cross-platform packages / Validate source (push) Canceled after 0s
Cross-platform packages / Authorize desktop packaging (push) Canceled after 0s
Cross-platform packages / linux arm64 (push) Canceled after 0s
Cross-platform packages / macos arm64 (push) Canceled after 0s
Cross-platform packages / windows arm64 (push) Canceled after 0s
Cross-platform packages / linux x64 (push) Canceled after 0s
Cross-platform packages / macos x64 (push) Canceled after 0s
Cross-platform packages / windows x64 (push) Canceled after 0s
Cross-platform packages / Publish GitHub and OSS release (push) Canceled after 0s

List and search all active conversations instead of only the latest 100. Preserve message history across consecutive sends instead of truncating it to 500 messages. Existing detail loading and context compression remain unchanged.

Validation: 7 focused tests, typecheck and lint passed. Full test run timed out after reporting failures in App completion visibility and WorkspacePrimitives forced-color contracts.

Release note: 会话列表和搜索不再限制为最近 100 个会话;发送消息不再截断超过 500 条的历史记录。
This commit is contained in:
mesalogo
2026-09-19 21:34:42 +08:00
parent b5d8204986
commit 375b2159c8
6 changed files with 37 additions and 29 deletions
+17 -1
View File
@@ -5628,7 +5628,7 @@ describe("App", () => {
});
});
it("sends all persisted history beyond 500 messages", async () => {
it("retains all history beyond 500 messages across consecutive sends", async () => {
const messages = Array.from({ length: 502 }, (_, index) => ({
id: crypto.randomUUID(),
role: index % 2 ? "assistant" as const : "user" as const,
@@ -5653,6 +5653,22 @@ describe("App", () => {
expect(run.mock.calls[0]?.[0].historyMessageIds).toEqual(
messages.map(({ id }) => id),
);
const requestId = run.mock.calls[0]![0].requestId;
act(() => {
agentListener?.({ requestId, type: "text", delta: "Continued reply" });
agentListener?.({ requestId, type: "done" });
});
fireEvent.change(screen.getByLabelText("向 GoodBuddy 提问"), {
target: { value: "Continue again" },
});
await waitFor(() => expect(screen.getByLabelText("发送")).toBeEnabled());
fireEvent.click(screen.getByLabelText("发送"));
await waitFor(() => expect(run).toHaveBeenCalledTimes(2));
expect(run.mock.calls[1]?.[0].history).toEqual([
...messages.map(({ role, content }) => ({ role, content })),
{ role: "user", content: "Continue" },
{ role: "assistant", content: "Continued reply" },
]);
});
it("keeps a tool failure in details and hides retry after continuing", async () => {
+2 -2
View File
@@ -7684,7 +7684,7 @@ function App(): React.JSX.Element {
? prompt.slice(0, 24)
: conversation.title,
updatedAt: Date.now(),
messages: [...conversation.messages.slice(-499), userMessage],
messages: [...conversation.messages, userMessage],
}
: conversation,
),
@@ -7754,7 +7754,7 @@ function App(): React.JSX.Element {
...conversation,
updatedAt: Date.now(),
messages: [
...conversation.messages.slice(-499),
...conversation.messages,
assistantMessage,
],
activeRequest: undefined,