Skip to content
This repository was archived by the owner on Mar 5, 2026. It is now read-only.

Blog - Prepare v0.24.0 release post & migration post#63

Draft
delano wants to merge 14 commits intomainfrom
claude/prepare-v0.24-release-DXcqT
Draft

Blog - Prepare v0.24.0 release post & migration post#63
delano wants to merge 14 commits intomainfrom
claude/prepare-v0.24-release-DXcqT

Conversation

@delano
Copy link
Member

@delano delano commented Feb 18, 2026

Summary

  • Add v0.24.0 release announcement blog post ("The Architecture Release")
  • Add separate upgrade guide draft (dot-prefixed, excluded from builds)
  • Add release SVG illustration with amber/gold theme

Release Announcement

Concise, ~90-line post covering the full scope of v0.24.0 (5,000+ commits):

  • Architecture: Rack 3 + Otto 2 migration, Familia v1 to v2 rewrite, two operational modes (simple/full)
  • Authentication: Rodauth-based auth with MFA, WebAuthn/passkeys, magic links, OmniAuth SSO, Argon2id
  • Organizations & Billing: Organizations replace Teams; entitlements, plan switching, HMAC federation
  • API: v3 introduced, v1 reconstituted, guest /share endpoints, OpenAPI infrastructure
  • Background Jobs: RabbitMQ 4.3+ for email, notifications, billing webhooks, DLQ management
  • Also: 27-language i18n, dry-cli migration, SemanticLogger, health check endpoints
  • New Contributors: @aprivette, @jhob101, @david-garcia-garcia, @kh0mka

Upgrade Guide (Draft)

Dot-prefixed (.2026-02-18-upgrading-to-v0.24.md) so it's excluded from route generation. Covers:

  • Authentication mode selection (simple vs full vs disabled)
  • Configuration change table (7 renames/moves + 3 new keys)
  • Data migration steps (Familia v1 to v2 pipeline, transparent password migration)
  • Verification, rollback, and troubleshooting sections

TODOs remain for exact migration commands, verification checklist, and troubleshooting — these depend on the final release artifacts.

SVG

Amber/gold gradient (distinct from previous releases: indigo v0.19, blue v0.20, green v0.22.4, purple v0.23). Symbols: PostgreSQL elephant, RabbitMQ rabbit, triple-dot auth lock, migration arrow, config file. Hidden hover message: "The Architecture Release / PostgreSQL 17+ / RabbitMQ 4.3 / Organizations / API v3 / 5,000+ commits / 27 Languages"

Test plan

  • pnpm typecheck passes
  • Dot-prefixed upgrade guide excluded from route generation
  • Visual review of release post rendering
  • Visual review of SVG in browser
  • Fill remaining TODOs before publication

Draft post covers the key themes of the release: 5000+ commits,
new authentication modes (simple/full/disabled), PostgreSQL 17+
and RabbitMQ 4.3 requirements for full mode, multi-step data
migration, and manual upgrade intervention. Sections marked with
TODO for details to be filled before publication.

SVG uses an amber/gold gradient to distinguish from previous
releases and includes thematic symbols for PostgreSQL, RabbitMQ,
authentication modes, migration, and configuration.

https://claude.ai/code/session_01QYMYXVcGc2epJfR4BGKy7o
Rewrote the release announcement as a concise timeline statement
covering architecture, authentication, organizations, API v3,
background jobs, i18n, CLI, and logging — populated from rc0-rc8
release candidate notes. Removed upgrade steps, config migration
tables, and data migration details.

Created a dot-prefixed upgrade guide draft (.2026-02-18-upgrading-
to-v0.24.md) with the operational content: authentication mode
selection, configuration change table, data migration steps,
verification, and rollback. TODOs remain for exact migration
commands and troubleshooting.

Updated SVG hidden message to highlight Organizations and API v3
instead of auth modes, and 27 languages instead of data migration.

https://claude.ai/code/session_01QYMYXVcGc2epJfR4BGKy7o
@claude
Copy link

claude bot commented Feb 18, 2026

Claude encountered an error —— View job


I'll analyze this and get back to you.

@gemini-code-assist
Copy link

Summary of Changes

Hello @delano, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request introduces critical documentation for the upcoming Onetime Secret v0.24.0 release. It provides a detailed release announcement outlining the extensive architectural changes, new features, and operational enhancements, alongside a comprehensive upgrade guide to assist users in migrating from previous versions. The documentation covers new operational modes, authentication improvements, and updated system requirements, ensuring users have the necessary information for a successful transition.

