feat(sp33): resubmit CLI: skipped files don't audit or count as uploads

Finishes the in-tree was_skipped draft: size-matched remote files no
longer emit clearhouse.submitted events or increment uploaded, and the
periodic reconnect now triggers only after real uploads.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Nora
2026-07-04 20:29:13 -06:00
parent 27bca33b09
commit 6bda5005c1
+30 -27
View File
@@ -674,6 +674,7 @@ def resubmit_rejected_claims(
attempts = 0 attempts = 0
ok = False ok = False
was_skipped = False
while attempts < 3: while attempts < 3:
attempts += 1 attempts += 1
if ssh is None: if ssh is None:
@@ -691,7 +692,7 @@ def resubmit_rejected_claims(
rs = sftp.stat(remote_path) # type: ignore[union-attr] rs = sftp.stat(remote_path) # type: ignore[union-attr]
if rs.st_size == local_size: if rs.st_size == local_size:
skipped += 1 skipped += 1
ok = True was_skipped = True
break break
except IOError: except IOError:
pass # not on remote yet pass # not on remote yet
@@ -710,37 +711,39 @@ def resubmit_rejected_claims(
) )
continue continue
if not ok: if not ok and not was_skipped:
failed += 1 failed += 1
continue continue
# Audit (best-effort; if the DB is unavailable we still keep # Audit + reconnect cadence apply only to real uploads.
# the file on the wire). if not was_skipped:
try: # Audit (best-effort; if the DB is unavailable we still
with db_mod.SessionLocal()() as session: # keep the file on the wire).
append_event(session, AuditEvent( try:
event_type="clearhouse.submitted", with db_mod.SessionLocal()() as session:
entity_type="claim_file", append_event(session, AuditEvent(
entity_id=src.name, event_type="clearhouse.submitted",
payload={"remote_path": remote_path, entity_type="claim_file",
"source": "resubmit-rejected-claims", entity_id=src.name,
"size": local_size}, payload={"remote_path": remote_path,
actor=actor, "source": "resubmit-rejected-claims",
)) "size": local_size},
session.commit() actor=actor,
except Exception as exc: # noqa: BLE001 ))
click.echo( session.commit()
f"audit-log write failed for {src.name}: " except Exception as exc: # noqa: BLE001
f"{exc.__class__.__name__}: {exc}", err=True, click.echo(
) f"audit-log write failed for {src.name}: "
f"{exc.__class__.__name__}: {exc}", err=True,
)
uploaded += 1 uploaded += 1
# Reconnect periodically to dodge MOVEit's per-session cap. # Reconnect periodically to dodge MOVEit's per-session cap.
if uploaded % reconnect_every == 0: if uploaded % reconnect_every == 0:
click.echo(f"reconnecting (after {uploaded} uploads)", err=True) click.echo(f"reconnecting (after {uploaded} uploads)", err=True)
_close_session(ssh) _close_session(ssh)
ssh, sftp = None, None ssh, sftp = None, None
# Progress every 10s of wall-clock (or at end). # Progress every 10s of wall-clock (or at end).
now = time.monotonic() now = time.monotonic()