Blog - Prepare v0.24.0 release post & migration post#63
Blog - Prepare v0.24.0 release post & migration post#63
Conversation
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 encountered an error —— View job I'll analyze this and get back to you. |
Summary of ChangesHello @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
Changelog
Activity
Using Gemini Code AssistThe 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
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 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
|
There was a problem hiding this comment.
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.
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>
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>
There was a problem hiding this comment.
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. |
There was a problem hiding this comment.
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.
| 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. |
|
|
||
| #### 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. |
There was a problem hiding this comment.
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.”).
| 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. |
|
|
||
| ## 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. |
There was a problem hiding this comment.
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.
| 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. |
| Everything from Simple Mode, plus: | ||
|
|
||
| - **PostgreSQL 17+** | ||
| - **RabbitMQ 4+** |
There was a problem hiding this comment.
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.
| - **RabbitMQ 4+** | |
| - **RabbitMQ 4.3+** |
| --- | ||
| layout: post | ||
| title: "Upgrading to Onetime Secret v0.24.0" | ||
| date: 2026-03-02 |
There was a problem hiding this comment.
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.
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>
Summary
Release Announcement
Concise, ~90-line post covering the full scope of v0.24.0 (5,000+ commits):
Upgrade Guide (Draft)
Dot-prefixed (
.2026-02-18-upgrading-to-v0.24.md) so it's excluded from route generation. Covers: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 typecheckpasses