Archive location (Gitea issue 7): ARCHIVE_ROOT, Admin file-locations API, archive-copy job, doctor check

A filed packet's sealed data book, documents and a manifest are copied to the archive folder by the worker.
A failed copy never blocks filing: it is retried with backoff and raises the archive_failed condition.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
2026-10-30 17:50:04 -06:00
co-authored by Claude Opus 5.5
parent 3fdf063b70
commit da31b0a87a
21 changed files with 1537 additions and 11 deletions
+3 -3
View File
@@ -136,12 +136,12 @@ def test_one_shot_dedupe_and_unknown_type(s: Settings, marker: int) -> None:
def test_seed_to_admins_is_idempotent(s: Settings, marker: int) -> None:
with app_conn(s) as conn:
added = seed(conn, s)
assert len(added) == 13
assert len(added) == 14
rows = conn.execute(
"SELECT r.event_type, r.enabled, r.delivery::text, r.digest_time::text, r.param, c.kind::text,"
" c.group_dn, c.group_name FROM notification_rules r JOIN notification_recipients c USING (event_type)"
).fetchall()
assert len(rows) == 13
assert len(rows) == 14
for r in rows:
assert r[1] is True and r[2] == "immediate" and r[3] == "07:00:00" and r[5] == "group"
assert r[6] == f"CN=PS-Admins,{s.ldap_group_base_dn}" and r[7] == "PS-Admins"
@@ -522,7 +522,7 @@ def test_notify_send_job(s: Settings, marker: int, relay: FakeSmtp, ndir: Notify
with app_conn(s) as conn:
ctx = ctx_for(conn, build, ndir)
counts = notify_send.run(ctx)
assert counts["seeded"] == 13 and counts["version_deployed"] == "sha-job" and counts["sent"] == 1
assert counts["seeded"] == 14 and counts["version_deployed"] == "sha-job" and counts["sent"] == 1
assert counts["drawings_failing"] == 0 and counts["co_waiting"] == 0
again = notify_send.run(ctx)
assert "version_deployed" not in again and "drawings_failing" not in again # watch waits 15 minutes