whisper-money/app/Jobs
Víctor Falcón e0481df497 fix(banking): record the job deaths that never reach handle()
Every `logSyncAttempt` call lived inside `handle()`, which is exactly what an
out-of-band death skips — so a connection's own history showed no trace of the
most common way this job dies. One prod connection has 66 job failures and 3
sync-log rows. That gap is why the first pass of this branch mis-attributed the
stranding to timeouts: the evidence was only in `failed_jobs`.

`duration_ms` becomes nullable at the call site rather than being faked to 0,
because nobody timed the attempt.

The copy changes too. `failed()` wrote "An unexpected error occurred during sync.
Please try again later." — handing our own infrastructure to the user as an
action — while the classified-transient path already promised "we will try
syncing again later" for the same situation. Every message this method writes
describes an out-of-band death, so it now says so and the next scheduled cycle
picks the connection back up on its own.
2026-08-12 09:43:03 +02:00
..
Drip refactor(drip): extract base mailable and job for the drip email family (#641) 2026-07-04 20:51:38 +02:00
ApplySingleAutomationRuleJob.php fix(security): scope job-status endpoints to owner + feature-area fixes (#627) 2026-07-03 14:49:32 +02:00
AssignHistoricalTransactionsToBudget.php feat: Load transactions history on budget created (#72) 2026-01-22 11:10:15 +01:00
CategorizeOnboardingTransactionsJob.php feat(ai): manage AI consent outside onboarding with live backfill (#591) 2026-06-25 10:50:35 +02:00
CategorizeUncategorizedTransactionsJob.php fix(queue): raise retry_after above the longest job timeout (PHP-LARAVEL-2D) (#645) 2026-07-05 09:31:23 +00:00
GenerateHistoricalLoanBalancesJob.php feat(loans): backfill historical balances on loan creation (#322) 2026-04-24 13:09:34 +01:00
GenerateHistoricalRealEstateBalancesJob.php feat(real-estate): auto-calculate revaluation % and generate historical balances (#253) 2026-04-15 12:18:33 +00:00
GenerateRuleSuggestionsJob.php fix(onboarding): stop the AI rule-suggestion step from hanging forever (#705) 2026-07-20 18:10:51 +00:00
PurgeResidualEncryptionArtifactsJob.php chore: harden Inertia boundary, CI type-check, and test isolation (#640) 2026-07-04 18:57:58 +00:00
ReEvaluateTransactionRulesJob.php fix(security): scope job-status endpoints to owner + feature-area fixes (#627) 2026-07-03 14:49:32 +02:00
RetryTransientAiCategorizationJob.php fix(ai): handle transient AI provider overloads — stop the Sentry noise and retry the dropped work (#595) 2026-06-26 20:07:06 +02:00
SendDailyBankTransactionsSyncedEmailJob.php feat(settings): let users disable bank transactions email (#472) 2026-06-02 12:24:39 +02:00
SendUpdateEmailJob.php Support soft-deleted users with reusable emails (#316) 2026-04-22 11:41:41 +01:00
SyncAllBankingConnectionsJob.php refactor: centralize duplicated provider & locale keys into enums (#543) 2026-06-16 13:43:14 +00:00
SyncBankingConnectionJob.php fix(banking): record the job deaths that never reach handle() 2026-08-12 09:43:03 +02:00
SyncBinanceHistoricalBalancesJob.php feat: Add Binance integration (#131) 2026-02-18 15:23:46 +01:00