---
title: "Preserve notification identity across inbox pages"
description: "Verify paging through a fixed notification history does not duplicate or omit items at page boundaries and preserves read state when returning."
canonical_url: "https://vostride.com/agent-library/notifications/notification-pagination-boundary.md"
md_url: "https://vostride.com/agent-library/notifications/notification-pagination-boundary.md"
content_kind: "recipe"
topic: "notifications"
---

# Preserve notification identity across inbox pages

Verify paging through a fixed notification history does not duplicate or omit items at page boundaries and preserves read state when returning.

## Risk

Cursor pagination bugs can repeat the final item of one page or skip the first item of the next. Exact fixture identifiers provide stronger evidence than checking that more notifications appeared.

## Fixtures

- A test inbox contains twelve notifications with unique ordered labels N01 through N12 and fixed distinct timestamps.
- The configured page size is five, newest first, and no events arrive during the journey.
- The fixture oracle records the expected page groups N12-N08, N07-N03, and N02-N01.

## Steps

1. Open inbox page one and verify its five fixture labels match N12 through N08 in descending order.
2. Go to the next page and verify N07 through N03 with no repeated N08 entry.
3. Open N05, return to the inbox, and verify its read state is visible without changing the page membership.
4. Go to the final page and verify exactly N02 and N01 with no enabled next-page action.
5. Return to page two and verify its original five identifiers and the persisted read state of N05.

## Expected results

- The union of visited pages contains all twelve fixture identifiers exactly once.
- Each page boundary agrees with the independent timestamp ordering and configured page size.
- Reading an item changes its read state without removing it from a history view whose contract includes read items.

## False-pass traps

- A load-more animation proves neither completeness nor uniqueness of the resulting list.
- Concurrent fixture arrivals would change page boundaries, so a live noisy inbox is unsuitable for this oracle.

## Cleanup

- Delete the twelve fixture notifications and restore the default inbox page preference.

## Use with agent-qa

Adapt this test design to your application's acceptance criteria and configured target using the [recipe execution guide](/agent-library/software-factory/turn-a-recipe-into-an-agent-qa-test.md). External fixture setup and non-UI checks require your own supported hooks or test tooling. Validate the authored test, execute it, and inspect the completed evidence; this recipe is not a recorded test result.

## References

- [agent-qa test](/docs/agent-qa/configuration/test.md)
- [agent-qa first test](/docs/agent-qa/guides/first-test.md)
- [agent-qa web testing](/docs/agent-qa/guides/web-testing.md)

- [Notification QA recipes](/agent-library/notifications.md)
- [Software factory QA library](/agent-library.md)
