feat(docusaurus): add calendar date filters to changelog
Current-head validation — complete
The exact-head MR pipeline for d8d5f292 and all three downstream pipelines succeed: 47/47 jobs pass. The browser regression job actually executes all three changelog scenarios, including older API pages and filtering before the display limit. Both documentation builds pass.
The canonical default branch was fetched and fast-forwarded. Source synchronization and rebase onto current main (a0033abb) are no-ops; the clean source equals the pushed branch. The complete six-file diff and whitespace checks pass. Local nine-test, documentation and rendered-page evidence is retained. Current acceptance criteria and final DoD are complete. The deterministic reviewer helper reconfirms the existing owner reviewer through the linked issue; existing reviewers and disabled auto-merge are preserved. No duplicate CI or merge was performed.
Plan
- Add a Date range selector for this/last week, month, quarter and year, retaining All dates.
- Verify calendar boundaries, filtering before the display limit, browser behavior and paginated release retrieval.
- Finish user documentation, full documentation build and final Definition of Done before review.
Acceptance criteria
- All eight requested filters have an accessible selector and empty-state feedback.
- Local calendar, SSR and pagination tests pass (9/9), including leap days, rollover, exclusive boundaries and timezone offsets.
- Required current-head CI executes all three browser scenarios, including an older release on a later API page and filtering before the display limit.
- Older periods are retrieved across GitLab releases API pages, including when pagination headers are not exposed.
- Both user guides are committed and pass the full Docusaurus build and rendered-site review.
- Required current-head CI and remaining Definition of Done complete before review; local diff/rebase validation is complete.
Implementation decisions and evidence
UTC calendar periods and Monday-start weeks are implementation choices. Calendar intervals include their start and exclude the next interval's start. Invalid or missing release dates are excluded only when a filter is active. Filtering precedes the display limit and uses already-fetched releases without a filter-change refetch. Atom feeds are limited to their supplied entries.
Pagination follows X-Next-Page when exposed and requests subsequent full pages when CORS hides that header. Later-page HTTP errors are surfaced rather than silently presenting incomplete history.
The exact-head pipeline and all three child pipelines succeeded: 47/47 jobs. The browser job executed all three scenarios successfully. No unchanged-source pipeline rerun is needed.
Both committed user guides pass the repository Markdown lint configuration and generated-documentation MDX regressions. The full production build with Docusaurus 3.10.2 succeeds, including all 78 generated component pages and the package README. Both rendered date-filter guides were visually reviewed; their date-filter sections exactly match the built source.
Documentation is committed and pushed in 3966de34. The canonical main branch was fetched and fast-forwarded; both source synchronization and rebase onto current main were no-ops. The complete six-file diff was reviewed and whitespace checks pass; the worktree is clean.
The current-head pipeline and all three child pipelines succeed: 47/47 jobs pass for exact source 3966de34e9c7a05430cb9c6f22a6ba0c80f5e652. The browser job actually executes all three changelog scenarios, including older-page retrieval and filtering before the display limit.
Definition of Done
- All requested acceptance criteria met; no remaining implementation or unresolved feedback.
- Complete six-file diff reviewed and limited to calendar filtering, pagination, regressions and user guides.
- All required exact-head root/child CI passes; local calendar, SSR and pagination evidence retained.
- Documentation builds and rendered reviews verified.
- Default branch fetched/fast-forwarded; source fast-forward and current-main rebase are no-ops.
- Source equals the pushed branch; worktree is clean and full-diff whitespace checks pass.
Ready for guarded reviewer selection. No unchanged-source pipeline was rerun.
Closes #430 (closed)