chore(deps-dev): Bump vitest from 4.1.6 to 4.1.9#11
Open
dependabot[bot] wants to merge 1 commit into
Open
Conversation
Author
LabelsThe following labels could not be found: Please fix the above issues or remove invalid values from |
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
andrei1000z
added a commit
that referenced
this pull request
May 25, 2026
…h wire #11 Auth event tracking expandat: - AuthProvider.signInWithEmail: track auth-magic-link-sent la submit OTP success (separat de auth-signin care fires după verify pe callback) - AuthProvider.signInWithOAuth: track auth-oauth-initiated cu provider ca să măsurăm conversion Google vs Apple - AuthProvider.signOut: track auth-signout-clicked înainte de actual Supabase call (capturează intent vs success — onAuthStateChange tracks succesul) - onAuthStateChange existing wire (signin/signout/password-reset) păstrat #4 GDPR Art. 17 right-to-erasure pentru analytics: - /api/profile/delete extins cu purgeAnalyticsForUser() helper care șterge userMeta/userRoutes/userCountries/userDays + ZREM topUsers + SREM excluded. Best-effort: Redis down NU blochează DB cascade. - /api/admin/analytics/user/[userId] NEW — endpoint dedicat admin pentru purge specific user (când user cere fără să-și șteargă contul, sau pentru post-incident cleanup). Returns deleted count pentru audit. #6 Pagină Romanian-language /legal/analiza-trafic: - 8 secțiuni: ce nu facem / cum derivăm visitor ID / câmpuri capturate / retention periods / bot filter / opt-out / cadru legal / GDPR contact - Wording match cu Art. 4(5) Legea 506/2004 + EDPB + CNIL Sheet 16 - Defensive structural în fața ANSPDCP — orice inquiry poate fi rezolvată prin trimitere la această pagină + docs/privacy/* (TODO) - Link adăugat în Footer sub „Politica de cookies" 759/759 teste pass. TS clean. Sursă: - https://www.cnil.fr/en/sheet-ndeg16 - https://legislatie.just.ro/Public/DetaliiDocument/56973 (L506/2004) - EDPB Guidelines 2/2023
andrei1000z
added a commit
that referenced
this pull request
May 29, 2026
… + mig 087) P0/P1 improvements: 1. **Worker MIME HTML→text fallback** (P0 #8) - cloudflare-worker/email-handler.js: stripHtmlBasic() in worker - Cand multipart/related are doar text/html (cazul sector5 cu logo-uri institutionale inline), worker deriva text brut din HTML - Backend primeste body_text garantat ne-gol cand sender a trimis HTML - Inainte: sector5 reply -> body_text=0 chars -> classifier necunoscut 2. **Auto-retry pe partial_bounced** (P0 #15) - /api/cron/sesizari-retry-bounce route nou - Query sesizari WHERE delivery_status='partial_bounced' AND retry<3 AND last_retry > 4h ago - Calculează pendingRecipients = sent - bounced - Resend la doar adresele care nu au facut bounce - Log audit trail in sesizari_retries - Subject prefixat „[REAMINTIRE / RETRIMITERE]" - Body include lista adrese excluse pentru transparenta cetatean 3. **Migration 087** (P1 #21, #22, #43) - sesizari.retry_count + last_retry_at columns - sesizari_retries audit table cu RLS admin-only - 6 indexes lipsa pe queries hot (replies authority_id, status+sent_at, moderation+created, votes user_id, notifications unread partial, partial_bounced retry) - statement_timeout 15s + idle_in_transaction 5min pe authenticated role - pg_cron inbox_filter_log retention 90 zile (daily 04:15) 4. **GH Actions backup workflow** (P0 #11) - .github/workflows/backup-supabase.yml - Daily pg_dump → R2 bucket civia-backups via aws-cli (S3-compatible) - Exclude Supabase internal schemas (auth, storage, vault, etc.) - Cost: <$1/luna R2 (compressed daily dumps) - Secrets needed: SUPABASE_DB_URL, R2_ACCESS_KEY, R2_SECRET_KEY, R2_ACCOUNT_ID, SENTRY_BACKUP_HEARTBEAT_URL Tsc OK. Next: aplica mig 087 in prod (npm run migrate), configureaza secrets GH Actions, schedule cron sesizari-retry-bounce.
6cbcf17 to
dc54785
Compare
Deploying with
|
| Status | Name | Latest Commit | Updated (UTC) |
|---|---|---|---|
| ❌ Deployment failed View logs |
civia-inbox-handler | 26cc447 | Jun 19 2026, 07:28 PM |
dc54785 to
648eee3
Compare
andrei1000z
added a commit
that referenced
this pull request
Jun 6, 2026
…p brut User: strip-ul determinist al „din zonă" lăsa text AGRAMAT („Pe trotuarul se înregistrează" — articol hotărât fără complement). Abordare greșită. Fix corect: - REVERT strip-ul brut din cleanRegister (strica gramatica). - Cauza reală: EXEMPLELE din SYSTEM_PROMPT învățau AI-ul să termine cu „în zonă"/„din zonă" (3 din ele!). Le-am curățat + regulă explicită (#11: fără locatori vagi, locația e separată, scrie gramatical) + exemplu nou pe cazul „solicit X pentru că [problemă]" → descriere curată păstrând detaliul. Acum AI-ul scrie natural + gramatical, fără „din zonă", de la bun început. Testat: descrierea user-ului → „...obstrucționează accesul pietonilor și afectează siguranța acestora, deși în apropiere există o parcare cu plată frecvent neocupată." (fără „din zonă", gramatical, păstrează detaliul). Verificat: tsc curat, teste sesizari. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
andrei1000z
added a commit
that referenced
this pull request
Jun 6, 2026
MFA NATIV Supabase (auth.mfa.*) — zero migrare, zero stocare custom de secrete (factorii trăiesc în schema auth). Component MfaSetup în secțiunea cont: - Activează 2FA → enroll TOTP → QR (SVG din Supabase) + cheie manuală → verifică cu cod 6 cifre (challengeAndVerify) → factor „verified". - Dezactivează (unenroll). Curăță factorii neverificați abandonați înainte de re-enroll. COMPLET ADITIV: nu atinge login-ul magic-link → zero risc de lockout. Enrollment opt-in per user. Enforcement-ul AAL2 pentru admini e pasul următor (după ce enrollment-ul e testat live — nu pot scana QR-ul din CI). Notă: necesită ca MFA TOTP să fie activat în proiectul Supabase (de obicei e by default); dacă nu, enroll întoarce eroare afișată grațios în panou. tsc curat, 904 teste trec. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
andrei1000z
added a commit
that referenced
this pull request
Jun 7, 2026
Supabase (GoTrueClient) prepend-uiește deja „data:image/svg+xml;utf-8,<SVG RAW>"
la qr_code. Componenta îl împacheta A DOUA OARĂ
(`data:image/svg+xml;utf8,${encodeURIComponent(qrCode)}`) → URL nested invalid
(data:...,data%3Aimage...) → imagine spartă. În plus, SVG-ul brut ne-encodat se
rupe la „#" din culori (interpretat ca fragment URL).
qrToSrc(): extrage SVG-ul din prefixul Supabase + îl re-encodează corect
(charset=utf-8 + encodeURIComponent → „#" devine %23). Tratează și data-URL
binar / URL extern direct. 5 teste (regresie blocată).
Verificat: data:image/svg+xml;charset=utf-8,%3Csvg... decodează la SVG valid.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
648eee3 to
d4d764c
Compare
d4d764c to
b01ed5d
Compare
Bumps [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) from 4.1.6 to 4.1.9. - [Release notes](https://github.com/vitest-dev/vitest/releases) - [Changelog](https://github.com/vitest-dev/vitest/blob/main/docs/releases.md) - [Commits](https://github.com/vitest-dev/vitest/commits/v4.1.9/packages/vitest) --- updated-dependencies: - dependency-name: vitest dependency-version: 4.1.7 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
b01ed5d to
26cc447
Compare
andrei1000z
added a commit
that referenced
this pull request
Jul 2, 2026
… + matching + stări + reziliență AI) SECURITATE - BLOCKER #1: auto-apply cerea încredere din From-ul spoofabil + poarta DKIM/ DMARC era opțională → oricine putea falsifica office@primarie.ro + cod PUBLIC și marca sesizarea altui cetățean. Acum auto-apply cere DOVADĂ: match token/ threading (secret) SAU DKIM/DMARC aliniat (authenticity.auth_aligned) - #20/#22 worker: păstrăm PRIMA apariție Authentication-Results (cea a Cloudflare), nu ultima → atacatorul nu mai injectează un A-R fals mai jos în mesaj - #19: scoreAiAuthenticity folosește cascada groqText (nu Groq brut) → 429 nu mai colapsează la 50 (care bloca auto-apply pt. senderi gov reali) MATCHING - #6 gardă N3: cod din sursă slabă fără coroborare (domeniu/sursă robustă) → medium nu high; cod care leagă o sesizare netrimisă/creată-după-reply → nu se leagă - #8 N4: fereastră 180z + order + limit server-side (nu mai lovea plafonul 1000) - #25/#32 extract-code: scos regex-ul care prindea primul token al oricărui Message-ID terț; nr. de înregistrare 12345/2026 nu mai e confundat cu cod - #26: content_score medium doar pe câștigător strict (fără tie arbitrar) STĂRI - #11/#13: ignorat (marcaj administrativ) nu mai înghite răspunsuri reale — orice status de răspuns îl supersedează - #12: mișcări laterale în tier activ (in-lucru->interventie) = progres, nu drop - #29: redirectionata poate supersedea inregistrata (redirect după înregistrare) - #30 auto-status: nu mai marchează ignorat sesizări niciodată-trimise (scos nou); cronometrează de la sent_at, nu created_at NOTIFICĂRI - #5: push-ul reflectă statusul CHIAR aplicat, nu clasificarea (gata Rezolvată fals) - #7: push doar pe match high-confidence (medium putea notifica alt cetățean = PII) - #15: auto_applied=true doar când un status se aplică efectiv (nu scapă din digest) REZILIENȚĂ AI - #27: cascada nu mai moare dacă lipsește GROQ_API_KEY (sare la Gemini/CF) - #10: timeout intern pe callGemini (18s) + pe SDK-ul PDF (25s) - #9: PDF scanat cu Gemini gol cade la Groq/CF vision (nu renunță) WORKER - #3/#17/#18: filtre soft (noreply@/Auto-Submitted/Precedence/List-Id) nu mai dropează confirmările de înregistrare — bypass când par răspuns de autoritate - #33: Message-ID sintetic determinist pt. emailuri fără unul → dedup la retry - #24: eroare tranzitorie de insert → retry (dedup-safe), nu pierdere tăcută - #28/#31: received_at/official_response_at = ora emailului, nu ora procesării +14 teste noi (computeStatusUpdate ignorat/lateral/redirect, extract-code guards, matchReply N3). worker v4.3.0. 1161 teste, tsc 0, eslint 0. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Bumps vitest from 4.1.6 to 4.1.9.
Release notes
Sourced from vitest's releases.
Commits
a7a61e7chore: release v4.1.9 (#10598)934b0f5fix(pool): prevent test run hang on worker crash (#10543) [backport to v4] (#...7fb2965fix(browser): wait for orchestrator readiness before resolving browser sessio...a518019fix: fiximportOriginalwith optimizer and query import [backport to v4] (#...e61f2ddchore: release v4.1.8e4067b3fix(browser): disable clientcdpAPI whenallowWrite/allowExec: false[ba...a09d472chore: release v4.1.7