feat(5.19): auto-send toggle per cont + tinere manuala randuri (held)
Comutator accounts.auto_send_enabled per cont: Auto OFF (default) tine randurile
la ingestie (submissions.held=1), worker-ul (claim_one AND held=0) le sare pana la
eliberare umana (per rand/bulk/auto-release OFF->ON). Snapshot held prin chokepoint
unic held_for_account pe toate caile de ingestie (API, import, reresolve, reactivare).
- schema/migrare: coloana held + index partial idx_submissions_held; auto_send_enabled
- API: echo onest held+motiv (US-010), ruta /prezentari/{id}/trimite-acum
- web: toggle header, modal confirmare tipata, buton Trimite per rand + Trimite toate,
banner coada tinuta imbatranita (L.142), contor "In asteptare (manual)"
- worker: expire_held (US-008, inchide gaura retentie PII), metrics held gauges
- ops: tools/carantina_held + runbook rollback (R4)
Nota review (/code-review high): re-snapshot held lipseste pe caile repune/corectie
(requeue_submission, post_corectie, bulk-fix) — de aliniat separat cu create_prezentari.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
12
app/main.py
12
app/main.py
@@ -177,9 +177,21 @@ def metrics() -> str:
|
||||
conn = get_connection()
|
||||
try:
|
||||
rows = conn.execute("SELECT status, COUNT(*) AS n FROM submissions GROUP BY status").fetchall()
|
||||
# Coada tinuta (PRD 5.19 US-007): observabilitate ops pt. default Auto OFF.
|
||||
# Gauge-uri DERIVATE (zero stare noua): total randuri tinute + varsta celui
|
||||
# mai vechi (din created_at), scoped global. Semnaleaza esecul silentios
|
||||
# cand prezentari raman nedeclarate tacit (risc L.142).
|
||||
held = conn.execute(
|
||||
"SELECT COUNT(*) AS n, "
|
||||
"COALESCE(MAX(strftime('%s','now') - strftime('%s', created_at)), 0) AS oldest "
|
||||
"FROM submissions WHERE status='queued' AND held=1"
|
||||
).fetchone()
|
||||
finally:
|
||||
conn.close()
|
||||
lines = ["# submissions pe status"]
|
||||
for r in rows:
|
||||
lines.append(f'autopass_submissions{{status="{r["status"]}"}} {r["n"]}')
|
||||
# randuri tinute (queued AND held=1)
|
||||
lines.append(f'autopass_held_submissions {held["n"]}')
|
||||
lines.append(f'autopass_held_oldest_age_seconds {held["oldest"]}')
|
||||
return "\n".join(lines) + "\n"
|
||||
|
||||
Reference in New Issue
Block a user