docs(forgejo): prepare W8.final upgrade preflight packet #508

Closed
opened 2026-05-26 17:54:23 +02:00 by codex · 1 comment
Collaborator

Spec sources (whitelist)

  • state/cycle/W8-module-upgrade-prep.md §W8.final core/workbench / Stop Conditions
  • state/roadmap/forgejo-upgrade-plan.md
  • state/roadmap/current-platform-roadmap.md §09 - Module upgrade waves
  • modules/forgejo/module.yaml
  • modules/forgejo/runbook.md
  • decisions/0022-module-source-and-release-boundaries.md §Update workflow / Anti-patterns

Extracted context

From state/cycle/W8-module-upgrade-prep.md:

W8.final core/workbench: Upgrade Forgejo, Traefik, Infisical, Postgres, Redis, MinIO.
Forgejo last among workbench-critical services.

From state/cycle/W8-module-upgrade-prep.md stop conditions:

Stop W8 and ask the operator if any candidate touches Forgejo Actions/runners/packages before the Forgejo upgrade plan is accepted.

From modules/forgejo/module.yaml:

Forgejo hosts the platform repository and PR workflow, so an outage can slow fixes to Forgejo itself.

From decisions/0022-module-source-and-release-boundaries.md:

No production path should depend on a mutable tag alone. No production apply
should clone an arbitrary source repo and build during reconciliation.

Do NOT read (unless escape hatch fires)

  • Live Forgejo database/config on RS2000 — this issue is a preflight packet, not execution.
  • Forgejo admin UI settings — snapshot procedure may be described, but not performed here.
  • .forgejo/workflows/ — do not change workflows in this planning PR.
  • compose/ — no runtime wiring changes.

Allowed touched paths

  • state/cycle/W8-forgejo-final-preflight.md (create)
  • state/roadmap/forgejo-upgrade-plan.md (modify)
  • Optional: modules/forgejo/module.yaml (metadata/digest note only, if evidence is already present and no runtime change is implied)

Why this exists (product-first)

Forgejo is the workbench for the whole platform: issues, PRs, Actions, packages, and agent merge flow all depend on it. Its upgrade should be boring only after the pilot waves prove metadata, backup, registry, runner, and rollback mechanics.

Why this matters now

The operator wants to reach W8, but Forgejo must not be the first upgrade. A preflight packet lets us know exactly what evidence will be required later, without touching the runtime today.

What "done" looks like

  • A Forgejo W8.final preflight packet lists current version/image/digest, candidate discovery method, and release-note source.
  • Packet defines backup-before evidence for database, app data, packages, Actions/runners, and branch protection/settings snapshot.
  • Packet defines smoke checks: health endpoint, Actions dispatch/pickup, package registry push/pull, PR/review/merge path, and rollback.
  • Packet states explicit blockers and operator gate phrases for actual runtime execution.
  • No production upgrade, restart, compose change, or secret access is performed.

Scope

In scope:

  • Planning/preflight only for the later Forgejo upgrade.
  • Making the future operator approval checklist precise.

Out of scope:

  • Upgrading Forgejo.
  • Touching database/package storage.
  • Changing branch protection, runner config, Actions workflows, or registry permissions.
  • Using this issue as approval for any production mutation.

Suggested approach

  1. Start from state/roadmap/forgejo-upgrade-plan.md.
  2. Add missing evidence buckets discovered during W6d/Patchwarden work: review/approval path, package registry, Actions runner, branch protection snapshot.
  3. Keep all execution steps as future gated checklist, not commands to run now.

Escape hatch

If the current plan is too stale or live Forgejo behavior must be inspected to make the packet truthful, stop and comment on #389 with the exact missing evidence.

Unknowns / owner questions

  • None for the preflight packet. Actual upgrade approval remains future operator gate.

Risk class

  • risk/runtime
  • risk/process
  • risk/exposure
  • risk/product

Class of service

  • class/security-sensitive

Trace

  • Original source: #389 W8 coordination lane after #501/#502
  • Migrated by: codex, 2026-05-26
  • Related issues / PRs: #389, #433, #501, #502, #503, #504
