mirror of
https://github.com/getpaseo/paseo.git
synced 2026-07-29 12:01:31 +00:00
* fix(chat): load older timeline history consistently Pagination depended on scroll events, so short or compacted initial pages could never request older history. Reevaluate edge visibility as layout and history change, and standardize loading indicators on the canonical app spinner. * fix(chat): keep older history loading reliably Use authoritative timeline cursor progress so merged rows cannot stall pagination. Wait for bottom anchoring before evaluating the history edge, and re-arm retries on a fresh upward gesture without automatic failure loops.
49 lines
1.6 KiB
TypeScript
49 lines
1.6 KiB
TypeScript
import { test } from "./fixtures";
|
|
import {
|
|
expectLoadedTimelineDoesNotScroll,
|
|
expectTimelinePromptNotMounted,
|
|
expectTimelinePromptVisible,
|
|
holdNextOlderTimelinePage,
|
|
makeLoadedTimelineFitViewport,
|
|
openAgentTimeline,
|
|
scrollTimelineUntilOlderHistoryIsReachable,
|
|
seedLongMockAgentTimeline,
|
|
} from "./helpers/timeline-pagination";
|
|
|
|
test.describe("Agent timeline pagination", () => {
|
|
test("loads older history when the user scrolls to the top of a long agent timeline", async ({
|
|
page,
|
|
}) => {
|
|
test.setTimeout(120_000);
|
|
const agent = await seedLongMockAgentTimeline({ turns: 80 });
|
|
try {
|
|
await openAgentTimeline(page, agent);
|
|
await expectTimelinePromptVisible(page, agent.newestPrompt);
|
|
await expectTimelinePromptNotMounted(page, agent.oldestPrompt);
|
|
|
|
await scrollTimelineUntilOlderHistoryIsReachable(page);
|
|
|
|
await expectTimelinePromptVisible(page, agent.oldestPrompt);
|
|
} finally {
|
|
await agent.cleanup();
|
|
}
|
|
});
|
|
|
|
test("loads older history when the initial page does not fill the viewport", async ({ page }) => {
|
|
test.setTimeout(120_000);
|
|
const agent = await seedLongMockAgentTimeline({ turns: 30 });
|
|
try {
|
|
await makeLoadedTimelineFitViewport(page);
|
|
const olderPage = await holdNextOlderTimelinePage(page, agent);
|
|
await openAgentTimeline(page, agent);
|
|
await expectTimelinePromptVisible(page, agent.newestPrompt);
|
|
await expectLoadedTimelineDoesNotScroll(page);
|
|
await olderPage.expectLoading();
|
|
olderPage.release();
|
|
await expectTimelinePromptVisible(page, agent.oldestPrompt);
|
|
} finally {
|
|
await agent.cleanup();
|
|
}
|
|
});
|
|
});
|