update engineering/0018/SESSION-0018.0-TRANSCRIPT-2026-06-10T21-50--INPROGRESS.md
This commit is contained in:
@@ -18,8 +18,48 @@
|
|||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Plan
|
||||||
|
|
||||||
|
> Anchor: design specs/gitea-forge-backups.md (engineering#30) — SLICE-3
|
||||||
|
> (Retention / rotation proven → guards BO-1 durability). Eligibility: ELIGIBLE (R2a).
|
||||||
|
|
||||||
|
SLICE-3 proves T-4 (retention) on the scratch bucket
|
||||||
|
`gs://wiggleverse-gitea-backups-scratch` (kept from SLICE-2): an over-age object
|
||||||
|
is purged by the lifecycle policy, in-window objects and prior (noncurrent)
|
||||||
|
versions survive (INV-5). Approach: mirror the prod bucket's config on scratch
|
||||||
|
(versioning + the committed lifecycle JSON) plus a test rule keyed on
|
||||||
|
`daysSinceCustomTime` (the controllable analogue of `age`, which cannot be
|
||||||
|
back-dated); seed over-age / in-window / versioned-pair objects; wait for the
|
||||||
|
GCS lifecycle pass (≤ 24–48 h) with a deterministic verify script; then update
|
||||||
|
the infra doc + spec changelog and ship via PR. No prod mutation — prod's
|
||||||
|
lifecycle/versioning were applied in SLICE-1 and are drift-checked read-only.
|
||||||
|
|
||||||
|
## Execution log (checkpoint 2026-06-10T22:00 PST)
|
||||||
|
|
||||||
|
- Branch `worktree-gitea-backups-slice-3` off `origin/main` (in the
|
||||||
|
slice-2 worktree, adopted — two concurrent sessions in flight: 0009, 0017).
|
||||||
|
- Plan written: `docs/superpowers/plans/2026-06-10-gitea-backups-slice-3.md`.
|
||||||
|
- Tasks 1–4 done: scratch bucket versioning enabled + T-4 lifecycle applied
|
||||||
|
(committed `infra/gitea-backup/t4-scratch-lifecycle.json`); prod bucket
|
||||||
|
drift-checked clean (lifecycle == committed JSON, versioning on);
|
||||||
|
`infra/gitea-backup/t4-retention-check.sh` (seed/verify) committed; fixtures
|
||||||
|
seeded (overage customTime 2026-04-27; inwindow; versioned pair) and verify
|
||||||
|
exercised its PENDING path (exit 1). Branch pushed.
|
||||||
|
- Now waiting on the GCS lifecycle pass (≤ ~48 h; expected ≤ ~24 h), polling
|
||||||
|
hourly via verify.
|
||||||
|
|
||||||
## Deferred decisions
|
## Deferred decisions
|
||||||
|
|
||||||
_Autonomous-mode low-confidence calls the driver made and would have
|
_Autonomous-mode low-confidence calls the driver made and would have
|
||||||
liked operator input on. Appended as the session runs; surfaced at
|
liked operator input on. Appended as the session runs; surfaced at
|
||||||
finalize. Empty if none._
|
finalize. Empty if none._
|
||||||
|
|
||||||
|
- **T-4 over-age trigger uses `daysSinceCustomTime: 30`, not prod's `age: 30`**
|
||||||
|
— `age` cannot be back-dated, so executing the real rule means 30 days of
|
||||||
|
wall clock. Same threshold, same lifecycle Delete engine; substitution
|
||||||
|
documented in the infra doc. Confidence: high, but it is a fidelity call the
|
||||||
|
operator may want to revisit.
|
||||||
|
- **The 7-day noncurrent purge is config-verified, not execution-verified** —
|
||||||
|
executing it adds ≥ 7 days for the same Delete machinery already exercised by
|
||||||
|
the over-age purge. Versioning *protection* (prior version survives) is
|
||||||
|
execution-verified.
|
||||||
|
|||||||
Reference in New Issue
Block a user