## Spec sources (whitelist) - `state/cycle/W8-module-upgrade-prep.md` §W8.final core/workbench / Stop Conditions - `state/roadmap/forgejo-upgrade-plan.md` - `state/roadmap/current-platform-roadmap.md` §09 - Module upgrade waves - `modules/forgejo/module.yaml` - `modules/forgejo/runbook.md` - `decisions/0022-module-source-and-release-boundaries.md` §Update workflow / Anti-patterns ## Extracted context > From `state/cycle/W8-module-upgrade-prep.md`: > ``` > W8.final core/workbench: Upgrade Forgejo, Traefik, Infisical, Postgres, Redis, MinIO. > Forgejo last among workbench-critical services. > ``` > > From `state/cycle/W8-module-upgrade-prep.md` stop conditions: > ``` > Stop W8 and ask the operator if any candidate touches Forgejo Actions/runners/packages before the Forgejo upgrade plan is accepted. > ``` > > From `modules/forgejo/module.yaml`: > ``` > Forgejo hosts the platform repository and PR workflow, so an outage can slow fixes to Forgejo itself. > ``` > > From `decisions/0022-module-source-and-release-boundaries.md`: > ``` > No production path should depend on a mutable tag alone. No production apply > should clone an arbitrary source repo and build during reconciliation. > ``` ## Do NOT read (unless escape hatch fires) - Live Forgejo database/config on RS2000 — this issue is a preflight packet, not execution. - Forgejo admin UI settings — snapshot procedure may be described, but not performed here. - `.forgejo/workflows/` — do not change workflows in this planning PR. - `compose/` — no runtime wiring changes. ## Allowed touched paths - `state/cycle/W8-forgejo-final-preflight.md` (create) - `state/roadmap/forgejo-upgrade-plan.md` (modify) - Optional: `modules/forgejo/module.yaml` (metadata/digest note only, if evidence is already present and no runtime change is implied) ## Why this exists (product-first) Forgejo is the workbench for the whole platform: issues, PRs, Actions, packages, and agent merge flow all depend on it. Its upgrade should be boring only after the pilot waves prove metadata, backup, registry, runner, and rollback mechanics. ## Why this matters now The operator wants to reach W8, but Forgejo must not be the first upgrade. A preflight packet lets us know exactly what evidence will be required later, without touching the runtime today. ## What "done" looks like - [ ] A Forgejo W8.final preflight packet lists current version/image/digest, candidate discovery method, and release-note source. - [ ] Packet defines backup-before evidence for database, app data, packages, Actions/runners, and branch protection/settings snapshot. - [ ] Packet defines smoke checks: health endpoint, Actions dispatch/pickup, package registry push/pull, PR/review/merge path, and rollback. - [ ] Packet states explicit blockers and operator gate phrases for actual runtime execution. - [ ] No production upgrade, restart, compose change, or secret access is performed. ## Scope **In scope:** - Planning/preflight only for the later Forgejo upgrade. - Making the future operator approval checklist precise. **Out of scope:** - Upgrading Forgejo. - Touching database/package storage. - Changing branch protection, runner config, Actions workflows, or registry permissions. - Using this issue as approval for any production mutation. ## Suggested approach 1. Start from `state/roadmap/forgejo-upgrade-plan.md`. 2. Add missing evidence buckets discovered during W6d/Patchwarden work: review/approval path, package registry, Actions runner, branch protection snapshot. 3. Keep all execution steps as future gated checklist, not commands to run now. ## Escape hatch If the current plan is too stale or live Forgejo behavior must be inspected to make the packet truthful, stop and comment on #389 with the exact missing evidence. ## Unknowns / owner questions - None for the preflight packet. Actual upgrade approval remains future operator gate. ## Risk class - [x] `risk/runtime` - [x] `risk/process` - [x] `risk/exposure` - [ ] `risk/product` ## Class of service - [x] `class/security-sensitive` ## Trace - Original source: #389 W8 coordination lane after #501/#502 - Migrated by: codex, 2026-05-26 - Related issues / PRs: #389, #433, #501, #502, #503, #504
Author
Collaborator

Sequencing note from codex: keep this proposed until #505/#506 land; then mark ready-for-agent as the next W8 batch. This is not blocked on more ADR/policy work, only on avoiding parallel drift while the first two packets establish current evidence.

Sequencing note from codex: keep this proposed until #505/#506 land; then mark ready-for-agent as the next W8 batch. This is not blocked on more ADR/policy work, only on avoiding parallel drift while the first two packets establish current evidence.
Sign in to join this conversation.
No labels
W6d-automerge-calibration
agent/claude-code
agent/codex
agent/hermes
agent/iskra
agent/ollama
agent/patchwarden
automerge-candidate
class/security-sensitive
cutover-gate
dependency/blocked
dependency/blocks-others
dependency/cross-repo
dependency/needs-confirmation
domain:agents
domain:ci
domain:docs
domain:forgejo
domain:infra
domain:memory
domain:runtime
domain:signal
domain:ux
flow/architecture
flow/blocked
flow/deployed
flow/done
flow/implementation
flow/intake
flow/maintained
flow/observed
flow/ready
flow/refining
flow/retired
flow/review
iterating
judge/codex-candidate
judge/hermes-candidate
judge/low-confidence
judge/needs-refinement
judge/operator-needed
judge/p0
judge/p1
judge/p2
judge/p3
judge/park
judge/patchwarden-candidate
judge/stale-priority
kind/adr
kind/bug
kind/chore
kind/feature
kind/infra
kind/ops
kind/refactor
kind/research
large-impact
merge/auto
merge/manual
merge/manual-dependency-conflict
merge/manual-failing-tests
merge/manual-merge-conflict
merge/manual-missing-review
merge/manual-operator-preference
merge/manual-red-zone
merge/manual-security-sensitive
merge/manual-unclear-scope
merge/manual-unknown
meta
mode:operator-only
mode:patchwarden-iskra-approved
mode:safe-auto
needs-operator-decision
needs-triage
not-ready
observed/erroring
observed/needs-followup
observed/pending
observed/retire-candidate
observed/unused
observed/used
operator-emotional
owner-attention
phase/02
phase/03
priority:p0
priority:p1
priority:p2
priority:p3
proposed
ready-for-agent
ready-for-operator
recovery
review:claude-reviewed
review:codex-reviewed
review:dziadek-reviewed
review:needs-human
risk/exposure
risk/process
risk/product
risk/runtime
safety:external-write
safety:no-prod-mutation
safety:prod-impact
safety:secret-touch
size/large
size/medium
size/small
size/tiny
size/unknown
source/adr
source/agent-generated
source/manual
source/operator-chat
source/voice-note
status:blocked
status:codex-ready
status:merged:pending-evidence
status:needs-evidence
status:operator-needed
status:parked
tier/full
tier/lite
tier/stacked
tier:0-platform-substrate
tier:1-iskra-value-layer
tier:2-tools-products-modules
type:bug
type:chore
type:docs
type:feat
type:policy
type:research
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
pdurlej/platform#508
No description provided.