2026-09-02
Published
New Features
- The landing page has been redesigned to showcase product features with a new hero section, section-by-section feature highlights, and embedded product screenshots in browser frames.
- Product screenshots are now served as optimized static assets on the landing page with stable naming and ETag revalidation for reliable caching.
- A link to the LinkedIn Company Page now appears in the site footer, providing a direct path to the company's LinkedIn profile.
2026-08-23
Published
New Features
- A blog is now available at
/blogwith paginated posts ordered by date, full post pages at/blog/:slug, and RSS/Atom feeds for subscription. - New
/aboutand/storycompany pages are now available, containing owner-approved company information. - Blog posts with a future publication date are now automatically scheduled, appearing in feeds and search results only on their scheduled date without requiring a deploy.
- Scheduled blog posts excluded from the blog feed, RSS, Atom feeds, and sitemap until their publication date, and return a 404 error if accessed before then.
2026-08-22
Published
New Features
- Marketing navigation now displays context-aware login/dashboard links: signed-out users see a "Sign in" link to the login page, while signed-in users see a "Dashboard" link to the repository view.
- Defines a shared vertical-rhythm spacing convention as named constants, making it easy to apply consistent spacing across the site.
Improvements
- Repository list pagination tests now properly verify that partial results render correctly when the page limit is reached, catching cases where partial data and error states were indistinguishable.
- Applies the new spacing convention to confirmed drift instances, bringing them into alignment with the standard.
Bug Fixes
- API pagination now validates that the host is api.github.com before following link headers, preventing potential redirects to untrusted domains.
- Webhook deliveries for gated or paused repositories are now deferred instead of blocking the delivery queue, preventing them from starving other eligible deliveries.
- Preview pane now correctly detects and surfaces a notice when some pull requests could not be fetched, instead of silently showing an incomplete preview.
- Preview cache is now bypassed when any requested pull requests fail to fetch, ensuring the next preview attempt retrieves the full set rather than serving a stale partial result.
- The active page in the Settings menu is now clearly highlighted so you can always see which page you're currently viewing.
- The repository picker in the connect flow now correctly updates when you change the owner selection, fixing the stuck "Loading repositories…" indicator and stale repository lists.
- The repository select control now properly reflects the owner selection state, preventing disabled state from becoming out of sync.
- Pro-upsell panels now have consistent spacing across analytics pages and reader subscription settings, eliminating layout gaps that appeared next to filters and intro text.
- Plan choice cards now have proper spacing above them and aligned call-to-action buttons at the bottom, so the layout reads consistently regardless of plan description length.
2026-08-21
Published
New Features
- GitHub disconnect now fully revokes your OAuth grant, allowing you to switch to a different GitHub account when you reconnect.
- Account switching is now available as an entry point in onboarding, so you can change your GitHub account without starting from scratch.
- A public /contact page now handles contact form submissions and routes inquiries to support@changelogpilot.com, replacing the previous personal email address.
- Documentation is now linked from the footer and navigation menus throughout the app, making it easier to discover help resources.
Bug Fixes
- Users can now successfully connect an additional repository to their account from the repo list page.
- The repository picker now displays private repositories that you have access to, not just public ones.
- Repository picker now shows all your GitHub repositories, even if you have more than 100; previously, repos beyond the first 100 were silently hidden.
- Members with existing repository access but missing GitHub authentication credentials are now directed to reconnect their GitHub account instead of being trapped in an infinite redirect loop.
- GitHub OAuth connection errors (including CSRF failures) are now displayed on the settings page instead of being silently swallowed during redirect, so you can immediately see what went wrong and retry.
- The GitHub settings page now correctly renders CSRF error messages instead of displaying raw error text.
2026-08-20
Published
New Features
- Free and Pro plan selection is now available as a step in the onboarding flow, shown after your first repository connects.
- The onboarding plan screen defaults to monthly billing for Pro plans and includes a toggle to switch to annual billing.
- Voice settings now include a Preview button that shows how your changelog will render with unsaved changes before you save them, using your actual changeset data.
- Brand assets including icon files, Apple touch icon, and BIMI logo are now properly configured and served across the application.
- Marketing pages now include an open graph image (og:image) in their metadata for better preview appearance when shared on social media and messaging platforms.
- Markdown content with frontmatter (title, description, section, order, date, draft status, and slug) can now be loaded at boot time from content directories, with validation of required fields, slug format, and uniqueness.
- A shared content substrate is now available to power documentation and marketing content pages, with markdown rendering, SEO head metadata support, and sitemap generation.
2026-08-19
Published
New Features
- Webhook endpoints now block outbound requests to private IP addresses, loopback addresses, and cloud metadata services, preventing Server-Side Request Forgery (SSRF) attacks.
Improvements
- Webhook URLs are validated at creation time and again immediately before each delivery attempt to protect against DNS rebinding attacks.
- Subscription confirmation counting now uses SQL COUNT queries instead of fetching entire result sets, improving performance when checking subscription status.
- Published entries counting now uses SQL COUNT queries instead of fetching entire result sets, improving performance when rendering billing settings.
- Repository entry listings now load significantly faster by pushing pagination into the database layer instead of loading all entries into memory.
2026-08-18
Published
New Features
- Widget error pages now display a 'Powered by ChangelogPilot' footer link, enabling acquisition tracking even when a widget encounters a 404 or 403 error.
- API tokens are now available for read-only access to published entries. Create tokens in your account settings with scoped access to your owned repositories, or enable access to all of your repositories.
- The read API endpoint GET /api/v1/repos/:owner/:repo/entries now allows you to fetch published entries programmatically, with support for pagination and individual entry retrieval.
- API access is rate-limited to approximately 60 requests per minute per token to ensure fair use.
- Team members can now be invited to repositories by email with a specific role (Owner or Admin), with pending invitations sent via magic link and seat capacity enforced based on your plan (Free tier allows no invites, Pro tier caps at 5 active or pending members).
- Repository ownership can now be transferred to another team member; the previous owner is automatically retained as an active Admin to prevent orphaning the repository.
- Team member roles can now be changed or members can be removed from repositories (except the owner role, which requires transfer instead).
- Repository access control now exclusively grants permissions to the repository owner and active team members—dashboard access via GitHub-derived collaborator status is no longer granted, making team membership the authoritative access source.
- Access team roster and management controls in repository settings, including the ability to invite teammates, adjust member roles, and view seat usage for your team.
- Transfer repository ownership to another team member from the team management interface.
- A "Shared with me" section now appears on the repositories list, showing repositories where you are an active team member, making it easier to access shared projects.
- Free plans display an invite prompt to upgrade to Pro in order to add teammates, and over-seat or over-owned-cap warnings alert you when you've reached plan limits.
- Create, list, and revoke API tokens with per-token scope control (all repositories or a single owned repository) and read-only access.
- Create, list, disable, enable, and delete webhooks with HTTPS-only validation and view recent delivery attempts with status and response codes.
- API and webhook management is restricted to repository owners; non-owners see a locked state instead of UI elements.
- Free plans now display current month usage in a new billing usage panel, showing entries published and repository count against your plan limits, with a non-blocking notice if you exceed fair use.
- Pro plans now display billing usage including entries published this month against your 200 entries/month limit and subscriber count against the 10,000 subscriber cap.
- Entries published per calendar month are now metered on Free (25/month limit) and Pro (200/month limit) plans; exceeding the limit triggers a warning but does not prevent publishing.
- Pro plan subscriber cap is now enforced at 10,000 confirmed subscribers per repository; attempting to add a new subscriber beyond this cap is rejected with a 403 error.
Improvements
- API tokens and webhook signing secrets are displayed only once when created and are never exposed in lists, logs, or subsequent API calls.
Bug Fixes
- Widget loader no longer logs a postMessage origin-mismatch error when the panel opens for the first time.
- When a data repository fails to load, the embedded widget now displays a branded error panel with the appropriate HTTP status (404 or 403) instead of plain text.
- The upgrade upsell on the over-limit notice now shows only to Free plan users, not Pro users.
2026-08-16
Published
New Features
- Repository pages now display a compact stats band showing key metrics like total views and views since the latest release, with different stats shown based on your plan level.
- Stats on the repository page include an interactive sparkline chart that loads with the page and shows trends over time.
- A "See full analytics" link on the repository page lets you drill down into detailed analytics for that repository.
- Embed a 'What's new' widget on your own site, allowing your users to see the latest updates without leaving your application.
- Embedded widgets are tracker-free and respect strict content security policies, ensuring privacy-compliant embeds that cannot be framed by untrusted origins.
- Embeddable widgets are available as a Pro tier feature, with a badge displayed to indicate the source.
- The changelog widget loader is now available as a bundled JavaScript file with aggressive caching and cross-origin access enabled.
- A floating "What's new" trigger now appears in your application (customizable via
data-mountselector), with an unread indicator dot that tracks new updates locally without sending data to us. - The changelog widget now loads in a sandboxed iframe that respects your application's Content Security Policy and validates all cross-origin communication.
- Pro users can now install the changelog widget on their sites using a simple copy-paste code snippet from the widget settings page.
- The widget settings page includes a static preview showing users how the widget trigger will appear on their site.
- Free users see an upgrade prompt on the widget settings page explaining that the widget is a Pro feature, with a link to billing.
Bug Fixes
- The public embed widget no longer returns a 500 error when given an invalid repository ID; it now correctly returns a 404 instead.
2026-08-15
Published
Breaking Changes
- BREAKING: Settings entry point has changed — the repository settings button now navigates to
/settings/repos/:repoId/repositoryinstead of the previous path. Old direct links to settings will be automatically redirected. - BREAKING: The legacy bulk settings save endpoint (
POST /settings/repos/:repoId) has been removed. Settings changes now save per-section — update any integrations or automation that relied on the old endpoint.
New Features
- A public pricing page is now available at
/pricing, displaying Free and Pro plan details with live Stripe-sourced pricing that is automatically kept in sync across the page copy, pricing cards, and structured data. - The pricing page includes a comparison table showing plan features and limits, FAQs, and a closing call-to-action to start your free trial.
- The landing page primary call-to-action now invites users to start for free directly, removing the beta waitlist barrier and enabling immediate self-serve access to the product.
- The beta waitlist section has been reframed as a product newsletter signup, allowing interested users to stay informed about updates while keeping the existing mailing list in place.
- The pricing page is now accessible from a navigation link on the homepage.
- The Analytics dashboard is now available as a top-level feature, showing cross-repository insights including views over time, traffic by source, top referrers, and subscriber growth data.
- Free plan users can now access analytics, with date range filtered to the latest release of each repository; Pro plan subscribers can view the full historical data.
- Analytics can be filtered by repository and date range, with a toggle to include or exclude AI-generated series data.
Improvements
- Pricing page copy has been updated to clarify that the Free plan includes 1 seat, not 2.
- Pricing page section heading changed to "Fair and upfront" to better reflect the messaging.
- Call-to-action text on the pricing page now reads "Move up to Pro when you want more customisation or more scale" for clarity.
- Pricing page now consistently uses "no credit card" instead of "no card" throughout.
2026-08-13
Published
New Features
- You now receive a one-time dismissible notice when a pending custom domain is automatically verified, so you're informed of the change without needing to reload your settings.
- Voice personas are now available on the Free plan, allowing any repository to use writing voice/persona selection in generated drafts.
- A new repository-rooted navigation shell is now available for settings, allowing you to navigate between Repository, Publishing, Branding, Changelog voice, Custom domain, and Reader subscriptions sections from a persistent sidebar.
- The Publishing section in repository settings now displays webhook status and allows you to configure watched branch, auto-draft, and auto-publish settings.
- Customize your repository's branding with theme presets and colors; free repos can use preset themes while Pro repos can set custom colors, hide the repository badge, and upload a logo.
- Branding settings now save independently without affecting other repository settings like display name, watched branch, or draft/publish behavior.
- Branding customization is now enforced at the server level; free repositories cannot save custom colors or hide-badge settings even if submitted, and will only retain the theme selection.
Improvements
- Publishing settings are now saved independently without affecting other repository configuration like display name, branding, or voice settings.
- Webhook registrations are now managed automatically when you toggle auto-draft publishing, eliminating manual webhook configuration.
Bug Fixes
- Webhook failures that occur before a claim is taken now return HTTP 503 instead of 200, allowing Stripe to retry the event instead of silently dropping it.
2026-08-12
Published
New Features
- Draft-ready emails now display a notice when the changelog generation may have missed older pull requests due to GitHub Search API limits, helping you identify if your draft is potentially incomplete.
- The changeset UI now shows a visual warning when changelog generation may have reached GitHub Search API limits, making it clear when a draft might be missing historical data.
- Publish confirmation emails now display a notice when source data was truncated due to window size limits, matching the behavior already shown in draft emails.
- Webhook endpoints for Stripe, GitHub, and Resend now enforce request size limits, providing protection against oversized payloads while maintaining full signature verification security.
- Custom branding colours now include a native colour picker swatch paired with each text input, making it faster to choose and adjust your brand colours visually.
- A live preview panel displays your chosen brand colour palette in context—showing how your heading, body text, and accent link will appear with the selected background colour.
- Tenants can now upload custom logos directly to your product; logo bytes are stored securely in an S3-compatible object store rather than in the database, keeping your database lean.
- Logo uploads enforce a 2 MiB size limit and dimension constraints to ensure optimal performance and display.
- The object store can be configured using either explicit S3 environment variables or Fly-native environment variable names; if configuration is incomplete or missing, uploads remain disabled and the system falls back to external URL logos without error.
- Pro customers with a custom logo can now white-label the public changelog header to display their own branding instead of the ChangelogPilot mark.
Improvements
- Contrast warnings now appear client-side when you select brand colours that do not meet WCAG-AA accessibility standards, giving you immediate feedback before saving.
- CSP violations are now reported to the server, allowing you to monitor policy breaches in production instead of seeing them silently fail in the user console.
- CSP reports are rate-limited to prevent abuse, with a maximum of 30 reports per minute per client IP.
- The custom logo previously displayed above the changelog title has been moved into the header, consolidating white-label branding into a single location.
Bug Fixes
- Concurrent generate requests for the same repository are now properly serialized, eliminating duplicate generation work.
- Custom domain verification no longer auto-promotes pending domains if the account has downgraded and lost serving entitlement, preventing unnecessary certificate issuance for non-entitled accounts.
- Boot guard test for cold-start performance is now more reliable under heavy machine load by adding retry logic.
- Custom domain verification now respects the grace period for downgraded accounts, allowing users to verify domains that are already serving during the 14-day grace window instead of returning an error.
- Concurrent backfill jobs for the same repository are now prevented via atomic locking, eliminating a race condition where simultaneous requests could both start independent backfill runs.
- Custom domains now correctly reject apex domains registered under multi-label public suffixes (for example,
example.co.uk), preventing configuration of domains that cannot serve or accept TLS connections. - Text input values are now preserved when the repository picker loads, so users who start typing before the fragment arrives won't lose their input.
- Prevent a slow backfill run from becoming stale and incorrectly blocking a fresh restart after a retry has already begun.
- Draft generation no longer creates duplicate draft cards and notification emails when a stale run finishes after a retry has been initiated.
- Asset manifest loading now correctly caches each manifest file independently by path, preventing incorrect cache hits when multiple manifest files share the same modification time.
2026-08-11
Published
New Features
- Failed htmx requests (authentication failures, network errors, server errors) now show a shared error notice at the top of the page, giving users immediate feedback instead of silent failure.
Improvements
- Unrecognized bounce types now trigger a warning log instead of silently continuing, making it easier to spot configuration or provider changes that affect bounce handling.
- Bounce logs now include the email ID, providing better context when diagnosing bounce issues.
- Confirmation dialogs for publish and archive actions now use an inline custom panel instead of the browser's native confirmation dialog, providing a consistent and styled experience that matches the rest of the application.
- Confirmation messages for publish and archive actions can now include custom labels via the
data-confirm-labelattribute, allowing for more flexible and context-specific prompts.
Bug Fixes
- Requests with null bytes in asset or static file paths now return 404 instead of 500, preventing crashes when processing malformed requests.
- Pagination links now redirect correctly when a custom domain has lapsed;
/page/2,/page/3, and similar pagination URLs are preserved in the redirect instead of collapsing to the root page. - Webhook logs now accurately report whether a daily digest entry was finalised by the current request or by a concurrent request, eliminating misleading success messages when the finalisation race was lost.
- Empty tone field on re-render now correctly defaults to the documented balanced midpoint (3) instead of echoing 0 to the range slider.
- Bounce type matching is now case-insensitive, preventing email addresses from being incorrectly handled if bounce type casing changes.
- The purge retention window now floors at a minimum of 1 day, preventing accidentally low values (such as fractions of a second) from being set via configuration.
- The
nowoption in purge sweep configuration is now documented as test-only to clarify its intended usage. - Atom and RSS feeds for repositories that exist but have never published now return 404 instead of an empty 200 response, preventing the feeds from being used to detect whether a repository exists.
- Repository subscription requests for repositories that exist but have never published now return 404 instead of accepting the request and sending a confirmation email, preventing the subscribe endpoint from being used to detect whether a repository exists.
- Rate limiting on sign-up and subscription endpoints now correctly identifies clients using Fly's trusted IP header instead of the client-supplied x-forwarded-for header, preventing attackers from bypassing rate limits by rotating the header on each request.
- Rate limiter memory usage is now bounded; old per-IP buckets are automatically evicted instead of accumulating indefinitely for every unique IP seen since process start.
- Stranded generate or backfill runs that have been in-flight for longer than 15 minutes are now automatically treated as failed, allowing new runs to start without requiring manual intervention.
- Crashed processes that leave a run in a generating or running state now self-heal: the stalled run is displayed with an error state and retry option, unblocking the concurrent-run guard so fresh attempts can proceed.
2026-08-10
Published
New Features
- Pro tenants can now toggle reader email subscriptions on or off per repository, giving control over whether a repository offers email subscription to readers.
- The subscribe widget on public changelogs is now hidden when email subscriptions are disabled for a repository.
- The public subscribe endpoint now returns a 404 when email subscriptions are disabled for a repository, consistent with Free tier behaviour.
- Reader subscribers are now notified when webhooks auto-publish changes, matching the notification behaviour of manual publishes.
- Email bounce and complaint events from Resend are now automatically processed, suppressing subscriptions when addresses bounce or mark mail as spam.
- A new webhook endpoint validates and ingests Resend bounce and complaint notifications with cryptographic signature verification to ensure data integrity.
- Custom domains with pending verification now automatically verify in the background once DNS is properly configured, removing the need to manually click the Verify button — though the button remains available as an immediate fallback.
Improvements
- Draft prompts now apply a comprehensive banned-word denylist across all tier levels (free and Pro), preventing changelog entries from using filler language like 'leverage', 'utilize', 'seamless', or announcement clichés like 'excited to announce'.
- The Voice settings page now displays with the same visual structure and white card panel as all other settings pages, and includes the navigation rail and proper spacing.
- Daily digest changesets now defer reader notifications until the digest is final and complete, ensuring subscribers receive one notification containing all merged changes rather than multiple partial notifications.
- Requests to
/page/1on custom-domain changelogs now redirect to/to avoid duplicate content, improving SEO. - Custom domain verification now updates inline with a loading spinner instead of reloading the entire page, providing faster feedback while the DNS check runs.
Bug Fixes
- Voice settings submission errors now preserve the other settings you entered instead of resetting them to defaults, so a typo in one field doesn't lose your other choices.
- Duplicate subscription completion is now detected and logged: when two checkout sessions complete simultaneously for the same account, the system logs an error-level alert with both subscription IDs to prevent silent double-billing.
- Fixed a bug where Pro tenants who entered an invalid timezone when configuring repository triggers would see the free-tier upsell page instead of their actual settings, and inadvertently turn off email subscriptions when saving.
- Custom-domain changelogs now support pagination with
/page/NURLs, matching the pagination available on platform-hosted changelogs. - Custom-domain changelogs now properly cap page size and return 404 for out-of-range page requests, improving SEO and reducing unnecessary crawl weight.
- Webhook digest notifications now handle concurrent updates correctly, preventing stale data from triggering incorrect notification logic.
- Webhook notifications for draft and auto-publish digest closures now apply the same safety guard and logging as final closures.
2026-08-09
Published
New Features
- Voice DNA now supports edtech industry presets, allowing you to configure the voice to expand education-specific acronyms (LMS, SIS, SCORM, LTI) for mixed audiences of teachers, administrators, and students.
- Voice DNA now supports agtech industry presets, allowing you to configure the voice to expand precision agriculture acronyms (GPS, IoT, yield-related terms) in plain language for agricultural technology contexts.
- Voice DNA now supports telecom industry presets, allowing you to configure the voice to retain standard carrier and network terminology (5G, VoIP, SIP, QoS, SLA) while expanding less-common telecom acronyms.
Improvements
- The Changelog voice settings page is now discoverable from the Repository settings form, making it easier to configure the tone and style used when generating changelog drafts.
Bug Fixes
- The billing settings page now shows a pending-cancellation state when a subscription is scheduled to cancel at the end of the current billing period, so customers receive clear acknowledgement that their subscription is winding down.
- The ChangelogPilot brand logo in the sticky header on custom domains now correctly links to changelogpilot.com instead of the custom domain's root, preserving the acquisition loop back to the platform.
2026-08-07
Published
New Features
- Hosted changelog pages (Pro) now support full custom branding with your own palette — choose background, text, and accent colours that match your brand identity.
- Display your logo in the changelog header by providing a hosted logo URL.
- Pro accounts can now hide the 'Powered by ChangelogPilot' footer badge from public changelog pages.
- Visitors to hosted changelogs can now subscribe by email to receive notifications when new entries are published. Subscriptions use double opt-in confirmation to ensure valid email addresses.
- Subscribers can unsubscribe from email notifications at any time, and the system automatically manages bounced emails.
- Drafters can now select from a set of predefined voice presets to customize the tone and style of generated changelog entries, including options for persona, format, verbosity, emphasis, and industry-specific terminology.
- Voice presets are available in multiple locales, allowing generated changelog entries to be tailored to regional preferences and language conventions.
2026-08-06
Published
New Features
- Free tier accounts are now limited to backfill data from the last 30 days and a maximum of 10 entries per backfill, while paid Pro accounts can access unlimited historical backfill.
- Pro plan users can now serve their changelog at a custom domain (e.g. changelog.acme.com) by adding the domain in repo settings, publishing a DNS ownership challenge, and configuring a CNAME.
- When downgrading from Pro, custom domain service continues for 14 days to allow time for migration before traffic is redirected to the platform page.
- Public changelog pages are now paginated with 20 entries per page, making it easier to browse through large changelog histories without loading hundreds of entries at once.
Improvements
- Backfill depth limits are now enforced at generation and import time based on the current subscription plan, preventing jobs created on a higher tier from exceeding limits after a plan downgrade.
- Navigation links (Older/Newer) and pagination controls on public changelog pages now correctly manage page URLs and canonical link relationships.
Bug Fixes
- Stripe webhooks are now safely reprocessed after a crash or internal error, preventing events from being permanently lost when the service fails between acknowledging receipt and completing the transaction.
- Session expiry checks now respect injected test clocks, fixing flaky tests that passed at authoring time but failed once real time crossed the hardcoded expiry timestamp.
- Manual entry form now defaults the display date to your local date instead of UTC, so the pre-filled date matches your actual current date regardless of timezone.
2026-08-05
Published
New Features
- Users can now upgrade or downgrade their subscription plan through Stripe Checkout and manage their subscription details via the Stripe customer portal.
2026-08-04
Published
New Features
- Public hosted changelog pages now display a subtle "Powered by ChangelogPilot" footer badge that links back to the landing page, enabling measurable acquisition from hosted changelogs.
- Hosted changelogs now publish Atom and RSS 2.0 feeds, available free on all plans at
/atom.xmland/rss.xmlendpoints, listing published entries in reverse chronological order with full rendered content. - Feed readers can now auto-discover changelog feeds through standard
<link rel="alternate">tags in the hosted page<head>.
Improvements
- The demo section on the landing page now displays a clearer, more concise caption ("From a production changelog.") styled as secondary text, making the section's purpose immediately obvious.
- Destructive action forms (such as "Disconnect GitHub" and "Log out everywhere") now have consistent top spacing across settings pages.
- Changelogs with no published entries now return a valid empty feed instead of an error, allowing feed subscriptions to work correctly from day one.
Bug Fixes
- Calendar operations across wholly-skipped days (such as Pacific/Apia's 2011-12-30 International Date Line crossing) now produce gap-free windows, preventing digest operations from inadvertently reaching back into previously-covered days.
- CSRF protection is now enabled for GitHub account disconnection and global logout actions, preventing cross-site request forgery attacks on these sensitive operations.
2026-08-03
Published
Improvements
- Account settings page now has consistent spacing between the description and the "Log out everywhere" form.
- Removed placeholder text from the account details card that promised future account preferences but was not yet implemented.
Bug Fixes
- Repository slug assignment is now protected against concurrent rename collisions, ensuring that simultaneous operations cannot cause silent reconciliation stalls.
- Fixed calculation of local day start in timezones where the spring-forward DST transition occurs exactly at midnight, ensuring the correct local day is never crossed on these rare transition dates.
2026-08-02
Published
New Features
- Public changelog pages now support six predefined colour themes (Daylight, Solstice, Hearth, Midnight, Aurora, and Fjord), selectable per repository to match your preferred visual style.
Improvements
- Colour themes are applied server-side with no flash of unstyled content or JavaScript dependency, ensuring the correct theme appears immediately when the page loads.
Bug Fixes
- Daily digest webhook now correctly includes only the PR that triggered it in the initial draft, preventing earlier PRs from the same day from being included in the changeset.
- Fixed a bug where the daily digest auto-publish feature could include pull requests from the previous day in the generated changelog entry, causing content to diverge from the actual changes being recorded.