55 lines
1.7 KiB
Markdown
55 lines
1.7 KiB
Markdown
# Task: Frontend What’s New experience
|
||
|
||
## Goal
|
||
|
||
Add the user-facing What’s New experience for published release updates and unread state.
|
||
|
||
## Feature Spec
|
||
|
||
- `docs/FEATURES/release-communications.md`
|
||
|
||
## Scope
|
||
|
||
- Add feature-owned frontend code under `frontend/src/features/release-communications/`.
|
||
- Add `/app/updates`.
|
||
- Add an app shell entry or badge for unread release updates.
|
||
- Fetch visible published release updates from the backend.
|
||
- Show unread state for update entries.
|
||
- Mark an update as read when opened.
|
||
- Add a mark-all-read action.
|
||
- Optionally show a non-blocking login-time What’s New panel when unread updates exist.
|
||
- Add English and French locale strings.
|
||
- Keep developer authoring UI, commit reconciliation, and email digest out of this task.
|
||
|
||
## Likely Files
|
||
|
||
- `frontend/src/router/router.js`
|
||
- `frontend/src/layouts/main/**`
|
||
- `frontend/src/features/release-communications/**`
|
||
- `frontend/src/locales/en.json`
|
||
- `frontend/src/locales/fr.json`
|
||
|
||
## Notes
|
||
|
||
- The user-facing update feed must be curated and should not show raw commit SHAs, commit subjects, branch names, or internal-only work.
|
||
- Keep the UI compact and app-like. This is an operational app surface, not a marketing release notes page.
|
||
- Use the shared Axios API client in `frontend/src/plugins/api.js`.
|
||
|
||
## Validation
|
||
|
||
```bash
|
||
cd frontend
|
||
npm run build
|
||
```
|
||
|
||
## Done When
|
||
|
||
- [x] Authenticated users can open `/app/updates`.
|
||
- [x] The app shell shows unread update count.
|
||
- [x] Published visible updates are listed newest first.
|
||
- [x] Unread updates are visually distinct.
|
||
- [x] Opening an update marks it read.
|
||
- [x] Users can mark all visible updates read.
|
||
- [x] UI strings exist in English and French.
|
||
- [x] Frontend build passes.
|