All updates
branding
settings
aggregation
github

Branding page, scheduled aggregation, PR‑merge support, and settings reorg

  • Branding page — customise the public changelog lookA new Branding page lets you set the changelog title and SEO description, upload favicon and light/dark logos, pick theme and primary colours for light/dark mode, and choose heading/body Google Fonts. Uploaded assets are stored in a dedicated Supabase Storage bucket and used by the public changelog.
  • Scheduled aggregation and PR‑merge publishingYou can now publish entries by schedule (daily/weekly/monthly) or by PR merge. A background aggregation pipeline generates period summaries, an hourly scheduler queues due projects, and switching to scheduled publishing automatically backfills historical period summaries.

Added

  • Branding page: a full settings form to set changelog title, SEO description, favicon/logo uploads, theme, light/dark primary colours, and heading/body Google Fonts.
  • Branding uploads API and storage: server-side upload route that validates images (≤5 MiB) and stores them in a new public Supabase Storage bucket (project-assets).
  • Aggregation pipeline: new modules and durable functions to generate daily/weekly/monthly period summaries, including an hourly scheduler, LLM prompt builder/writer, and a backfill job to regenerate history.
  • On-demand generation API: UI can trigger generation/backfill for a specific period; existing entries are returned immediately or generation is queued.
  • PR merge support: merged GitHub pull requests now produce a single, unified changelog entry summarising all commits in the PR.
  • Tooling: a production seeding helper (scripts/seed-prod.mjs) and pnpm db:seed:prod were added; .env.local.example now documents PROD_DB_URL for running seeds against production.
  • New prompts seeded for period summaries (daily, weekly, monthly) and a curated set of section/component types to shape aggregated entries.

Changed

  • Project settings reorganised: tabs are now General, Repositories, LLM, Publishing, and Danger — the GitHub tab is renamed to Repositories and the Changelog tab is now LLM.
  • Publishing model simplified: a single trigger_type controls publishing (on_commit | on_pr_merge | scheduled). When scheduled is selected you can choose frequency, time, timezone and week start.
  • Branding applied at runtime: public changelog pages now inject scoped CSS and (optionally) Google Fonts so chosen fonts and primary colours are reflected immediately on the public page.
  • Public changelog visuals: accent borders and the thin top bar now use the configured primary colour variable instead of a hardcoded colour.

Fixed / Improved

  • Display date accuracy: changelog entries now show the real activity date (commit/merge) by preferring period_start over published_at/created_at, so public dates reflect when changes actually happened.
  • Entry write behaviour: entries written by the pipeline now store the commit/merge timestamp so aggregated and PR entries display correct dates.

Tooling & Ops

  • Seed and production DB support: added scripts/seed-prod.mjs, pnpm db:seed:prod, and a documented PROD_DB_URL example to help run database seeds safely against production.
  • Supabase storage config: project-assets bucket added to config with size/mimetype limits and RLS policies for public read + service-role uploads.

Backlog & Next steps

  • Planned entitlement gating for aggregation views (day/week/month) to tie period summaries to plan tiers.
  • Third‑party analytics integrations (PostHog, GA, GTM) for the public changelog page are proposed but not yet wired into the UI.
  • GitLab support and workspace-level VCS installation management are included in the backlog; the Repositories tab prepares the UI for multi‑VCS support.