Repository navigation
Prepare VesselStack 0.6.0 - #28
Merged
Merged
Conversation
Installer upgrade safety: every env value (including preserved and generated secrets) is checked before anything changes, also under --dry-run; env files are written atomically (0600 temp file, renamed into place); stale temp files from a killed run are removed. Boat Chat settings protection: Settings loads before it opens and saves only changed fields; blanking required settings is rejected with a 400; settings endpoints require the access code (GET, HEAD and POST accept X-Boat-Chat-Access-Token); the access code cannot be cleared through the API unless BOAT_CHAT_ALLOW_OPEN=true. Wizard, Control Panel and Boat Chat UX updates, with accessibility and brand polish including dark mode. Docs restructure, pinned release install URLs, a 1Password release-signing guide, and README/CHANGELOG coverage of all changes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Release tags must be annotated and SSH-signed by the release key in .github/allowed_signers. scripts/verify-release-tag.sh checks this, the release workflow fetches the real tag object and runs it before building, and tests/test-verify-release-tag.sh covers it with throwaway keys in CI. README, DEVELOPMENT, DEPLOYMENT, CONTROL_PANEL_TESTING and the 0.6.0 CHANGELOG now state the plan: signed tag, pre-release first, Latest after the maintainer's physical Raspberry Pi install. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…enance Four tabs (Home, Settings, Updates, Maintenance), a persistent result banner, in-page confirm dialogs, one Save and Apply bar with inline field errors, read-only last backup status, token-prefix login, and a Disconnected state with Retry now. Server validates timezone and numeric ranges. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…preservation Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Final 0.6.0 preparation: installer upgrade safety (preflight before any change, atomic env writes, stale temp cleanup), Boat Chat settings protection and access-code rules, wizard/Control Panel/Boat Chat UX, accessibility and brand polish with dark mode, the docs restructure with pinned install URLs, and a 1Password release-signing guide.
Release blockers fixed
vesselstackctl updateexample in the docs.Test evidence
python3 -m unittest discover -s tests -p 'test_*.py'ran 1113 tests, OK (17 skipped).node tests/test_control_panel_ui.cjs: passed.bash -n install.sh scripts/*.shandshellcheck -S warning install.sh scripts/vesselstackctl: clean.tests/test-distribution.sh: passed.scripts/check-public-tree.py: passed (220 files).Not covered
RELEASE-STATUS-PENDING.🤖 Generated with Claude Code