fix(cutover): remount honcho postgres init import #590

Merged
pdurlej merged 1 commit from codex/m01-remount-honcho-postgres-init into main 2026-05-29 00:47:17 +02:00
Collaborator

Canary status: local validation passed; Forgejo canary may remain pending due runner queue.

Summary

Remounts the honcho-postgres init script from the M01 legacy-import runtime tree instead of the legacy /opt/vps-home-platform-infra repo root path.

This is a narrow M01 live-dependency migration step. It does not delete legacy data, mutate the database contents, or change the persistent Postgres volume.

Canary Context Pack

Product story

M01 needs active containers to stop depending on /opt/vps-home-platform-infra so RS2000 legacy paths can later be quarantined safely before deletion.

What changed

  • honcho-postgres now mounts init SQL from ${PLATFORM_RUNTIME_HONCHO_POSTGRES_INIT_FILE:-/opt/pdurlej-platform/runtime/legacy-import/config/honcho/postgres/init.sql}.
  • The runbook documents the new init script path and one-cycle rollback env override.

Why it changed

The live container currently has a bind mount to /opt/vps-home-platform-infra/config/honcho/postgres/init.sql. That is one of the remaining M01 legacy references.

Files touched

  • compose/apps/compose.yaml
  • modules/honcho-postgres/runbook.md

Relevant context

  • M01 RS2000 closeout plan
  • Cutover gate: remount active legacy bind mounts before any quarantine/delete

Runtime evidence

Pre-copy completed on RS2000 before this PR:

  • source: /opt/vps-home-platform-infra/config/honcho/postgres/init.sql
  • target: /opt/pdurlej-platform/runtime/legacy-import/config/honcho/postgres/init.sql
  • target mode: 644
  • target size: 39

Known constraints

This service is a Postgres container. Runtime apply must recreate only honcho-postgres with --no-deps, then check container health and pg_isready.

Explicit out-of-scope

  • No DB data migration
  • No deletion
  • No quarantine/tombstone
  • No broad compose refactor
  • No issue/comment writer changes

Requested decision

Merge after local validation and standard checks. If Forgejo checks remain queued, admin force-merge is acceptable under the current nondestructive M01 plan.

Merge blockers

  • Compose config invalid
  • Missing target init file on RS2000
  • PR not mergeable against main

Validation

  • git diff --check: passed
  • PYTHONPATH=control-plane uv run --project control-plane python -m platformctl.cli validate all --json: passed

Rollback

Set PLATFORM_RUNTIME_HONCHO_POSTGRES_INIT_FILE=/opt/vps-home-platform-infra/config/honcho/postgres/init.sql in runtime env for one rollback cycle and recreate only honcho-postgres.

Canary status: local validation passed; Forgejo canary may remain pending due runner queue. ## Summary Remounts the `honcho-postgres` init script from the M01 legacy-import runtime tree instead of the legacy `/opt/vps-home-platform-infra` repo root path. This is a narrow M01 live-dependency migration step. It does not delete legacy data, mutate the database contents, or change the persistent Postgres volume. ## Canary Context Pack ### Product story M01 needs active containers to stop depending on `/opt/vps-home-platform-infra` so RS2000 legacy paths can later be quarantined safely before deletion. ### What changed - `honcho-postgres` now mounts init SQL from `${PLATFORM_RUNTIME_HONCHO_POSTGRES_INIT_FILE:-/opt/pdurlej-platform/runtime/legacy-import/config/honcho/postgres/init.sql}`. - The runbook documents the new init script path and one-cycle rollback env override. ### Why it changed The live container currently has a bind mount to `/opt/vps-home-platform-infra/config/honcho/postgres/init.sql`. That is one of the remaining M01 legacy references. ### Files touched - `compose/apps/compose.yaml` - `modules/honcho-postgres/runbook.md` ### Relevant context - M01 RS2000 closeout plan - Cutover gate: remount active legacy bind mounts before any quarantine/delete ### Runtime evidence Pre-copy completed on RS2000 before this PR: - source: `/opt/vps-home-platform-infra/config/honcho/postgres/init.sql` - target: `/opt/pdurlej-platform/runtime/legacy-import/config/honcho/postgres/init.sql` - target mode: `644` - target size: `39` ### Known constraints This service is a Postgres container. Runtime apply must recreate only `honcho-postgres` with `--no-deps`, then check container health and `pg_isready`. ### Explicit out-of-scope - No DB data migration - No deletion - No quarantine/tombstone - No broad compose refactor - No issue/comment writer changes ### Requested decision Merge after local validation and standard checks. If Forgejo checks remain queued, admin force-merge is acceptable under the current nondestructive M01 plan. ### Merge blockers - Compose config invalid - Missing target init file on RS2000 - PR not mergeable against main ## Validation - `git diff --check`: passed - `PYTHONPATH=control-plane uv run --project control-plane python -m platformctl.cli validate all --json`: passed ## Rollback Set `PLATFORM_RUNTIME_HONCHO_POSTGRES_INIT_FILE=/opt/vps-home-platform-infra/config/honcho/postgres/init.sql` in runtime env for one rollback cycle and recreate only `honcho-postgres`.
fix(cutover): remount honcho postgres init import
Some checks failed
canary-required / collect-diff (pull_request) Successful in 4s
patchwarden-client-dry-run / collect-diff (pull_request) Successful in 4s
platformctl plan / auto-apply scope (pull_request) Successful in 22s
base-is-main / guard (pull_request) Successful in 1s
canary-required / canary (pull_request) Has been skipped
patchwarden-client-dry-run / dry-run (pull_request) Successful in 19s
patchwarden-pr-sanity / sanity (pull_request) Failing after 1m4s
patchwarden-pr-sanity / collect-diff (pull_request) Successful in 4s
ab87283dc0
pdurlej deleted branch codex/m01-remount-honcho-postgres-init 2026-05-29 00:47:17 +02:00
Sign in to join this conversation.
No reviewers
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!590
No description provided.