This release adds paginated, searchable article lists, links in the editor and an export of the activity log, and removes the article length limit. The article list API changes shape, so read the upgrading notes if you call it. ## New **Articles** - The article list is now paged, with a search box, an Online and Draft filter, sortable columns and a page size of 5, 25, 50 or 100. Counts for All, Online and Draft stay fixed while you search. - Articles have no length limit any more, and a new article can be created without a body. **Editor** - Insert, edit and remove links directly in the editor. **Activity log** - The summary cards at the top are now filters: select one to narrow the list, select it again to clear it. - A new Export menu downloads the filtered events as a CSV file. - The date range also accepts "All time". **Integration** - The Integration page has a new Images section covering image variants, and its code snippets now share one format. ## Improvements and fixes - Each page now sets its own browser tab title, in the form "Page ยท RenewCMS", instead of keeping the title of the first page loaded. - Registering now waits for the session to be refreshed before showing the pending-approval screen, which fixes a redirect back to the sign in page. - The media and variant screens, the navigation contrast and the shell colors follow the design spec more closely. - The development workflow on Linux no longer deletes the visual check output. ## API - Changed: `GET /v1/article/` always answers `{ items, total, page, size, counts }` instead of a bare array. It accepts `page`, `size` (`5`, `25`, `50`, `100`), `q`, `status` (`online` or `draft`) and `sort` (for example `title:asc`; default `updated_at:desc`). An invalid value answers `400`. Anonymous callers still only see online articles. - Changed: `POST /v1/article/` and `PATCH /v1/article/{id}` no longer reject a body over 10,000 characters, and `POST` accepts an empty body. - `GET /v1/activity` and `GET /v1/activity/export` accept `range=all`. ## Under the hood - Add the paged article query to the article repository contract, with accent-insensitive title search, and promote `golang.org/x/text` to a direct dependency. - Add specifications, design checks and Go and Vitest suites for the new screens. - Document the article list in `docs/api/articles.md` and link the API docs from the README. ## Upgrading - Replace the binary, or pull the new image. There is no schema change and no new environment variable. - Any script or site that reads `GET /v1/article/` must now read the `items` property of the response. Without `page` and `size` you get the first 25 articles, so loop over `page` until you have `total` items.