Highlights

  • New Blog Posts: Added two new blog posts: a comprehensive release announcement for Onetime Secret v0.24.0 and a detailed upgrade guide for migrating from v0.23.x.
  • Architectural Overhaul: The v0.24.0 release, dubbed 'The Architecture Release', involves over 5,000 commits and introduces significant changes including modernization of the web framework (Rack 3, Otto 2) and a rewrite of the data model library (Familia v1 to v2).
  • Operational Modes: Introduced two primary operational modes: 'Simple' (Redis-only) and 'Full' (adding PostgreSQL 17+ for account data and RabbitMQ 4.3+ for background jobs), along with a 'Disabled' authentication mode.
  • Enhanced Authentication: Implemented Rodauth-based authentication in 'Full Mode', bringing features like Multi-factor authentication (MFA), WebAuthn/passkey support, magic link login, OmniAuth SSO, and Argon2id password hashing.
  • System Modernization: Updated various core components including a new Organizations and Billing system, API v3, RabbitMQ for background jobs, significant i18n improvements, CLI migration to dry-cli, and replacement of the custom logging system with SemanticLogger.
  • Manual Upgrade Required: Upgrading to v0.24.0 is not a drop-in replacement and requires manual intervention, including configuration file updates, authentication mode selection, and a multi-step data migration.
Changelog
  • content/posts/.2026-02-18-upgrading-to-v0.24.md
    • Added a new upgrade guide for Onetime Secret v0.24.0.
    • Detailed steps for choosing between Simple, Full, and Disabled authentication modes.
    • Provided a table of updated and new configuration keys.
    • Outlined the data migration process required due to the Familia v1 to v2 rewrite.
  • content/posts/2026-02-18-release-notes-v0.24.0.md
    • Created release notes for Onetime Secret v0.24.0, highlighting it as 'The Architecture Release'.
    • Summarized major changes in architecture, authentication, organizations, billing, API, and background jobs.
    • Mentioned updates to i18n, CLI, logging, and health check endpoints.
    • Acknowledged new contributors to the project.
  • public/img/blog/2026/release-0.24.svg
    • Included a new SVG illustration for the v0.24.0 release post, visually representing key architectural components.
Activity
  • The pull request description contains a link to a Claude AI session, suggesting it might have been used in the drafting process, but no explicit human comments or reviews are present in the description itself.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request prepares two blog posts for the upcoming v0.24.0 release: a release announcement and an upgrade guide. The changes look good overall, and the identified issues should be addressed before publishing.

Specifically, the upgrade guide's filename starts with a dot, which will likely cause it to be hidden and not published. There's also an inconsistency in its versioning compared to the post's title. An improvement for the new SVG image is suggested to make it more robust by embedding its font dependency. Finally, some TODOs need to be completed.

Please review my comments for details.

delano and others added 6 commits March 4, 2026 13:02
The file names for two blog posts were updated to reflect a later
publication date. The corresponding `date` frontmatter in each file was
also adjusted.
Correct the upgrade guide link and add details about new authentication
and threading.
Correctly apply `not-prose` class to post images and update a broken
link to the v0.24.0 release notes. Also, improve the alt text for
images.
Switch img tags to NuxtImg for optimized loading, self-host the
Zilla Slab font for the release SVG, and rewrite the v0.24.0
release notes with clearer narrative structure and motivation.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
delano and others added 2 commits March 4, 2026 17:43
Lychee interprets dots in slugs like v0.24 as file extensions,
which prevents --fallback-extensions from appending .md. Add an
ignore pattern for Nuxt Content route links with version numbers.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add archive path exclusion (files live in public/, not content/)
- Fix doubled content/content/ prefix in two 2025 post cross-links

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Prepares Onetime Secret v0.24.0 blog content by adding a release announcement post, an upgrade guide, and a new release illustration, plus updates the blog UI to render post images via Nuxt Image.

Changes:

  • Added v0.24.0 release announcement post and SVG release illustration.
  • Added an “Upgrading to v0.24.0” guide post.
  • Switched blog post hero images and the ImageModal component from <img> to <NuxtImg>.

Reviewed changes

Copilot reviewed 7 out of 9 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
public/img/blog/2026/release-0.24.svg Adds the v0.24.0 release illustration (animated/hover “hidden message” style).
public/fonts/ZillaSlab-Regular.woff2 Adds a public-served Zilla Slab font file referenced by the SVG.
content/posts/2026-03-04-release-notes-v0.24.0.md Adds the release announcement post content and metadata.
content/posts/2026-03-02-upgrading-to-v0.24.md Adds the upgrade guide content and migration steps.
app/pages/posts/[slug].vue Uses <NuxtImg> for the post header image and improves alt fallback behavior.
app/components/global/ImageModal.vue Uses <NuxtImg> for modal-trigger and modal images.
Comments suppressed due to low confidence (2)

content/posts/2026-03-02-upgrading-to-v0.24.md:74

  • “Postgresql” should be capitalized/spelled as “PostgreSQL” to match the rest of the post and the project’s standard naming.
For Postgresql, there is an initial schema setup that needs to be run before starting the application. See apps/web/auth/migrations/README.md.

content/posts/2026-03-02-upgrading-to-v0.24.md:96

  • Typo in the list of scripts: “tranform” should be “transform”.
Each phase of the migration is designed to be idempotent and can be re-run if needed. There is a yes/no gate before each phase begins. The upgrade.sh orchestration script assumes that both the "old" (`SOURCE_REDIS_URL`) and new redis connections (`TARGET_VALKEY_URL`) are configured and available. However the dump, tranform, and validate scripts can be run independently if you want to break up the process or re-run specific phases.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

You can also share your feedback on Copilot code review. Take the survey.


