Skip to content

build(deps): bump expo-font from 14.0.8 to 56.0.7#12

Closed
dependabot[bot] wants to merge 1 commit into
masterfrom
dependabot/npm_and_yarn/expo-font-56.0.6
Closed

build(deps): bump expo-font from 14.0.8 to 56.0.7#12
dependabot[bot] wants to merge 1 commit into
masterfrom
dependabot/npm_and_yarn/expo-font-56.0.6

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Jun 14, 2026

Copy link
Copy Markdown

Bumps expo-font from 14.0.8 to 56.0.7.

Changelog

Sourced from expo-font's changelog.

Changelog

Unpublished

🛠 Breaking changes

  • [web] Removed Server.resetServerContext(). Server-side font state is now scoped per-render via AsyncLocalStorage. (#46669 by @​hassankhan)

🎉 New features

  • [web] Added Server.withServerContext(callback) which scopes server-side font loads per render. (#46669 by @​hassankhan)

🐛 Bug fixes

💡 Others

56.0.5 — 2026-05-19

🐛 Bug fixes

  • Sanitize values in web font loader and Android config plugin (#45887 by @​kitten)

56.0.4 — 2026-05-15

🐛 Bug fixes

56.0.3 — 2026-05-06

This version does not introduce any user-facing changes.

56.0.2 — 2026-05-06

This version does not introduce any user-facing changes.

56.0.1 — 2026-05-05

This version does not introduce any user-facing changes.

56.0.0 — 2026-05-05

🛠 Breaking changes

🎉 New features

... (truncated)

Commits

@dependabot @github

dependabot Bot commented on behalf of github Jun 14, 2026

Copy link
Copy Markdown
Author

Labels

The following labels could not be found: client, dependencies. Please create them before Dependabot can add them to a pull request.

Please fix the above issues or remove invalid values from dependabot.yml.

@dependabot dependabot Bot changed the title Bump expo-font from 14.0.8 to 56.0.6 build(deps): Bump expo-font from 14.0.8 to 56.0.6 Jun 14, 2026
@dependabot
dependabot Bot force-pushed the dependabot/npm_and_yarn/expo-font-56.0.6 branch 2 times, most recently from 5ab1f0d to 50d10d0 Compare June 14, 2026 05:42
miningtheblocks added a commit that referenced this pull request Jun 14, 2026
- jest: 29.7.0 → 30.4.2 (24/24 unit tests OK)
- @firebase/rules-unit-testing: 3.0.4 → 5.0.1 (42/42 rules tests OK)
- firebase-admin: NO bumpeado a v14 — breaking changes en API namespace
  (admin.firestore/admin.auth deprecados como métodos directos). Requiere
  refactor a imports modulares: 2-3h dedicadas. Documentado en
  ACCIONES_MANUALES.md tarea #12.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
miningtheblocks added a commit that referenced this pull request Jun 14, 2026
#11 — la app no va a Play Store (gambling + sideload), redes mainstream
no aplican. Mitigación actual (sid/token a sessionStorage) cubre el
riesgo principal. Coinzilla queda como opción futura.

#12 — los precios de gemas son fijos por diseño. El refactor a Firestore
solo agrega latencia + complejidad sin valor (caso de uso "cambiar
precios" no aplica).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
miningtheblocks added a commit that referenced this pull request Jun 17, 2026
… bombing, perf

Round 2 de auditoría — 6 fixes baratos de alto ROI:

- .easignore agrega *.jks, *.pkcs12, service-account*.json, *-adminsdk-*.json
  para evitar que eas build suba el keystore JKS o SA dedicados a EAS Cloud.
  (Agente #9 HIGH-09-19, Agente #11 HIGH-11-19)

- UpdateModal allowlist agrega github.com con path-check estricto al repo
  oficial /miningtheblocks/Mining-The-Blocks/releases/download/. El sitio web
  sirve el APK desde GitHub Releases y la validación previa rechazaba ese
  host → users que tapeaban "Descargar" caían al fallback miningtheblocks.com
  y nunca llegaban al APK directo.
  (Agente #9 CRIT-09-01)

- sendVerificationEmail con rate-limit 5/hora/uid via _rateLimitFirestore.
  Sin esto, un user recién creado podía bombear hasta que Gmail suspendiera
  el app-password compartido → outage TOTAL de emails (verify + claim +
  reportProblem + mint alerts).
  (Agente #6 CRIT, Agente #10 cross-ref)

- mintProcessorScheduled + cryptoPaymentProcessorScheduled con self-throttle
  (early-return si la queue está vacía). El cron corre cada 5min aunque no
  haya trabajo; saltearlo evita cargar el eth provider, secrets, y RPC calls
  a publicnode.com (sin SLA). Ahorra ~$5/mes y reduce risk de rate-limit RPC.
  (Agente #12 P0)

- WCAG-AA contrast bump en Login/Config/Profile:
  #555 (ratio ~3.5:1) → #888 (ratio ~5.4:1) en texto secundario
  #333 (ratio ~1.5:1) → #666 en primaryTxtDisabled de Login
  Cierra MED-10-45 y avanza compliance European Accessibility Act.

- i18n agrega 2 keys faltantes (profile.walletCooldown + profile.emailNotVerified)
  en EN+ES. Profile.js las usaba con fallback inline; sin las keys reales el
  user veía el key literal "profile.walletCooldown" en pantalla.
  (Agente #10 parte de CRIT-10-04)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
miningtheblocks added a commit that referenced this pull request Jun 17, 2026
… distribuido

Tres CRIT del audit Round 2 que comparten el área del mint processor + feed
realtime multiplayer. Eran independientes pero juntos cierran el bloque
"robustez onchain + realtime":

1. Schema canónico `minedAt` en mineCube.

   Antes se escribía `ts: Date.now()` en mined/{cubeId}, pero
   firestore.indexes.json declara mined[K, minedAt DESC] y DynamicCube201.js
   subscribe con orderBy('minedAt', 'desc'). El index quedaba unused y el
   feed multiplayer recibía snapshot vacío — solo aparentaba funcionar
   por el optimistic local update del usuario que minó.
   (Agentes #2 CRIT + #5 CRIT-1 + #12 cross-ref)

2. tx.wait(SAFE_CONFIRMATIONS=30) en runMintProcessing.

   Polygon PoS confirma checkpoints cada ~30min y reorgs de hasta 100
   bloques se observaron históricamente. tx.wait() sin parámetro vuelve al
   primer block include — un reorg posterior puede revertir el mint
   mientras Firestore ya tiene status:completed. User queda sin NFT
   on-chain y sin trail para reclamo.

   30 bloques @ ~2.2s ≈ 66s extra de espera por mint. Aceptable para un
   cron 5min con queue chica; reduce a ~0% el riesgo de "NFT fantasma".
   (Agentes #3 CRIT-6 + #8 CRIT-1)

3. Lock distribuido en `runtime/mintProcessor` con TTL 10min.

   Antes, `processPendingMints` (onCall admin manual) y
   `mintProcessorScheduled` (onSchedule cron 5min) podían correr
   concurrentes y enviaban mintGem() con el MISMO nonce de la company
   wallet → una falla con "nonce too low", MATIC quemado en gas, race
   en doc.status=processing, backlog stuck.

   Lock pattern: TX read snapshot, check expiresAt, write si libre.
   Auto-release en finally + TTL backup si el worker crashea. Las rules
   son default-deny para /runtime/* — cliente no puede tocarlo.
   (Agentes #3 CRIT-4 + #8 CRIT-3)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
miningtheblocks added a commit that referenced this pull request Jun 17, 2026
… scrub PII)

Cierra 4 items operacionales del Audit Round 2 que tenían en común "señales
que existían pero nadie miraba" + leak de PII en logs.

1. maticBalanceCheckScheduled — alert proactivo de MATIC bajo.

   Pre-fix (Agente #11 CRIT-11-02 + #12 MED-11-49): mints fallaban
   silenciosamente cuando MATIC llegaba a 0. 5 retries × ~30s = 2-3h de
   holders esperando ANTES del email de fail (que solo se manda tras
   FALLAR 5 veces). Sin proactive alert.

   Nueva CF cada 6h: lee balance via Polygon RPC, compara contra
   threshold 2 MATIC (~50 mints futuros @ gas típico). Si < threshold:
   - dedupe via runtime/maticBalanceAlert.lastAlertAt (max 1/día).
   - email a NOTIFY_EMAIL con balance, threshold, instrucciones para top-up.

2. errorLogSummaryWeekly — digest semanal del errorLog Firestore.

   Pre-fix (Agente #11 HIGH-11-21): errorLog era write-only en regla; nadie
   lo leía programáticamente. El dev tenía que abrir Firebase Console
   manualmente y scrollear. Regresiones del cliente quedaban invisibles
   hasta que un user reportaba "la app me crashea" via reportProblem.

   Nueva CF every monday 08:00 ART: query últimos 7 días, agrupa por scope,
   email HTML con top 25 scopes ordenados por count + sample message.

3. adminActionsAnomalyWeekly — anomaly detection en adminActions.

   Pre-fix (Agente #11 HIGH-11-22): adminActions también write-only; nadie
   monitorea. Si un admin se compromete y hace 50 grant_admin +
   addServerCredit + notifyAllUsers, el log existe pero el operador no se
   entera hasta auditoría manual mensual (que no está agendada).

   Nueva CF every monday 08:30 ART: agrupa últimos 7 días por adminUid +
   action. Si CUALQUIER admin tuvo >50 ops/sem, marca ⚠️ HIGH en la fila
   + subject line con flag. Email HTML con 2 tablas (by admin, by action).

4. PII scrub:

   a) sendVerificationEmail: pre-fix logueaba `prefix:
      verificationLink.slice(0, 80)` que incluye el oobCode (1h-valid
      password reset token) + email del user. Fix: usar URL parser para
      loguear solo protocol+host (suficiente para diagnóstico).
      (Agente #11 MED-11-25)

   b) src/utils/logError.js: pre-fix scrubeaba PII solo por nombre de key
      (_SENSITIVE_KEY_RE). Si un caller pasaba `{ formData: { email:
      'a@b.com' } }`, el value leakeaba porque "formData" no matchea.
      Fix: scrub adicional por VALOR con 3 regex (email, wallet 0x{40},
      phone +CC{8-15}) reemplazando por placeholders genéricos preservando
      el resto del contexto para debug.
      (Agente #4 MED-FE-23 + Agente #11 MED-11-41)

Tests: 24/24 helpers pasan, functions/index.js parsea OK.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
miningtheblocks added a commit that referenced this pull request Jun 17, 2026
Cierra 6 hallazgos críticos pendientes pre-launch. Cambios localizados, sin
refactor estructural.

1. activityFeed TTL `expiresAt` (Agente #12 + #11 HIGH-11-40).
   writeActivity ahora agrega expiresAt = now + 7d. Firestore TTL Console
   borrará docs viejos automáticamente (después de activar la policy —
   pendiente operacional en RUNBOOK).
   Pre-fix: feed crecía infinito → cost amplification + PII histórica.

2. mineCube docId `${K}_${cubeNumber}` (Agente #1 CRIT-1).
   Pre-fix: `mined/${cubeNumber}` colisionaba entre layers. K=100 mina N=5;
   cuando K decrementa a 99 y otro user mina N=5 en K=99, el docId "5"
   colisiona → data mixing.
   Pre-launch: 0 mines reales en producción → forward-only safe.

3. processPendingMints audit log en adminActions (Agente #6 HIGH).
   La invocación manual del cron de mints no quedaba en adminActions, solo
   en Cloud Logging (retención 30d). Para forensic post-incidente esencial.

4. Override global de console.log REMOVIDO (Agente #4 CRIT-FE-06).
   Pre-fix: console.log = wrapper que filtraba un warning de expo-gl.
   Anti-pattern: HMR re-importa el módulo → wrappea otra vez → cadena
   infinita de wrappers. Plus dead code en prod (babel strippea console.log).

5. miningAnimations dead state REMOVIDO (Agente #5).
   const [miningAnimations, setMiningAnimations] = useState(new Map())
   declarado pero setMiningAnimations nunca se llamaba. 3 sites
   referenciaban este state muerto: useEffect cleanup forEach (no-op,
   removido), render loop check hasActiveAnimations (siempre false), comments
   documentan migración a useRef si vuelve la necesidad.

6. getFaceRange() lee del cache faceRangesRef (Agente #5 CRIT-4).
   Pre-fix: iteraba 240k cubeNumbers por call. JSX lo llamaba en cada
   re-render = 15-60×/seg × 240k = 14M iter/seg = stutter Android low-end.
   Fix: cache hit primero (faceRangesRef ya populated por
   recomputeFaceRanges en buildLayer). Loop solo en cache miss.

Bonus: setCorsHeaders unused import removido (post Commit K).

Tests: helpers OK, lint clean, parse OK.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Bumps [expo-font](https://github.com/expo/expo/tree/HEAD/packages/expo-font) from 14.0.8 to 56.0.7.
- [Changelog](https://github.com/expo/expo/blob/main/packages/expo-font/CHANGELOG.md)
- [Commits](https://github.com/expo/expo/commits/HEAD/packages/expo-font)

---
updated-dependencies:
- dependency-name: expo-font
  dependency-version: 56.0.6
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot changed the title build(deps): Bump expo-font from 14.0.8 to 56.0.6 build(deps): bump expo-font from 14.0.8 to 56.0.7 Jun 17, 2026
@dependabot
dependabot Bot force-pushed the dependabot/npm_and_yarn/expo-font-56.0.6 branch from 50d10d0 to c7998f5 Compare June 17, 2026 16:32
@dependabot @github

dependabot Bot commented on behalf of github Jun 17, 2026

Copy link
Copy Markdown
Author

Superseded by #23.

@dependabot dependabot Bot closed this Jun 17, 2026
@dependabot
dependabot Bot deleted the dependabot/npm_and_yarn/expo-font-56.0.6 branch June 17, 2026 16:34
miningtheblocks added a commit that referenced this pull request Jun 18, 2026
…n plural

Cubre 5 hallazgos de los reportes de los 12 agentes que quedaron sin
attended en commits A-Z.

1. HIGH-09-04: App Links autoVerify para deep links HTTPS
   - docs/.well-known/assetlinks.json declara SHA-256 BF:8F:25... del
     keystore mtb-release-v2 → Android verifica al install que el APK
     viene del owner del dominio miningtheblocks.com.
   - AndroidManifest.xml: intent-filter android:autoVerify="true" para
     scheme=https + host=miningtheblocks.com + pathPrefix=/app/. Sin esto,
     otra app maliciosa podría declarar el mismo scheme y secuestrar el
     callback.
   - App.js DeepLinkHandler reconoce https://miningtheblocks.com/app/<page>
     además del scheme mtb:// existente.
   - docs/app/index.html: fallback page para users que clickean el link
     sin tener la app instalada (los redirige al GitHub releases).

2. HIGH #2/#12 (Firestore rules): query.limit caps explícitos
   - activityFeed: limit <= 100 (sin cap, cliente authed traía la
     colección entera en bucle).
   - mined: limit <= 500 (servidor con 6 capas = ~50k cubos).
   Cost amplification prevention. Deployed via firebase deploy.

3. P3 defense-in-depth (firebase.json hosting headers):
   - Cross-Origin-Opener-Policy: same-origin (isola browsing context al
     window.open).
   - Cross-Origin-Resource-Policy: same-origin (mis assets no embebibles
     cross-origin como <img>/<script>/etc.).
   - Permissions-Policy extendida: autoplay, display-capture,
     encrypted-media, fullscreen=(self), picture-in-picture, screen-wake-lock,
     sync-xhr, web-share, xr-spatial-tracking, etc. — cierra ~10 features
     no usadas que el browser exponía por default.
   - STS preload directive agregado (`includeSubDomains; preload`).
   - COEP `require-corp` evaluado y descartado: rompería verify.html
     (Firebase SDK desde gstatic.com sin CORP headers).

4. CRIT-10-04 follow-up: pluralization helper tn(key, count, vars)
   - CLDR plural rules para en/es (binary: one / other).
   - Uso: tn('gem.found', 5, { tier: 3 }) → busca 'gem.found_one' o
     'gem.found_other' con `{count}` autoinyectado como var.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
miningtheblocks added a commit that referenced this pull request Jun 25, 2026
PROBLEMA — Apretar botón de cara terminaba en cara incorrecta:
  Reproducción: estando en grid mode mirando "left", apretar "back" iba a
  "front". El render loop salía/entraba a grid mode durante la animación
  de goToFaceCenter (3 fases: zoom out a 650 → rotar → zoom in a 118.85).
  La fase 1 (distance=650 > EXIT_GRID_DIST=275) disparaba la transición
  auto grid→cube que limpiaba requestedFaceRef. Al volver a grid en fase 3,
  la cara solicitada se había perdido → fallback a lastDetectedFaceIndexRef
  que durante el zoom out apuntaba a 'front'.

Fix (DynamicCube201.js render loop ~L3491):
  Agregar `suppressedAutoGrid = nowTs < suppressAutoGridRef.current` y
  sumarlo a las condiciones de shouldUseCameraMode / stickyGrid. Durante
  los ~1860ms de animación que goToFaceCenter cubre vía suppressAutoGridRef,
  el modo grid y requestedFaceRef se mantienen → la cámara aterriza en la
  cara correcta.

BACKEND — firestore.rules cap subido de 500 a 2500:
  El listener de mined pedía limit(2500) pero las rules cap eaban a 500
  (Round 2 #2/#12 HIGH). Quedó desincronizado en algún commit anterior →
  query del listener fallaba con permission-denied → minedCubes nunca se
  poblaba en cold start → parches no persistían. Confirmado via logcat.

LIMPIEZA:
  - Quitar toasts de diagnóstico (Mineds DB / ERR Firestore) — eran solo
    para identificar el bug de rules, ya cumplió su función.
  - Mantener console.warn en error handler del onSnapshot.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants