Assistant: codex Assistant-Model: gpt-6-astra Assistant-Session: 01a06ecb-456a-71c2-b41e-0755d336e883
41 lines
1.6 KiB
Markdown
41 lines
1.6 KiB
Markdown
---
|
|
id: RPF-WP-0028
|
|
type: workplan
|
|
title: "Make Forgejo image protection survive checkout replacement"
|
|
domain: financials
|
|
repo: railiance-platform
|
|
status: blocked
|
|
owner: codex
|
|
created: "2026-09-05"
|
|
updated: "2026-09-05"
|
|
---
|
|
|
|
# Make Forgejo image protection survive checkout replacement
|
|
|
|
Source: State Hub message `868a2326-cdad-4256-be4c-7cd6c8ec4b5b`. Reviewed against current repository state
|
|
on 2026-09-05. Repository implementation is complete; live closure remains pending.
|
|
|
|
## Implement and verify durable publication
|
|
|
|
```task
|
|
id: RPF-WP-0028-T01
|
|
status: done
|
|
priority: high
|
|
```
|
|
|
|
Implemented scripts/refresh_live_images.py and make live-images-refresh. Publication validates exports before mutation, locks concurrent writers, retains all previous cluster entries, and fsyncs an atomic replacement. Offline tests prove repeatability, multi-cluster retention, and preservation on missing, empty, or malformed input.
|
|
|
|
The local prune CLI was additionally hardened on 2026-09-05 to refuse apply
|
|
before credential lookup if any explicitly requested export is missing,
|
|
unreadable, empty, or comment-only. Regression coverage includes a valid file
|
|
alongside a bad one, proving partial coverage cannot authorize deletion.
|
|
|
|
## Install production projection and rollout refresh
|
|
|
|
```task
|
|
id: RPF-WP-0028-T02
|
|
status: wait
|
|
priority: high
|
|
```
|
|
|
|
Requires the production host inventory, activity-core directory mount/configuration update, and cluster rollout hook adoption. Follow docs/forgejo-package-prune.md. Preserve the restored union and worker refusal on missing/empty inventory; do not manually trigger prune. No production migration or live verification occurred in this session.
|