Skip to content

Backup covered-marker reader: version 15 continuation

Task: 2f64e433-00e0-483e-8eb2-e106213a093c, frozen version 15, read through HeyAira task_get before continuing. Repository: h8v6/heyaira; branch: heyaira/2f64e433. Continuation base: f63f7b94f43de5c2e23ef30b38de743b45a0488e. Original implementation base: 790cc1a31f7cf5b0e2db11c969fd89ad5996050a. The new candidate is the commit containing this report; its SHA is recorded in the HeyAira RESULT receipt after committing.

Change and scope

The previous candidate already implements covered-marker reading across rolling/, daily/ and monthly/, newest selection by timezone-aware recorded creation time, backup-ID deduplication, deletion-mark exclusions and complete listing guards. It contains the targeted regressions and runbook update.

Version 15 explicitly revises the sandbox suite command to deselect two SMTP tests with wall-clock bounds. The task says these are being made independent of machine load in a separate PR and run in CI. This continuation reruns the existing reader tests and that exact revised suite selection. The only new file is this evidence report; implementation and test code are unchanged. The previous candidate and its version-2 failure report remain intact; no amend, rebase or reset was performed.

Actual verification

Commands ran from the repository root with TMPDIR="$PWD/.local-v15-tmp" and the existing Xcode Git binary directory prepended to PATH. Temporary fixtures remained in the authorized workspace.

$ PYTHONPATH=src python -m pytest -q -p no:cacheprovider tests/test_backup_runtime.py
....................................                                     [100%]
36 passed in 1.74s

The version-15 suite command and actual result:

$ PYTHONPATH=src python -m pytest -q -p no:cacheprovider --deselect tests/test_server_beat_audit.py::test_R6_02_tcp_connect_gets_only_the_budget_left_after_resolution --deselect tests/test_server_beat_audit.py::test_F3_smtp_tarpit_is_cut_at_the_deadline
417 passed, 231 skipped, 2 deselected in 38.90s

The skips use the repository's existing isolated-database and listening-socket requirements. The two deselections are exactly those authorized in task version 15; no other test was excluded or changed. git diff --check passed.

Criterion results

  • tiers-read: pass. Daily-only/monthly-only coverage, newest-by-recorded-time selection for every tier (including different UTC offsets), and duplicate-copy handling pass in tests/test_backup_runtime.py.
  • deleting-ignored: pass. Marked newest copies fall back to the next valid backup; a valid duplicate remains eligible and all-marked copies return none.
  • listing-guards: pass. Existing rolling truncation tests pass, including the real bounded-subprocess case; daily/monthly truncation, missing-final-newline and malformed-path regressions also pass.
  • suite: pass under the version-15 command above: no failures.

Confidence and handoff

All current criteria pass locally. Tests use synthetic buckets and runners; real R2 latency, database-backed integration tests and independent workflow acceptance are unverified here. Reading all manifests per poll still uses the existing polling cache. The two excluded SMTP tests were not rerun or repaired in this continuation; the earlier report retains their real failures.

No push, pull request, merge, installation, deployment or production bucket or database mutation was performed. Save the new candidate's RESULT and receipt with task_result; independent verification is the next workflow stage.