Commit Graph
9 Commits
Author SHA1 Message Date
dev_agentandClaude Opus 5.5 dc4b284bd8 Check each deploy verification command's own status and print the restore point last
CI / ci (push) Successful in 3m13s
CI / ci (pull_request) Successful in 3m28s
- Capture the docker compose ps status before testing its output, and
  scan the Litestream log with grep's status read explicitly: 0 is a
  logged error, 1 is no match, anything else fails the verification.
- Run both clean-ups on exit whatever happens, keep any failure, and
  print the pre-deploy restore point only after every check and both
  clean-ups succeeded.
- State that the live snapshot expects the existing -wal and -shm, list
  their ownership after the snapshot, and say to stop and check the
  service state if a root-owned sidecar appears.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-07 18:51:47 -04:00
dev_agentandClaude Opus 5.5 2b37d8ef26 Take consistent SQLite snapshots in the deploy and rollback checks
CI / ci (push) Successful in 3m12s
CI / ci (pull_request) Successful in 3m13s
The pre-deploy verification and the rollback migration check copied the
live mealquest.db and its WAL as separate files while the app and
Litestream ran, so a checkpoint between the copies could leave an older,
readable state: the rollback check could print "none" while the live
database held a migration the older SHA does not know.

Both now read the live database through /tmp/mqsnap.py, written once in
"Count check": SQLite's online backup API from a read-only connection,
then PRAGMA integrity_check, exiting nonzero unless it is ok. The
pre-deploy verification runs as one fail-fast subshell (set -eu, an EXIT
trap that cleans /tmp/mqcheck and the scratch restore while keeping the
status), diffs the replica and live count checks, and prints the restore
point only after every step has passed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-07 18:32:17 -04:00
dev_agentandClaude Opus 5.5 08f52d3f1c Make the rollback migration check fail fast and keep its status
CI / ci (push) Successful in 3m13s
CI / ci (pull_request) Successful in 3m13s
Run the check in a set -eu subshell so a failed cd, copy, git ls-tree
or comparison stops it before any verdict is printed, and remove the
scratch directory from an EXIT trap that preserves the check's status.
Spell out the reading rule: none, listed versions, or stop on error.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-07 18:12:30 -04:00
dev_agentandClaude Opus 5.5 459ee6ec28 Decide the rollback path from applied migration versions
CI / ci (push) Successful in 3m17s
CI / ci (pull_request) Successful in 3m13s
The rollback check diffed all of migrations/, so a change to the sqlc
queries in migrations/queries/ sent the operator down the restore path and
discarded household changes made since the pre-deploy point. Compare the
versions in the live database's schema_migrations with the top-level *.sql
files at the previous SHA instead, the rule internal/store/migrate.go
enforces at start-up.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-07 17:54:42 -04:00
dev_agentandClaude Opus 5.5 a7f115f2f0 Make the pre-deploy count check runnable and split rollback by migration
CI / ci (push) Successful in 3m13s
CI / ci (pull_request) Successful in 3m14s
Write /tmp/mqcount.py from the Count check section with one heredoc
command, and give rollbacks that cross a migration an ordered
restore-then-start procedure separate from the plain restart.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-07 17:35:44 -04:00
dev_agentandClaude Opus 5.5 614c4febfa Require a verified restore point before deploy; mark rotation schedule planned
CI / ci (push) Successful in 3m18s
CI / ci (pull_request) Successful in 3m19s
RUNBOOK: the deploy steps now verify, before the restart that applies
migrations, that Litestream replication is current and its replica
restores to the live data, and record the pre-deploy restore point; if
not, do not restart. The rollback section restores to that recorded point.

ARCHITECTURE: the rotation_check schedule that calls MarkTried is planned
(Feature 20); this release ships MarkTried and the rotation review read and
decide APIs only.

Task: 008c0a8a-2242-429b-a1fd-69346bc1d414

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-07 17:17:27 -04:00
dev_agent fcbdebd6e8 Feature 11: Settings home and Admin AI assistant (#86)
CI / ci (push) Successful in 2m0s
Co-authored-by: dev_agent <dev_agent@cubecraftlabs.com>
2026-10-06 12:45:05 -04:00
dev_agent f25b28b39b Feature 10: Recipe grounding and photos (#78)
CI / ci (push) Successful in 2m0s
Co-authored-by: dev_agent <dev_agent@cubecraftlabs.com>
2026-10-06 07:27:58 -04:00
dev_agent 67e44a506a Feature 07: Deployment, identity and backups (#75)
CI / ci (push) Successful in 1m45s
Co-authored-by: dev_agent <dev_agent@cubecraftlabs.com>
2026-10-05 20:59:47 -04:00