| .. |
|
Ai
|
fix(ai): don't report expected transient provider overloads (PHP-LARAVEL-44) (#655)
|
2026-07-07 10:55:02 +00:00 |
|
Api
|
feat(transactions): serve import dedup and account ledger from the backend (#631)
|
2026-07-03 16:49:59 +02:00 |
|
Auth
|
feat(users): track last login and last active timestamps (#516)
|
2026-06-10 11:01:30 +02:00 |
|
Commands
|
feat(leads): add user lead re-invite campaign (#432)
|
2026-05-26 08:35:31 +02:00 |
|
Console
|
test(encryption): cover trialing, past_due and grace branches for notify-removal
|
2026-07-17 11:08:27 +02:00 |
|
Events
|
fix: stop double-dispatching transaction listeners (N+1 insert into jobs) (#620)
|
2026-07-02 13:26:45 +00:00 |
|
Jobs
|
feat(drip): email users stuck on the paywall a day after onboarding (#562)
|
2026-06-19 14:11:12 +00:00 |
|
Listeners
|
feat(budgets): track multiple categories and labels per budget (#466)
|
2026-06-01 12:32:23 +02:00 |
|
Mail
|
feat(leads): add user lead re-invite campaign (#432)
|
2026-05-26 08:35:31 +02:00 |
|
Onboarding
|
feat(ai): defer per-transaction categorization until onboarding completes (#536)
|
2026-06-15 17:33:26 +02:00 |
|
OpenBanking
|
fix(banking): treat EnableBanking upstream 5xx as transient, not reportable (#678)
|
2026-07-15 06:40:55 +00:00 |
|
Services
|
fix(balances): stop historical-balance generator OOM on ancient purchase/loan dates (PHP-LARAVEL-49) (#661)
|
2026-07-08 21:34:43 +00:00 |
|
Settings
|
fix(account): block deletion while subscription or trial is active (#531)
|
2026-06-14 20:46:44 +02:00 |
|
Spaces
|
feat(spaces): phase 0 — multi-tenant Space foundation (no behaviour change) (#650)
|
2026-07-09 14:26:07 +02:00 |
|
Sync
|
refactor: Simplify transaction endpoints architecture (#76)
|
2026-01-25 16:15:17 +01:00 |
|
AccountBalanceControllerTest.php
|
fix(balances): allow saving a zero balance (#664)
|
2026-07-10 15:02:38 +02:00 |
|
AccountControllerTest.php
|
chore: harden Inertia boundary, CI type-check, and test isolation (#640)
|
2026-07-04 18:57:58 +00:00 |
|
AccountUserCurrencyServiceTest.php
|
fix(open-banking): stop storing the XXX no-currency placeholder on accounts (#602)
|
2026-06-27 16:01:21 +00:00 |
|
AiConsentSettingsTest.php
|
refactor(ai): remove AiConsentSettings feature flag (#619)
|
2026-07-01 09:47:55 +02:00 |
|
AiConsentTest.php
|
feat(ai): dismissable AI consent banner that stops after the first decision (#617)
|
2026-07-01 07:26:36 +00:00 |
|
AlignAccountsEncryptedFlagMigrationTest.php
|
refactor(encryption): strip client-side transaction encryption (#514)
|
2026-06-20 16:13:26 +00:00 |
|
ApplyRealEstateRevaluationTest.php
|
fix(real-estate): compound annual revaluation monthly (#337)
|
2026-04-27 07:35:51 +01:00 |
|
AuthenticatedLayoutSafeAreaTest.php
|
fix(layout): keep bottom padding while floating nav is visible (#537)
|
2026-06-15 18:23:26 +02:00 |
|
AutomationRuleApplicationTest.php
|
fix(security): scope job-status endpoints to owner + feature-area fixes (#627)
|
2026-07-03 14:49:32 +02:00 |
|
AutomationRuleEvaluationTest.php
|
feat(transactions): add counterparty fields (#440)
|
2026-05-27 16:20:55 +02:00 |
|
AutomationRuleTest.php
|
refactor(api): standardize serialization via model $hidden (#492)
|
2026-06-05 13:57:34 +02:00 |
|
BackfillAccountIbansCommandTest.php
|
chore: upgrade Laravel 12 to 13 (#242)
|
2026-03-25 12:56:33 +00:00 |
|
BackfillXxxAccountCurrenciesTest.php
|
fix(open-banking): stop storing the XXX no-currency placeholder on accounts (#602)
|
2026-06-27 16:01:21 +00:00 |
|
BalanceLookupTest.php
|
feat: investment benefits — show gains/losses on investment accounts (#140)
|
2026-02-23 13:59:10 +01:00 |
|
BudgetHistoricalAssignmentTest.php
|
feat(budgets): track multiple categories and labels per budget (#466)
|
2026-06-01 12:32:23 +02:00 |
|
BudgetPeriodDateTest.php
|
Remove budgets feature flag (#108)
|
2026-02-12 09:58:01 +01:00 |
|
BudgetPeriodServiceTest.php
|
fix(budgets): make period generation idempotent (#533)
|
2026-06-15 12:44:44 +02:00 |
|
BudgetTest.php
|
feat: add catch-all budgets (#527)
|
2026-06-15 16:07:19 +00:00 |
|
BudgetTransactionServiceTest.php
|
feat: parent/child category tree (#474)
|
2026-06-03 19:30:12 +02:00 |
|
BulkUpdateTransactionsTest.php
|
refactor: Simplify transaction endpoints architecture (#76)
|
2026-01-25 16:15:17 +01:00 |
|
CancelFreeEnableBankingConnectionsCommandTest.php
|
Cancel Enable Banking connections for free users (#289)
|
2026-04-15 16:23:03 +02:00 |
|
CashflowAnalyticsTest.php
|
fix(cashflow): bound trend window to prevent request timeout (#534)
|
2026-06-15 12:47:27 +02:00 |
|
CashflowPageTest.php
|
feat(cashflow): add savings and period views (#424)
|
2026-05-25 16:41:00 +02:00 |
|
CatchAllBudgetTest.php
|
feat: add catch-all budgets (#527)
|
2026-06-15 16:07:19 +00:00 |
|
CategoryMonthlyBreakdownTest.php
|
feat(analysis): per-category 12-month spending drawer (#519)
|
2026-06-11 09:52:53 +02:00 |
|
CurrencyConversionServiceTest.php
|
fix(currency): make rate fetching resilient to slow CDN (#502)
|
2026-06-08 09:10:38 +02:00 |
|
DashboardAnalyticsTest.php
|
fix(accounts): show credit cards as positive and exclude them from net worth (#673)
|
2026-07-13 07:27:52 +00:00 |
|
DashboardTest.php
|
feat: parent/child category tree (#474)
|
2026-06-03 19:30:12 +02:00 |
|
DecryptTransactionsTest.php
|
refactor(encryption): strip client-side transaction encryption (#514)
|
2026-06-20 16:13:26 +00:00 |
|
DeleteUserCommandTest.php
|
Support soft-deleted users with reusable emails (#316)
|
2026-04-22 11:41:41 +01:00 |
|
DemoAccountRestrictionsTest.php
|
feat(demo): gate demo account access behind a config flag (#580)
|
2026-06-22 11:01:27 +00:00 |
|
DisconnectBankingConnectionsCommandTest.php
|
feat(banking): add command to disconnect connections by id (#497)
|
2026-06-06 11:16:01 +02:00 |
|
DiscordWebhookTest.php
|
feat: add Discord admin feed for daily stats and Stripe events (#458)
|
2026-05-30 18:14:46 +02:00 |
|
EncryptionTest.php
|
refactor(encryption): strip client-side transaction encryption (#514)
|
2026-06-20 16:13:26 +00:00 |
|
ExampleTest.php
|
Install Pest
|
2025-11-07 12:01:58 +00:00 |
|
ExchangeRateServiceTest.php
|
Fix PHP-LARAVEL-1V exchange rate cache race (#383)
|
2026-05-12 12:45:45 +02:00 |
|
GenerateStripePromotionCodesCommandTest.php
|
feat(stripe): add promo code generator (#311)
|
2026-04-20 18:15:28 +01:00 |
|
IdorVulnerabilityTest.php
|
refactor: Simplify transaction endpoints architecture (#76)
|
2026-01-25 16:15:17 +01:00 |
|
ImportDataTest.php
|
fix: Apply automation rule labels on transaction creation and import (#79)
|
2026-01-27 11:11:29 +01:00 |
|
InertiaSharedDataTest.php
|
chore: harden Inertia boundary, CI type-check, and test isolation (#640)
|
2026-07-04 18:57:58 +00:00 |
|
IntegrationRequestTest.php
|
feat(integration-requests): add done status and fix review command crash on orphaned author (#601)
|
2026-06-27 14:42:09 +00:00 |
|
LabelTest.php
|
refactor(api): standardize serialization via model $hidden (#492)
|
2026-06-05 13:57:34 +02:00 |
|
LandingAuthOverrideTest.php
|
feat(leads): cohort-based launch invitations with per-user Stripe coupons (#333)
|
2026-04-30 15:10:28 +01:00 |
|
LoanTest.php
|
chore: harden Inertia boundary, CI type-check, and test isolation (#640)
|
2026-07-04 18:57:58 +00:00 |
|
LocalizationTest.php
|
feat(i18n): add French translation support (#532)
|
2026-06-15 19:15:43 +02:00 |
|
LoggingConfigTest.php
|
fix(logging): keep laravel.log writable across container UIDs (#451)
|
2026-05-29 15:10:50 +02:00 |
|
MailSenderTest.php
|
refactor(drip): extract base mailable and job for the drip email family (#641)
|
2026-07-04 20:51:38 +02:00 |
|
NewTransactionsMarkerTest.php
|
feat(transactions): make new-transaction marker cross-device (#611)
|
2026-06-29 19:11:37 +02:00 |
|
PlaintextTransactionsTest.php
|
Remove plaintext-transactions feature flag & E2E references (#116)
|
2026-02-13 11:10:21 +01:00 |
|
PlanFeatureTest.php
|
feat(ai): suggest automation rules during onboarding (#523)
|
2026-06-13 22:51:15 +02:00 |
|
PopoverSafeAreaTest.php
|
fix: keep iOS popovers below the notch (#282)
|
2026-04-13 15:19:56 +01:00 |
|
PostStripeEventToDiscordTest.php
|
fix(discord): show old → new plan on plan change notification (#637)
|
2026-07-04 15:49:09 +00:00 |
|
PurgeResidualEncryptionArtifactsJobTest.php
|
chore: harden Inertia boundary, CI type-check, and test isolation (#640)
|
2026-07-04 18:57:58 +00:00 |
|
PwaTest.php
|
Harden browser storage and PostHog recording (#402)
|
2026-05-14 15:57:48 +02:00 |
|
QueueConfigTest.php
|
fix(queue): raise retry_after above the longest job timeout (PHP-LARAVEL-2D) (#645)
|
2026-07-05 09:31:23 +00:00 |
|
ReEvaluateTransactionRulesTest.php
|
fix(security): scope job-status endpoints to owner + feature-area fixes (#627)
|
2026-07-03 14:49:32 +02:00 |
|
RealEstateAvailabilityTest.php
|
refactor(real-estate): remove Pennant gating (#308)
|
2026-04-20 13:31:49 +01:00 |
|
RealEstateTest.php
|
fix(balances): stop historical-balance generator OOM on ancient purchase/loan dates (PHP-LARAVEL-49) (#661)
|
2026-07-08 21:34:43 +00:00 |
|
ResendLeadVerificationEmailsCommandTest.php
|
feat: resend verification emails to unverified leads (#287)
|
2026-04-15 09:13:27 +01:00 |
|
ResendSyncCommandTest.php
|
feat: Sync new users to Resend contacts (#85)
|
2026-01-28 21:25:58 +01:00 |
|
ResendSyncLeadsCommandTest.php
|
perf(resend): default sync-leads to last 24h window (#354)
|
2026-05-05 09:57:25 +01:00 |
|
RouteNotificationForMailTest.php
|
fix(notifications): skip mail dispatch when recipient email is invalid (#387)
|
2026-05-13 09:47:50 +01:00 |
|
RuleEngineParityTest.php
|
refactor: consolidate duplicated financial calculations (#643)
|
2026-07-04 22:26:44 +02:00 |
|
SavedFilterTest.php
|
feat(analysis): project-aware transaction analysis (#513)
|
2026-06-09 15:32:07 +02:00 |
|
SelfServeRefundTest.php
|
feat(subscriptions): trial/pricing A/B/C experiment (#600)
|
2026-06-27 18:00:15 +02:00 |
|
SendAiCohortReportCommandTest.php
|
feat(stats): add --no-discord to the remaining report commands (#607)
|
2026-06-29 15:32:31 +02:00 |
|
SendAiConsentFollowUpEmailsCommandTest.php
|
test(drip): deflake AI consent onboarding-grace boundary test (#625)
|
2026-07-03 07:06:20 +00:00 |
|
SendDailyStatsReportCommandTest.php
|
feat(stats): add --no-discord to the remaining report commands (#607)
|
2026-06-29 15:32:31 +02:00 |
|
SendExperimentFunnelReportCommandTest.php
|
fix(stats): correct the trial/pricing experiment funnel report (#679)
|
2026-07-15 09:17:32 +02:00 |
|
SendStuckCohortReportCommandTest.php
|
feat(stats): add --no-discord to the remaining report commands (#607)
|
2026-06-29 15:32:31 +02:00 |
|
SendSubscriptionFunnelReportCommandTest.php
|
feat(stats): add --no-discord to the remaining report commands (#607)
|
2026-06-29 15:32:31 +02:00 |
|
SentryConfigTest.php
|
ci: remove production deploy job (#574)
|
2026-06-20 18:17:14 +00:00 |
|
SentryUserMiddlewareTest.php
|
Add Sentry user context (#348)
|
2026-05-04 13:26:50 +01:00 |
|
SetLocaleTest.php
|
feat(i18n): add French translation support (#532)
|
2026-06-15 19:15:43 +02:00 |
|
SitemapTest.php
|
User Onboarding Flow (#23)
|
2025-12-12 13:06:08 +01:00 |
|
StrayHttpRequestGuardTest.php
|
chore: harden Inertia boundary, CI type-check, and test isolation (#640)
|
2026-07-04 18:57:58 +00:00 |
|
StripeSubscriptionStatsCommandTest.php
|
feat: add Discord admin feed for daily stats and Stripe events (#458)
|
2026-05-30 18:14:46 +02:00 |
|
SubscriptionExperimentTest.php
|
feat(subscriptions): trial/pricing A/B/C experiment (#600)
|
2026-06-27 18:00:15 +02:00 |
|
SubscriptionTest.php
|
feat(paywall): require a plan when the user has accepted AI (#564)
|
2026-06-19 14:18:49 +00:00 |
|
SuggestionPersistenceTest.php
|
feat(ai): suggest automation rules during onboarding (#523)
|
2026-06-13 22:51:15 +02:00 |
|
SyncBankingConnectionsCommandTest.php
|
chore: Remove account-mapping feature flag (#252)
|
2026-04-01 12:09:22 +02:00 |
|
SyncStripePricesCommandTest.php
|
fix(pricing): update final release prices (#288)
|
2026-04-15 14:49:02 +01:00 |
|
TrackLastActiveAtTest.php
|
feat(users): track last login and last active timestamps (#516)
|
2026-06-10 11:01:30 +02:00 |
|
TransactionAnalysisTest.php
|
fix(analysis): respect category types like the cashflow screen (#612)
|
2026-06-29 21:04:18 +02:00 |
|
TransactionFilterTest.php
|
fix(transactions): prevent crash when sorting by nullable column (#501)
|
2026-06-06 17:23:21 +02:00 |
|
TransactionSideClassificationTest.php
|
refactor: consolidate duplicated financial calculations (#643)
|
2026-07-04 22:26:44 +02:00 |
|
TransactionTest.php
|
feat(transactions): allow editing all fields of manual transactions (#683)
|
2026-07-16 08:59:10 +02:00 |
|
UserLeadTest.php
|
feat: verify waitlist leads (#285)
|
2026-04-14 11:26:01 +01:00 |
|
WelcomeBanksOrderingTest.php
|
feat(open-banking): remove feature flag gating (#297)
|
2026-04-17 10:20:05 +02:00 |