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:
parent
54a2511476
commit
7529fd54bc
2 changed files with 92 additions and 3 deletions
85
CHANGELOG.md
Normal file
85
CHANGELOG.md
Normal 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
|
||||
10
README.md
10
README.md
|
|
@ -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`.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue