Skip to content

Simplified manager contracts, recovery state and override inventory - #381

Merged
acburdine merged 1 commit into
next-dockerfrom
codex/simplify-next-docker
Oct 9, 2026
Merged

acburdine merged 1 commit into
next-dockerfrom
codex/simplify-next-docker

Conversation

@acburdine

Copy link
Copy Markdown
Member

ref https://linear.app/ghost/issue/PLA-511/simplify-and-harden-the-next-docker-manager-following-branch-review

The documentation mixed current contracts with completed work and superseded designs, while manager code maintained duplicate override inventories and more update stages than recovery needed. This pass consolidates those sources without changing the recovery boundary or supported workflows.

Changes

  • Give current invariants an authoritative home in docs/architecture.md; keep operator usage/recovery in installation docs, configuration contracts in configuration docs, and outstanding requirements in the roadmap. Schemas and file inventories remain authoritative in code.
  • Remove implementation chronology, completed-work reports, stale claims and repetitive comments. Reduce AGENTS.md to routing, execution constraints and high-value warnings.
  • Derive additional overrides from Compose's ordered file list and share the rule between backup and restore. With GD_COMPOSE_OVERRIDES=overrides/compose.override.yml and no root override, the custom file is now captured and restored. Tests cover both root-override states and real Compose merging with relative/absolute paths.
  • Reduce update recovery state to whether service startup was attempted, retaining newer writes after that boundary. Remove unused context and repeated transformations.

Based on 5a392166, the merged result of #380. Its nested-override regression was still present; no follow-up fix was found. Compose ownership, image-only self-update, migration version requirements, exact-version import, native bulk-data tools and remaining roadmap requirements are preserved. No dependencies or compatibility layers were added.

Validation

  • 469 unit tests and 26 real-Compose integration tests passed, with no skips.
  • 57 final CLI/config checks passed; formatting, lint, types, ShellCheck, local documentation links and git diff --check passed.
  • Image-update E2E scenarios passed, including writes retained after failed startup and explicit operator recovery.
  • The combined self-update E2E failed at checkout restore with a Git-discovery error. The isolated checkout scenario subsequently passed on both the unchanged base and this branch, including wrong-commit refusal and successful restore. The combined-run failure remains unexplained; the full suite is not claimed green.

Further removal of recorded installation metadata would change what info promises and needs a product decision; that contract is unchanged.

ref https://linear.app/ghost/issue/PLA-511/simplify-and-harden-the-next-docker-manager-following-branch-review

The next-docker documentation repeated current contracts alongside completed
work and superseded designs. Give operator guidance, architecture and the
remaining roadmap distinct homes so maintainers update fewer copies.

Derive additional overrides from Compose's ordered file list. This also
fixes a nested compose.override.yml being omitted from backups when no
root override exists. Preserve the startup boundary that prevents update
recovery from overwriting accepted writes.

- docs/architecture.md: own current boundaries and recovery invariants.
- docs/ghost-cli-replacement.md: retain remaining requirements and gates.
- docs/install.md, docs/configuration.md, docs/bundle-v1.md: consolidate
  operator contracts and remove stale implementation history.
- AGENTS.md, README.md, help: route readers to authoritative guidance.
- manager/src/compose.ts, resolved.ts, backup.ts, restore.ts: derive one
  override inventory and avoid repeated state and transformations.
- manager/src/commands/self-update.ts: represent the recovery boundary
  directly and remove unused update context.
- manager/test/backup.test.ts, integration/compose.test.ts: verify nested
  overrides survive backup/restore and merge through real Compose.
- manager/test/integration/resolved.test.ts, services.test.ts: remove the
  duplicated resolved-state fixture field.
- manager/src comments and runtime/workflow entry points: link current
  architecture instead of obsolete plan sections.
- .env.example, ghost.env.example, pages/index.html: correct stale usage.
- tests/e2e/self-update.sh: describe the existing write-retention checks.
@coderabbitai

coderabbitai Bot commented Oct 9, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: CHILL
  • Plan: Essentials
  • Run ID: ee484497-2113-4655-a766-ddc47ce01ed9

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Comment @coderabbitai help to get the list of available commands.

@acburdine
acburdine enabled auto-merge (squash) October 9, 2026 18:59
@acburdine
acburdine merged commit 0adf0e6 into next-docker Oct 9, 2026
12 checks passed
@acburdine
acburdine deleted the codex/simplify-next-docker branch October 9, 2026 19:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant