main #103

Merged
root merged 69 commits from main into dev 2026-06-04 18:19:23 +03:00
Owner
No description provided.
root added 69 commits 2026-06-04 18:19:16 +03:00
Reviewed-on: #35
Merge dev into main: PCAT description + vehicle attribute translation, parts.description backfill.
Reviewed-on: #37
Reviewed-on: #38
Reviewed-on: #39
Reviewed-on: #40
Reviewed-on: #41
Reviewed-on: #42
Reviewed-on: #43
Reviewed-on: #44
Reviewed-on: #45
Reviewed-on: #46
Reviewed-on: #47
Reviewed-on: #48
Reviewed-on: #49
Reviewed-on: #50
Reviewed-on: #51
Reviewed-on: #52
Reviewed-on: #53
Reviewed-on: #54
Reviewed-on: #55
Reviewed-on: #56
Reviewed-on: #57
Reviewed-on: #58
Reviewed-on: #59
Reviewed-on: #60
Reviewed-on: #61
Reviewed-on: #62
Reviewed-on: #63
Reviewed-on: #64
Reviewed-on: #65
Reviewed-on: #66
Reviewed-on: #67
Reviewed-on: #71
Reviewed-on: #72
Reviewed-on: #74
Reviewed-on: #75
Reviewed-on: #77
Reviewed-on: #78
Reviewed-on: #79
Reviewed-on: #80
Reviewed-on: #81
Reviewed-on: #82
Reviewed-on: #83
Reviewed-on: #84
Reviewed-on: #85
Reviewed-on: #86
Reviewed-on: #87
Reviewed-on: #88
Reviewed-on: #92
Reviewed-on: #94
fix(vin): Q5 WMI brand map + Q6 PL24 nissan/van routing (RCA, verified)
Some checks failed
QA Gate (P0/P1) / Test affected app (pull_request) Has been cancelled
83b2693af2
Second batch from undecoded-vin-rca.md. Every entry verified (authoritative
WMI registry + prod sibling + VDS fingerprint + live PL24 probe) before adding
— a wrong brand label or a dead PL24 route both have real downside.

Q5 — WMI_BRAND_MAP (packages/shared, UX/telemetry only; does NOT change which
catalog decodes). Adds 9: W1V=Mercedes-Benz, VXF=Fiat, YAR=Toyota, NL1=Hyundai,
KPA=SsangYong, PL1=Proton, LSV=Volkswagen, LVV=Chery, ZCF=Iveco. Resolves the
RCA conflicts: VXF=Fiat (not Opel), YAR=Toyota ProAce (not Opel); NL1=Hyundai
(not TOGG — MY char predates TOGG). Deliberately NOT added: WF1/WAA/W0W (1-char
corruptions of WF0/WAU/WVW — mapping them would mislabel typo classes), VE1
(unresolved, deferred).

Q6 — PL24_WMI_SERVICE_MAP (real decode routing). Both target services are
proven live, so these only append WMIs to working routes (no dead-route →
isDecodeable()=true → 25s-budget/circuit-breaker hazard):
- SJN/VSK/MNT → nissan_parts (Sunderland/Spain/Thailand) — regression restore,
  dropped in the 757905f refactor; nissan_parts proven (JN1 decodes in prod).
- W1V → mercedesvans_parts (Sprinter/Vito) — retires the RCA "never tried" flag:
  mercedesvans_parts decodes WDF44770513186937 live today via the same P5 path.

Tests: shared getBrandFromWmi (adds + corruption-skips return null), pl24 route
map. Full api suite green.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
fix(notifications): correct subscription CTA path to /dashboard/subscription
Some checks failed
QA Gate (P0/P1) / Test affected app (pull_request) Has been cancelled
eecc173ecc
The trial-ending / payment-success / payment-failed emails were pointing
to /dashboard/settings?tab=subscription which does not exist; the correct
path is /dashboard/subscription. Referral paths are unchanged.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
fix(jobs): gate lifecycle-email cron behind prod-host check
Some checks failed
QA Gate (P0/P1) / Test affected app (pull_request) Has been cancelled
7e5e0ee446
dev.sase.tr was running the daily lifecycle-email cron (trial-ending,
win-back) against sase_dev, which is a seeded copy of the prod DB —
real customers were getting duplicate mails (one from prod, one from
dev). Mirror the isCatalogBackfillEnabled() gate so the lifecycle cron
only registers on the canonical prod host (COOLIFY_FQDN=sase.tr or
BETTER_AUTH_URL=https://sase.tr). LIFECYCLE_EMAIL_ENABLED env can force-
enable for staging testing. The else branch removes any stale scheduler
from Redis so a previously-registered cron stops firing.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Reviewed-on: #97
Reviewed-on: #96
Reviewed-on: #98
root merged commit e108683982 into dev 2026-06-04 18:19:23 +03:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: root/sase.tr#103