source: Klonkt/src/routes/changelog.js@ 3f4049e

main
Last change on this file since 3f4049e was 90259da, checked in by roboburr <roboburr@…>, 3 months ago

feat: release tracking — version in footer links to /changelog

  • CHANGELOG.md as source of truth; version bump 1.0.0-beta.1 -> beta.2.
  • Public /changelog page renders the changelog (marked) + shows the federation proto alongside the app version.
  • Footer version ("Klonkt Beta vX") is now a link to /changelog.

Circles: app version is independent of KLONKT_PROTO (federation proto,
now 2) — a version bump does not affect federation. The /changelog page
shows the proto explicitly so each release makes it clear which
federation version the instance speaks.

Co-Authored-By: Claude <noreply@…>

  • Property mode set to 100644
File size: 1.3 KB
Line 
1/**
2 * Publieke wijzigingen-/release-pagina.
3 *
4 * GET /changelog -> rendert CHANGELOG.md (de bron van waarheid voor releases).
5 *
6 * De app-versie (footer, package.json) is bewust losgekoppeld van de
7 * cirkel-federatie-proto (KLONKT_PROTO): een versie-bump is cosmetisch en raakt
8 * de federatie niet. We tonen de proto hier expliciet zodat per release zichtbaar
9 * is met welke federatie-versie deze instance praat (cirkels = lockstep per proto).
10 */
11
12import express from 'express';
13import fs from 'fs';
14import path from 'path';
15import { fileURLToPath } from 'url';
16import { renderPage } from '../middleware/render.js';
17import { MarkdownService } from '../services/MarkdownService.js';
18import { KLONKT_PROTO } from '../services/CircleFederation.js';
19
20const router = express.Router();
21const __dirname = path.dirname(fileURLToPath(import.meta.url));
22const CHANGELOG_PATH = path.join(__dirname, '..', '..', 'CHANGELOG.md');
23
24router.get('/changelog', (req, res) => {
25 let html;
26 try {
27 html = MarkdownService.render(fs.readFileSync(CHANGELOG_PATH, 'utf8'));
28 } catch {
29 html = '<p>Geen wijzigingenoverzicht beschikbaar.</p>';
30 }
31 renderPage(req, res, 'pages/changelog', {
32 pageTitle: 'Wijzigingen',
33 bodyClass: 'on-changelog',
34 changelogHtml: html,
35 proto: KLONKT_PROTO,
36 });
37});
38
39export default router;
Note: See TracBrowser for help on using the repository browser.