promote: dev → main (CI consolidation, 15 workflows → 9) #90

Merged
admin_emi merged 8 commits from dev into main 2026-07-25 16:58:12 +00:00
Owner

Promotes devmain, deploying to beta (beta.thermograph.org).

Divergence. 5 ahead, 22 behind. 5 commit(s) to carry, but the target has moved on by 22 — a merge commit is required and conflicts are possible

Predicted conflicts.

  • .forgejo/workflows/backend-deploy-dev.yml — modify/delete, git will stop here
  • CLAUDE.md — edited on both sides
  • README.md — edited on both sides
  • infra/deploy/forgejo/README.md — edited on both sides
  • infra/docker-compose.yml — edited on both sides

Commits (5).

  • d42a57a0 ci: collapse the eight deploy and build-push workflows into two (#87)
  • 9b6b12a5 infra: mirror LAN dev secrets under $HOME for snap-confined Docker (#85)
  • fbdfebf8 guardrails: enforce live-host and secrets policy with hooks (#82)
  • e84b1f79 docs: rewrite the agent context layer to match the live system (#81)
  • 2c7ceefa infra/forgejo: give the LAN runner's PATH ~/.local/bin (#84)

Merge with a merge commit, not a squash or a fast-forward. main runs ahead of dev from earlier promotions, so --ff-only fails with "diverging branches", and squashing would rewrite the shared history so the next promotion sees every prior commit as new.

Promotes `dev` → `main`, deploying to beta (beta.thermograph.org). **Divergence.** 5 ahead, 22 behind. 5 commit(s) to carry, but the target has moved on by 22 — a merge commit is required and conflicts are possible **Predicted conflicts.** - `.forgejo/workflows/backend-deploy-dev.yml` — modify/delete, git will stop here - `CLAUDE.md` — edited on both sides - `README.md` — edited on both sides - `infra/deploy/forgejo/README.md` — edited on both sides - `infra/docker-compose.yml` — edited on both sides **Commits (5).** - d42a57a0 ci: collapse the eight deploy and build-push workflows into two (#87) - 9b6b12a5 infra: mirror LAN dev secrets under $HOME for snap-confined Docker (#85) - fbdfebf8 guardrails: enforce live-host and secrets policy with hooks (#82) - e84b1f79 docs: rewrite the agent context layer to match the live system (#81) - 2c7ceefa infra/forgejo: give the LAN runner's PATH ~/.local/bin (#84) **Merge with a merge commit, not a squash or a fast-forward.** `main` runs ahead of `dev` from earlier promotions, so `--ff-only` fails with "diverging branches", and squashing would rewrite the shared history so the next promotion sees every prior commit as new.
admin_emi added 5 commits 2026-07-25 08:43:27 +00:00
infra/forgejo: give the LAN runner's PATH ~/.local/bin (#84)
All checks were successful
secrets-guard / encrypted (push) Successful in 5s
shell-lint / shellcheck (push) Successful in 6s
2c7ceefab4
docs: rewrite the agent context layer to match the live system (#81)
Some checks failed
shell-lint / shellcheck (push) Has been cancelled
secrets-guard / encrypted (push) Has been cancelled
Validate observability stack / validate (push) Successful in 33s
Build + push backend image (Forgejo registry) / build-push (push) Successful in 3m5s
Deploy frontend to LAN dev server / build (push) Successful in 3m21s
Build + push frontend image (Forgejo registry) / build-push (push) Successful in 3m27s
Deploy backend to LAN dev server / build (push) Successful in 4m16s
Deploy frontend to LAN dev server / deploy (push) Successful in 31s
Deploy backend to LAN dev server / deploy (push) Successful in 1m19s
e84b1f7937
guardrails: enforce live-host and secrets policy with hooks (#82)
All checks were successful
shell-lint / shellcheck (push) Successful in 14s
secrets-guard / encrypted (push) Successful in 15s
PR build (required check) / changes (pull_request) Successful in 18s
secrets-guard / encrypted (pull_request) Successful in 15s
shell-lint / shellcheck (pull_request) Successful in 18s
PR build (required check) / validate-observability (pull_request) Successful in 37s
PR build (required check) / build-frontend (pull_request) Successful in 3m1s
PR build (required check) / build-backend (pull_request) Successful in 3m32s
PR build (required check) / gate (pull_request) Successful in 4s
fbdfebf873
infra: mirror LAN dev secrets under $HOME for snap-confined Docker (#85)
All checks were successful
secrets-guard / encrypted (push) Successful in 6s
shell-lint / shellcheck (push) Successful in 7s
PR build (required check) / changes (pull_request) Successful in 6s
secrets-guard / encrypted (pull_request) Successful in 6s
shell-lint / shellcheck (pull_request) Successful in 7s
PR build (required check) / validate-observability (pull_request) Successful in 38s
PR build (required check) / build-frontend (pull_request) Successful in 1m6s
PR build (required check) / build-backend (pull_request) Successful in 1m25s
PR build (required check) / gate (pull_request) Successful in 2s
9b6b12a5da
ci: collapse the eight deploy and build-push workflows into two (#87)
All checks were successful
secrets-guard / encrypted (push) Successful in 5s
shell-lint / shellcheck (push) Successful in 6s
PR build (required check) / changes (pull_request) Successful in 6s
PR build (required check) / build-backend (pull_request) Has been skipped
shell-lint / shellcheck (pull_request) Successful in 9s
PR build (required check) / gate (pull_request) Successful in 2s
secrets-guard / encrypted (pull_request) Successful in 6s
PR build (required check) / build-frontend (pull_request) Has been skipped
PR build (required check) / validate-observability (pull_request) Has been skipped
d42a57a011
admin_emi added 2 commits 2026-07-25 08:45:56 +00:00
Merge main back into dev to reconcile the squash-promotion divergence
All checks were successful
secrets-guard / encrypted (pull_request) Successful in 5s
PR build (required check) / changes (pull_request) Successful in 11s
shell-lint / shellcheck (pull_request) Successful in 7s
PR build (required check) / build-backend (pull_request) Has been skipped
PR build (required check) / gate (pull_request) Successful in 1s
PR build (required check) / build-frontend (pull_request) Has been skipped
PR build (required check) / validate-observability (pull_request) Has been skipped
be4aa940d9
The dev → main promotion could not merge: `main` sat 22 commits ahead of `dev`
with content dev had never seen, and git found genuine conflicts in CLAUDE.md
and README.md plus modify/delete on the eight workflow files #87 removed.

The cause is that recent promotions were merged with squash rather than "Create
merge commit". A squash replays dev's commits onto main under new SHAs, so the
two branches share content but not history — main appears to have independently
edited the same files, and every subsequent promotion inherits the divergence.
`promote` warns about exactly this.

Resolution: both conflicts take dev's side, not as a default but because main's
side describes workflows that no longer exist (`*-deploy-dev.yml`,
`backend-build-push` and friends). Keeping it would reintroduce the class of
staleness the root CLAUDE.md now forbids — statements naming files that are not
there. The eight deleted workflows stay deleted; the merge result carries the
nine that #87 left behind.

Verified after resolution: no conflict markers anywhere, no unmerged paths, no
document naming a deleted workflow, all nine workflow files parse, and
shellcheck is clean across the tree.

Promotions from here should use "Create merge commit" so this does not recur.
Merge pull request 'Merge main back into dev to reconcile the squash-promotion divergence' (#91) from sync/main-into-dev into dev
All checks were successful
secrets-guard / encrypted (push) Successful in 6s
PR build (required check) / changes (pull_request) Successful in 11s
shell-lint / shellcheck (push) Successful in 13s
secrets-guard / encrypted (pull_request) Successful in 9s
PR build (required check) / build-backend (pull_request) Has been skipped
shell-lint / shellcheck (pull_request) Successful in 11s
PR build (required check) / build-frontend (pull_request) Has been skipped
PR build (required check) / validate-observability (pull_request) Has been skipped
PR build (required check) / gate (pull_request) Successful in 1s
52cfe5b77a
admin_emi added 1 commit 2026-07-25 16:56:26 +00:00
climate: stop dropping the current day from the Open-Meteo bundle (#92)
All checks were successful
secrets-guard / encrypted (push) Successful in 10s
Build + push images (Forgejo registry) / build-push (frontend) (push) Successful in 12s
shell-lint / shellcheck (push) Successful in 9s
secrets-guard / encrypted (pull_request) Successful in 13s
shell-lint / shellcheck (pull_request) Successful in 15s
PR build (required check) / changes (pull_request) Successful in 19s
PR build (required check) / build-frontend (pull_request) Has been skipped
PR build (required check) / validate-observability (pull_request) Has been skipped
Build + push images (Forgejo registry) / build-push (backend) (push) Successful in 1m13s
PR build (required check) / build-backend (pull_request) Successful in 1m6s
PR build (required check) / gate (pull_request) Successful in 1s
d4a00099f2
admin_emi merged commit aa4ee7f4c4 into main 2026-07-25 16:58:12 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: Jinemi/thermograph#90
No description provided.