You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Red-team correctness findings: - SqliteDb.transaction now serializes top-level transactions with an async mutex and tracks re-entrancy via AsyncLocalStorage (nested calls -> savepoints, no deadlock). The old shared txnDepth counter let concurrent async callers interleave BEGIN/COMMIT on the one connection -> silent data loss; a 50-way concurrent read-modify-write test now lands exactly. - generateRecurring wraps each plan in try/catch: one misconfigured plan is parked (audited 'generate_failed') and the scan continues, instead of aborting all remaining generation and the entire auto-send drain, every scan. - POST /modules/:id/notify broadcast IIFE gets a trailing catch so a mid-loop throw answers the request instead of hanging it. Full suite 388 green. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> |
4 days ago | |
|---|---|---|
| .. | ||
| scripts | 4 days ago | |
| src | 4 days ago | |
| test | 4 days ago | |
| .env.example | 4 days ago | |
| build-server.mjs | 2 weeks ago | |
| package.json | 4 days ago | |
| schema.sql | 2 weeks ago | |
| tsconfig.json | 2 weeks ago | |