build(deps): bump expo-font from 14.0.8 to 56.0.7#12
Closed
dependabot[bot] wants to merge 1 commit into
Closed
Conversation
Author
LabelsThe following labels could not be found: Please fix the above issues or remove invalid values from |
dependabot
Bot
force-pushed
the
dependabot/npm_and_yarn/expo-font-56.0.6
branch
2 times, most recently
from
June 14, 2026 05:42
5ab1f0d to
50d10d0
Compare
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
Bot
force-pushed
the
dependabot/npm_and_yarn/expo-font-56.0.6
branch
from
June 17, 2026 16:32
50d10d0 to
c7998f5
Compare
Author
|
Superseded by #23. |
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>
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 expo-font from 14.0.8 to 56.0.7.
Changelog
Sourced from expo-font's changelog.
... (truncated)
Commits