diff --git a/CHANGELOG.md b/CHANGELOG.md index 13c6975..1cbc749 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,8 @@ and this project follows [Semantic Versioning](https://semver.org/). ## [Unreleased] +## [1.46.2] - 2026-10-28 + ### Added - **What's new before you update** — Site settings → Licence shows the release notes for every @@ -20,6 +22,9 @@ and this project follows [Semantic Versioning](https://semver.org/). a banner at the top of the dashboard for site admins and supervisors, at the times given. Close one with ×; current notices are also listed on the Licence page. +- **`WHATS-NEW.md`** — the release notes churches see, in plain language. The Hub reads it from git + with the version tags, so a release needs its section there before tagging. + Needs Cross Events Hub 1.4.0 for the notes, withdrawing and notices; with an older Hub the site works as before. diff --git a/WHATS-NEW.md b/WHATS-NEW.md new file mode 100644 index 0000000..a843454 --- /dev/null +++ b/WHATS-NEW.md @@ -0,0 +1,53 @@ +# What's new in Cross Events + +What each version changes for the church, in plain language. Churches see these notes on Site +settings → Licence before they ask for an update, so they can decide whether they want it. + + + +## 1.46.2 + +- **See what's new before you update.** When a new version is out, the Licence page lists what it + brings, so you can decide whether you want it. +- **Changed your mind?** Withdraw an update request, and your provider is told not to update the site. +- **Not now:** hide the "update available" reminder until the next version comes out. Updates that + fix a security problem or a serious bug are marked in red and can't be put off. +- **Notices from your provider**, such as planned maintenance, now show as a banner for site admins + and supervisors. + +## 1.46.1 + +- Behind-the-scenes maintenance. Nothing changes for you. + +## 1.46.0 + +- **Volunteer rosters:** set up serving roles (Welcome, Parking, Kids, Sound…) per event or session. + Anyone with an account can sign up under My account → Serving, or supervisors can assign people. +- Reminders by WhatsApp or email the day before a shift. +- **"Can't make it" swaps:** a volunteer asks for cover, and the first to accept takes the place. +- Volunteers check in by scanning the event's QR code; kids-room volunteers count as leaders on duty. +- Roster sheet with phone numbers and check-in times, and hours served per person. +- Fixed: the free kids check-in ticket was offered on the public event page. + +## 1.45.1 + +- The built-in privacy notice and terms of use are brought up to date for kids check-in, sessions, + certificates and campuses. If you published your own privacy notice, review it under Admin → + Privacy. + +## 1.45.0 + +- **Kids check-in:** a secure check-in and pickup for children's ministry, run from a staff desk, with + no label printers needed. +- Parents keep their children's details (allergies, medical and custody notes) and authorised adults + under My account → Kids. +- Each check-in gives the family a pickup code by WhatsApp or email; children can only be collected + with the code. +- Rooms with age ranges, capacity and ratios, live room screens, and an offline desk mode. diff --git a/backend/package-lock.json b/backend/package-lock.json index 8b788b7..8b46356 100644 --- a/backend/package-lock.json +++ b/backend/package-lock.json @@ -1,12 +1,12 @@ { "name": "event-management-backend", - "version": "1.46.1", + "version": "1.46.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "event-management-backend", - "version": "1.46.1", + "version": "1.46.2", "hasInstallScript": true, "dependencies": { "@prisma/adapter-pg": "^7.10.1", diff --git a/backend/package.json b/backend/package.json index b6fcc14..a9dbbc8 100644 --- a/backend/package.json +++ b/backend/package.json @@ -1,6 +1,6 @@ { "name": "event-management-backend", - "version": "1.46.1", + "version": "1.46.2", "description": "Event Management System Backend", "main": "src/index.js", "scripts": { diff --git a/docs/HANDOVER.md b/docs/HANDOVER.md index d9387e5..1ede0a6 100644 --- a/docs/HANDOVER.md +++ b/docs/HANDOVER.md @@ -1,6 +1,6 @@ # Handover — where things stand and how to carry on -Last updated: 2026-10-28, after **1.46.1** (and Hub 1.1.0). The plan itself is in +Last updated: 2026-10-28, after **1.46.2** (and Hub 1.4.0). The plan itself is in [ROADMAP-v2.md](./ROADMAP-v2.md) (decisions table at the end); the previous round of features is in [FEATURES-ROUND-1.md](./FEATURES-ROUND-1.md). @@ -16,6 +16,7 @@ encrypted settings unreadable or break existing installs. |---------|------| | 1.46.0 | **Volunteer rosters** (§5): serving roles per event or session, anyone signs up (or supervisors assign), day-before reminders, "can't make it" swaps that happen on accept (notify recipients emailed), self check-in with the event's QR code or by staff, kids-room roles count as leaders on duty, free volunteer ticket off by default, roster sheet and hours served. Also fixes the 1.45.0 kids ticket being offered publicly | | 1.46.1 | Removed the Gitea CI workflow (no runner): test, lint and deploy by hand | +| 1.46.2 | Licence page: what's new (from WHATS-NEW.md via the Hub), withdraw update request, "Not now", urgent updates, provider notices banner (Hub 1.4.0: releases from git tags, Notices page) | | 1.45.1 | Privacy notice (built-in text) and terms of use brought up to date with kids check-in, sessions, certificates, campuses, the Hub heartbeat and where data is stored. Installs with a published notice must publish a new version themselves | | 1.45.0 | **Kids check-in** (§4), fully digital: families/children/authorised adults kept between events (My account → Kids), staff desk with pickup codes and a "write on the sticker" panel, rooms with age ranges and ratios, room screen (on duty, call parent, alerts), check-out by code (wrong code alerts, override with reason), offline desk with reserved codes, attendance through a free kids ticket; 6-month retention rule for children | | 1.44.0 | **Campus-scoped staff** (§12 part 2): Admin → Users "Limit to campuses"; `utils/campusScope.js` on every staff/supervisor route (and owner-or-staff routes), lists filtered, scanner names the other campus, church-wide events view/scan/door-only for scoped staff; route test `tests/campusScopeRoutes.test.js` | @@ -52,11 +53,15 @@ a test server (both done 2026-10-28). - **Release routine:** branch `feat/` → commit → bump with `npm version X.Y.Z --no-git-tag-version` in `.`, `backend` and `frontend` → add the - `## [X.Y.Z] - date` heading under `[Unreleased]` in CHANGELOG.md → `git merge --no-ff` + `## [X.Y.Z] - date` heading under `[Unreleased]` in CHANGELOG.md → write the church-facing + `## X.Y.Z` section in **WHATS-NEW.md** (plain language; `— urgent` in the heading for a security + or serious fix) → `git merge --no-ff` into `main` → `git tag vX.Y.Z` → `git push origin main vX.Y.Z`. One minor version per feature. - **Before tagging:** run `npx eslint src` in `frontend` over the **whole** app (the deploy runs `next build`, which fails on any lint error, e.g. an unescaped ' or " in JSX text). If a dev server is running, a full check build needs its own folder: `NEXT_DIST_DIR=.next-buildcheck npx next build` (then delete it and `git checkout frontend/tsconfig.json`). -- **Changelog:** add entries to `[Unreleased]` as you go, in plain language. +- **Changelog:** add entries to `[Unreleased]` as you go, in plain language. CHANGELOG.md is the + full log; WHATS-NEW.md is what churches see before updating (the Hub reads it from the newest + tag every 15 minutes and sets the latest version from the tags — nothing to do in the Hub). - **Docs to keep in step:** CHANGELOG.md, FEATURES.md, README.md, SETTINGS.md, backend/API_DOCUMENTATION.md, the `/docs` route list in `backend/src/index.js`, and in-app help in `frontend/src/content/help/` (register new pages in `registry.ts`). diff --git a/docs/hub-protocol.md b/docs/hub-protocol.md index eac96af..b0b51f8 100644 --- a/docs/hub-protocol.md +++ b/docs/hub-protocol.md @@ -117,8 +117,9 @@ X-Hub-Signature: } ``` -- **`releases`** — what's new in each version, written by Joshua on the Hub's Releases page, so the - church can decide whether to ask for the update. `notes` is plain text; lines starting with `- ` are +- **`releases`** — what's new in each version, so the church can decide whether to ask for the + update. The Hub takes the versions from the Cross Events repository's `v*` tags and the notes from + its `WHATS-NEW.md`. `notes` is plain text; lines starting with `- ` are a list. `urgent` marks security or serious bug fixes: the install shows those in red and doesn't let admins put them off. The highest release is `latestVersion`. - **`notices`** — banners Joshua posts on the Hub's Notices page (`level`: `info`, `maintenance` or diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 19520ab..f70eb07 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -1,12 +1,12 @@ { "name": "hope-events-frontend", - "version": "1.46.1", + "version": "1.46.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "hope-events-frontend", - "version": "1.46.1", + "version": "1.46.2", "dependencies": { "@dnd-kit/core": "^6.3.1", "@hookform/resolvers": "^5.2.1", diff --git a/frontend/package.json b/frontend/package.json index dc57ecf..ca3ad1e 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -1,6 +1,6 @@ { "name": "hope-events-frontend", - "version": "1.46.1", + "version": "1.46.2", "private": true, "scripts": { "dev": "next dev --turbopack", diff --git a/package-lock.json b/package-lock.json index 13cd6bd..8094446 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "hope-events", - "version": "1.46.1", + "version": "1.46.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "hope-events", - "version": "1.46.1", + "version": "1.46.2", "license": "ISC", "devDependencies": { "@playwright/test": "^1.64.0", diff --git a/package.json b/package.json index 5aa02ca..9b7bd92 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "hope-events", - "version": "1.46.1", + "version": "1.46.2", "main": "index.js", "scripts": { "dev:backend": "cd backend && npm run dev",