1. **Back up everything.** Redis data, configuration files, environment variables.
2. **Review authentication modes.** This determines whether there are any new system dependencies (see below).
3. **Consider a fresh install.** It's honestly a bit job to upgrade an existing deployment to v0.24.0 due to the significant changes in the authentication system and data model. If you don't have critical data or accounts that need to be preserved, it will be a lot easier to do a fresh install of v0.24.0 and start with a clean slate.
Copy link

Copilot AI Mar 5, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In the “Consider a fresh install” bullet, the phrase “a bit job” reads like a typo and is confusing in an upgrade guide. Consider changing it to “a big job” (or similar) for clarity.

Suggested change
3. **Consider a fresh install.** It's honestly a bit job to upgrade an existing deployment to v0.24.0 due to the significant changes in the authentication system and data model. If you don't have critical data or accounts that need to be preserved, it will be a lot easier to do a fresh install of v0.24.0 and start with a clean slate.
3. **Consider a fresh install.** It's honestly a big job to upgrade an existing deployment to v0.24.0 due to the significant changes in the authentication system and data model. If you don't have critical data or accounts that need to be preserved, it will be a lot easier to do a fresh install of v0.24.0 and start with a clean slate.

Copilot uses AI. Check for mistakes.

#### Environment Variables

Many new environment variables have been added to support the new authentication modes and features. Review the .env.example files for the most common settings. For the most environment vars are consumed in the YAML config files are load-time so the values must be set before starting the application.
Copy link

Copilot AI Mar 5, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Environment Variables paragraph is hard to parse (“For the most environment vars are consumed in the YAML config files are load-time…”). Reword this sentence to clearly explain where env vars are read from and when they must be set (e.g., “Most env vars are read at load time from the YAML config files, so they must be set before starting the app.”).

Suggested change
Many new environment variables have been added to support the new authentication modes and features. Review the .env.example files for the most common settings. For the most environment vars are consumed in the YAML config files are load-time so the values must be set before starting the application.
Many new environment variables have been added to support the new authentication modes and features. Review the .env.example files for the most common settings. Most environment variables are read from the YAML config files at application startup, so they must be set before you start the application.

Copilot uses AI. Check for mistakes.

## Troubleshooting

If you encounter issues during the upgrade process, please check the logs for detailed error messages. Common issues include misconfigured environment variables, missing dependencies (PostgreSQL, RabbitMQ), or data migration errors. If you need assistance, please reach open an issue on GitHub or submit feedback at https://ca.onetimesecret.com/feedback and I'll do my best to help you out.
Copy link

Copilot AI Mar 5, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Troubleshooting call-to-action sentence is ungrammatical (“please reach open an issue…”) and a bit hard to read. Consider rewriting it (e.g., “please open an issue…” / “please reach out by opening an issue…”) and splitting it into two sentences for readability.

Suggested change
If you encounter issues during the upgrade process, please check the logs for detailed error messages. Common issues include misconfigured environment variables, missing dependencies (PostgreSQL, RabbitMQ), or data migration errors. If you need assistance, please reach open an issue on GitHub or submit feedback at https://ca.onetimesecret.com/feedback and I'll do my best to help you out.
If you encounter issues during the upgrade process, please check the logs for detailed error messages. Common issues include misconfigured environment variables, missing dependencies (PostgreSQL, RabbitMQ), or data migration errors. If you need assistance, please open an issue on GitHub. You can also submit feedback at https://ca.onetimesecret.com/feedback and I'll do my best to help you out.

Copilot uses AI. Check for mistakes.
Everything from Simple Mode, plus:

- **PostgreSQL 17+**
- **RabbitMQ 4+**
Copy link

Copilot AI Mar 5, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

RabbitMQ version requirements are inconsistent between this upgrade guide (RabbitMQ 4+) and the release announcement (RabbitMQ 4.3+). Please align these (or add a brief note explaining why the requirement is broader here) to avoid confusing readers.

Suggested change
- **RabbitMQ 4+**
- **RabbitMQ 4.3+**

Copilot uses AI. Check for mistakes.
Comment on lines +1 to +4
---
layout: post
title: "Upgrading to Onetime Secret v0.24.0"
date: 2026-03-02
Copy link

Copilot AI Mar 5, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PR description says the upgrade guide is a dot-prefixed draft excluded from builds, but this file is not dot-prefixed and will be included in route generation (nuxt.config ignores only /posts/.…). Either update the PR description or rename/move this file to match the intended publishing behavior.

Copilot uses AI. Check for mistakes.
delano and others added 4 commits March 4, 2026 18:04
Merge content from the standalone upgrade guide into the blog
post. Replace the single linear flow with two paths: fresh
start (Path A) and in-place migration (Path B). Add auth mode
YAML examples, docker commands, config mapping reference,
expanded troubleshooting (CSRF, RabbitMQ, legacy Redis), and
a rollback section. Fix typos and grammatical errors.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…sections

Add migrate-or-fresh-start decision matrix, disabled auth mode,
billing/entitlements, config changes, frontend stack upgrades
(Vite 6, Tailwind v4), and changelog compare link. Remove
redundant disabled-mode mention from Authentication section.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants