docs: CHANGELOG.md (Keep a Changelog) + README quick-start fixes

CHANGELOG.md: Keep-a-Changelog formaat met [Unreleased], [0.9.0]-release,
en compact-historie. Klaar voor v1.0.0 release-notes.

README:
- Test-count 69 → 445 (was outdated)
- Quick-start claim over auto-erd-watch in `npm run dev` corrigeren
  (npm run db:erd:watch is optioneel, niet automatisch)
- Env-vars-tabel uitgebreid: CRON_SECRET (productie), Sentry DSN +
  source-map vars (optioneel)
- CHANGELOG-link in Documentation-sectie

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Janpeter Visser 2026-05-04 14:11:53 +02:00
parent 54a2511476
commit 7529fd54bc
2 changed files with 92 additions and 3 deletions

85
CHANGELOG.md Normal file
View file

@ -0,0 +1,85 @@
# Changelog
All notable changes to **Scrum4Me** are documented in this file.
The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
---
## [Unreleased]
### Added
- A11y: rate-limit `enforceUserRateLimit(scope, userId)` helper applied to all
high-value mutation paths (PBI/Story/Task/Todo/Sprint/Product/Token create,
Claude job enqueue, answerQuestion, story-log POST, avatar upload).
([#86](https://github.com/madhura68/Scrum4Me/pull/86))
- Sentry error-monitoring scaffolding (`@sentry/nextjs`) with no-op fallback
when DSN is not configured. Activate via `NEXT_PUBLIC_SENTRY_DSN` in Vercel
env-vars. ([#85](https://github.com/madhura68/Scrum4Me/pull/85))
### Changed
- A11y: `aria-selected` on PBI-cards replaced with `aria-pressed` (correct
ARIA role-attribute pairing). ([#88](https://github.com/madhura68/Scrum4Me/pull/88))
- A11y: form-label associations (`htmlFor` + `id`) on all happy-path dialogs
(Story/Task + Promote-PBI/Story); auth pages get `<main>` landmark.
([#87](https://github.com/madhura68/Scrum4Me/pull/87))
- A11y: tap-targets ≥28×28 px on hover-icon-buttons (PBI ✎ + ×, Story ✎,
dashboard product ✎). ([#88](https://github.com/madhura68/Scrum4Me/pull/88))
---
## [0.9.0] — 2026-05-04
[GitHub Release](https://github.com/madhura68/Scrum4Me/releases/tag/v0.9.0)
### Added
- **PBI-11: Mobile-shell met landscape-lock** ([#81](https://github.com/madhura68/Scrum4Me/pull/81)):
- Aparte route group `app/(mobile)/m/{settings,pair,products}/...` met eigen
layout (zonder NavBar/StatusBar/MinWidthBanner)
- `LandscapeGuard` (rotate-overlay in portrait), `MobileTabBar` (3 lucide-iconen)
- PWA-manifest met `"orientation": "landscape"`
- UA-redirect bij login: telefoons (`Mobi`-substring) → `/m/products/[active]/solo`,
tablets en desktop → `/dashboard`
- Gedeelde `lib/auth-guard.ts` `requireSession()` helper, hergebruikt door beide layouts
- Mobile-fullscreen voor entity-dialogen via gedeelde `entityDialogContentClasses`
- Sprint Product-Backlog kolom: filter-popover (prioriteit + status) en
edit-iconen op PBI/story/task-rijen. ([#79](https://github.com/madhura68/Scrum4Me/pull/79))
- Edit-icoon op product-card in dashboard (consistent met PBI/story/task-pattern).
([#83](https://github.com/madhura68/Scrum4Me/pull/83))
- v1.0 readiness checklist in `docs/plans/v1-readiness.md`.
([#82](https://github.com/madhura68/Scrum4Me/pull/82))
### Changed
- Refactor `app/(app)/layout.tsx` om gedeelde `requireSession()` te gebruiken
(gedrag onveranderd). ([#81](https://github.com/madhura68/Scrum4Me/pull/81))
- `/m/pair` filesystem-verhuisd uit `(app)/` naar `(mobile)/` — URL onveranderd.
([#81](https://github.com/madhura68/Scrum4Me/pull/81))
---
## [0.4.0] — eerder
### Added
- M9 — Actief Product Backlog: persistente actieve PB-keuze, gesplitste
navigatie, disabled-states bij geen actief product
---
## [0.3.1] — eerder
Initiële stabilisatie-release.
---
## Pre-0.3.x
Foundation-werk (M0 t/m M8) is niet retroactief in dit changelog opgenomen.
Voor de volledige milestone-historie zie [docs/backlog/index.md](./docs/backlog/index.md).
---
[Unreleased]: https://github.com/madhura68/Scrum4Me/compare/v0.9.0...HEAD
[0.9.0]: https://github.com/madhura68/Scrum4Me/releases/tag/v0.9.0
[0.4.0]: https://github.com/madhura68/Scrum4Me/commit/615f0c8
[0.3.1]: https://github.com/madhura68/Scrum4Me/commit/ecc05dd

View file

@ -49,6 +49,7 @@ Scrum4Me biedt een lichtgewicht, web-based oplossing voor het beheren van sprint
## Documentation
- [CHANGELOG.md](CHANGELOG.md) — release-historie (Keep a Changelog)
- [docs/INDEX.md](docs/INDEX.md) — generated index of all docs (front-matter driven)
- [docs/glossary.md](docs/glossary.md) — domain terms (PBI, Story, MCP-job, etc.)
- [CLAUDE.md](CLAUDE.md) / [AGENTS.md](AGENTS.md) — agent instructions
@ -152,7 +153,7 @@ npm run dev
npm test
```
Verwacht: alle 69 tests slagen, 0 failures.
Verwacht: alle 445 tests slagen, 0 failures.
**API curl-tests (vereist lopende dev server + API token):**
@ -175,7 +176,7 @@ Handmatige generatie:
npm run db:erd
```
Tijdens lokale development draait `npm run dev` naast Next.js ook `npm run db:erd:watch`. Bij wijzigingen in `prisma/schema.prisma` wordt `docs/assets/erd.svg` automatisch opnieuw gegenereerd.
Optioneel: `npm run db:erd:watch` parallel aan `npm run dev` om bij wijzigingen in `prisma/schema.prisma` `docs/assets/erd.svg` automatisch opnieuw te genereren.
Gebruik `npx prisma db push` alleen om het schema naar de database te synchroniseren. Gebruik `npm run db:erd` om lokaal Prisma Client en de ERD te genereren. Gebruik in CI uitsluitend `npx prisma generate --generator client`.
@ -198,8 +199,11 @@ Zie [.env.example](.env.example).
| Variabele | Verplicht | Doel |
|---|---:|---|
| `DATABASE_URL` | Ja | PostgreSQL connection string voor Prisma |
| `DIRECT_URL` | Nee | Directe Neon connection string voor migraties |
| `DIRECT_URL` | Nee | Directe Neon connection string voor migraties (Prisma `directUrl`) |
| `SESSION_SECRET` | Ja | Minimaal 32 tekens; gebruikt door iron-session |
| `CRON_SECRET` | Productie | Bearer-secret voor `/api/cron/*` routes — required als crons aan staan |
| `NEXT_PUBLIC_SENTRY_DSN` | Nee | Sentry DSN — zonder is de SDK een no-op |
| `SENTRY_ORG` / `SENTRY_PROJECT` / `SENTRY_AUTH_TOKEN` | Nee | Source-map upload tijdens build |
| `NODE_ENV` | Nee | Wordt door Node/Vercel gezet |
Vercel Analytics gebruikt geen project-specifieke environment variabele in deze app; de component staat in `app/layout.tsx`.