Aperçu du développement
Par DeHub Team — 2026-08-22
Un quart de l'expédition
Depuis le début du mois de juillet, nous avons fusionné plus de 900 modifications dans trois référentiels : dehubweb (642 validations), dehub-stream-backend (52) et dehub-mobile (221). Le référentiel Web est devenu public le 17 juillet sous licence MIT (3d84d06714), de sorte que chaque ligne est livrée à l'air libre. Ce récapitulatif couvre chaque œuvre distincte — pas seulement les faits saillants — et porte son engagement le plus pertinent afin que vous puissiez le lire.
Les étapes sont devenues le produit
Les étapes ont commencé le trimestre comme une salle audio en direct. Il le termine comme une pile de diffusion :
- Les hôtes planifient les étapes et les annoncent (ff1343f1dc, mobile ca97c9366c), sur une base qui ajoute des rappels, l'écoute des invités, des liens d'invitation courts et des cartes de partage par étape (b60fef88ec).
- Toute personne qui définit un rappel est alertée dès qu'une étape est mise en ligne (fc8b163ccf) — et à nouveau lorsqu'elle commence bientôt (6dc9f62b07).
- La carte d'annonce indique qui attend (6aaae602af) et les visages de rappel s'assoient à droite la page de liens profonds (04b36e5984).
- Les pages de scène s'exécutent sur toute la largeur avec un emplacement d'annonce et les derniers messages en dessous (916a60f6a8, c92423d069), vous atterrissent sur un onglet qui contient quelque chose (f410e2f5c2) et indiquent le fuseau horaire dans lequel se trouve une heure planifiée (a24d758d85).
- Les couvertures ont reçu un traitement partout, 16:9 et n'ont jamais été recadrées (92a267b044), affichées entières plutôt que sous forme de recadrage (0ae5c506ca) et dimensionnées pour les cartes de partage sur live rooms too (d900b9c8c7).
- Les cartes Stage portent l'avatar de l'hôte et reviennent à leur profil, derrière un bouton de rappel en verre (03020ff72f).
- Going live no longer needs OBS : les hôtes diffusent directement à partir de la caméra du navigateur (1e140f5295) et partagent leur écran mid-room (53268ed328), dimensionné pour l'appareil sur lequel il atterrit.
- Le public parle en retour dans le chat Stage (#359), lit les sous-titres en direct (#364) traduit dans les langues que la salle lit (#369), et peut entendre toute la scène doublée en direct de la propre voix de l'hôte — payée en DHB à la minute (#372), fonctionnant sur un onglet pour qu'elle survive en quittant la salle (#375), facturée au portefeuille plutôt qu'à un solde créditeur (#378), et gardée à l'écart du forfait d'entrée afin de se joindre à la lumière (#389).
- Les hôtes mettent une station de radio en ondes (#379) ou jouent leurs propres clips musicaux entre les conversations (#382).
- Les arrivées anticipées sont placées dans la foule en direct avant l'ouverture de la salle (6ae8b746e0) et l'état de la salle terminée a été reconstruit autour d'un onglet Hôte (#346).
- Chaque étape enregistre. Le téléchargement s'affiche comme un toast d'angle avec le préchargeur (#331) ; les enregistrements sont lus à partir du même lecteur d'angle partout (#360), y compris directement sur la carte sur laquelle ils apparaissent (#368) ; ils recherchent correctement sur Android (#422) et faire correspondre la lecture Web sur mobile (mobile #162), encodée comme un vrai AAC au lieu d'un faux MP4 (mobile #165). Une page garée ne peut plus perdre l'enregistrement (#329), seul l'hôte peut en supprimer un (#325), et le téléchargement est étiqueté après son format réel (#420), avec un contrôle de vitesse en lecture (#428). Les enregistrements mobiles sont remuxés de sorte qu'ils recherchent aussi (#471), et tous les enregistrements se reposent directement à partir de la feuille de partage (#429).
- Les liens d'étape continuent de fonctionner après la fin de l'étape (#363) : ils se déroulent pour les robots d'exploration, l'état muet persiste, les comparaisons de portefeuilles sont insensibles à la casse, et le formulaire d'invitation court partage également depuis l'intérieur d'une salle de course (5b2768e5e6), et la feuille de partage a généré une action de repost (#429).
- La modération a été déplacée dans la salle de course. panneau d'administration (backend #109), mandaté par le service qui détient réellement la clé (backend #114, #404), avec la piste d'audit restaurée derrière chaque action (backend #110). Les super administrateurs peuvent définir directement le nombre d'écoutes d'une scène (#416, backend #115).
- Les écritures de scène sont authentifiées derrière une porte de jeton d'éditeur (#324), durcies avant d'atteindre le déploiement (#330), et la pièce a survécu à l'ancienne la retraite de token service en recomptant sans le RPC (#328, en miroir sur mobile sur mobile #147).
L'IA s'est déplacée dans tous les coins
L'assistant
- @assistant exists : an assistant tool API and chat bot landed on the backend (backend #72), answering mentions in posts and comments (backend #73) only after re-checking the post on a fresh read (backend #74), pointed to the real @assistant account (backend #75).
- On the web it got real tools instead of keyword guessing (b691e62062), receives your actual token rather than a self-declared address (60bd056028), kept a repli local jusqu'à ce que le côté API soit actif (596c887506), et reconnaisse le vrai compte assistant @ partout (8d066e1207, mobile ea7bb89d08).
- Il répond visiblement dans les fils de commentaires (80eb82febd, mobile 23faa4726f), a rejoint le chat en direct mobile avec des données en direct (14ffa299bb, le jeton d'authentification attaché (8193b130a5)), continue de fonctionner lorsqu'une image est attachée (ec8b41b72a), fait apparaître de vraies erreurs de génération d'image (#333), connaît Last Chad Standing (71d6c3f44f) et a cessé de répondre aux mentions vieilles d'une semaine via l'ancien repli (#370). Le backend expose un point de terminaison de modèle et le dit quand il n'en a pas (backend #111).
- Les tickets de support déposés via l'assistant sont envoyés par courrier à dev@dehub.io (backend #106, f22485e94d), contiennent des faits réels sur votre session (backend #108), ont un endroit où aller une fois déposé (backend #107), et ne peut pas inonder la boîte de réception pendant une panne (backend #108).
- Une fonction périphérique de serveur MCP a été restaurée (76a589e1f9), ses charges utiles d'outils entièrement tapées (539417372a) afin que les gestionnaires appellent les points de terminaison de l'API (141e36cf80), avec LiveStream injecté dans le jeu d'outils sur le backend (backend #86). La table ai_agents ci-dessous a obtenu une migration qui peut être rejouée en toute sécurité (a08b2c5e15), une colonne de propriété que ses politiques peuvent réellement correspondre (d33e0dbbbd) et une politique de rôle de service définie sur service_role (393a4e0f87).
Creator Studio v2
- Un studio de génération native est arrivé avec un éditeur de style Canva et une file d'attente de rendu partagée sur toutes les surfaces (cdbd24dabb), le compositeur du studio étant la seule barre d'invite sur /creator (49e4bd1d51) et un comportement collant qui colle réellement (1ef900835a).
- Le mode audio a atterri sur les voix ElevenLabs (9b23618195) et la génération de modèles 3D est livrée avec un catalogue de modèles élargi (92782d2b4b) derrière un visualiseur durci contre l'échec WebGL et la dérive de l'affichage (77e1a9c405, récupération des contextes GL restaurés (461034db7e).
- Une bibliothèque d'actifs gratuite ouverte à l'intérieur de l'éditeur (bdefb38d0e), délimitée par portefeuille avec des rendus revendicables dans tous les onglets (0b8cf4c96f).
- La tarification a été rebaptisée autour des niveaux de modèles vidéo d'abord avec le niveau Créateur répertorié (6e41941d31), la bannière du créateur reconstruite à partir des catalogues de modèles réels (b50d67bbd7) et la génération acheminée via kie.ai à une majoration de 20 % (5f84971a7e).
Crédits et traduction
- Les crédits d'IA sont devenus réels et sont libellés en DHB (0eb7496bf0) : une subvention de démarrage plus l'accumulation quotidienne réclamée lors de la connexion rendent le crédit gratuit accessible (49333e63bd), le paiement à l'utilisation s'exécute à ses côtés avec la fenêtre de lecture fermée (87777465f8), le crédit a une place à acheter (bcf428963c) et le contrôle d'authentification de la fonction de bord derrière tout cela a été rendu réel tout en terminant la migration du crédit (0ef77c093e).
- Le flux se traduit automatiquement en votre langue sans gating sur un portefeuille, avec des dépenses plafonnées (85154309fd). Sous le capot : les traductions persistent côté serveur et Gemini est appelé directement (333cf42591), fal agit comme un repli payé entre Gemini et la passerelle (a833f4af70), les modèles retirés sont descendus dans une liste au lieu d'échouer (6e74ca7022), chaque paramètre régional est nommé dans l'invite avec la mise en cache des échecs arrêtée (d90a456598), personne ne paie pour traduire le texte dans son propre langue (44dd1f59f6), les émojis sont rendus sur le bureau tandis que les images sont traduites dans la langue choisie (198fb5c83b), et la traduction ne bloque jamais le chargement de la page (f2cbd3d1fc). Les correspondances mobiles Web pour le contenu public (mobile 719d8f2aa9).
## Les affiches sont devenues gratuites
- Les graphismes de la marque sont dessinés par un rendu déterministe SM Template 2.0 construit sur les actifs de la marque et resvg plutôt que de facturer les rendus de diffusion (1323a3a2ee). Il a acquis une disposition basée sur les colonnes pour que les titres s'adaptent et enveloppent le héros (6acc7152fd), les champs de spécification LLM contraints défensivement (7c04276493), les tentatives qui cessent de se cacher lorsqu'ils abandonnent (#326), les badges HUD épinglés à un encart sur les quatre côtés (#418), les héros debout à l'intérieur du frame again (#384, #383), et les fuites de titres ont été corrigées (a28deb77fd).
- Les budgets de pixels sûrs pour le processeur ont été ajustés par taille : 960px toiles avec des flous plus clairs pour le carré/portrait (723115f846), ellipses de dégradé remplaçant les ombres gaussiennes par des grains de paysage uniquement (11211a8f94), portrait standardisé à 864x1080 (0ad1e45b63).
- Poster Studio utilise désormais par défaut des modèles sur la marque au lieu de scènes de diffusion (6df26d792a), Les bannières DeHub sont devenues gratuites partout (#327, mobile #146 ont également cessé de se charger sur les téléphones), et la compétence de déshub-affichage a été déplacée sur le modèle SM 2.0 (#367).
- Chaque bannière de blog a été restituée dans le style v2 (#366), avec chaque carte OG par route (#365), et le rendu de bannière dans l'application lui-même a abouti au langage de conception v2 (#343).
Dix thèmes, chacun une peau complète
La plateforme propose désormais dix thèmes d'apparence : Light, Minimal, Cosmic, Hazy Nights, Swarms, Lava Lamp, Winter, War, Osaka et Jungle. Trois d'entre eux ont débarqué ce trimestre :
- War enveloppe l'interface dans un HUD tactique (5bd68b529a), lié à chaque surface qui lui manquait (6fda089b63).
- Osaka is rain-on-glass neon (89e2762c9b) : une plaque arrière qui réessaie avant de retomber (ed6fbcf0e9, daa21f5cc9), éclaboussures clairsemées et stries de lingette de séchage (0fd4062371), rail holographique CTAs remplacé par du verre liquide (b5da25ba85, b29f6746a2), couverture terminée par hover-at-rest états (56d49303f1), ainsi que des correctifs dédiés pour la boîte aux lettres multimédia (7762efbcac), les panneaux postaux (b15777f4eb), les anneaux de mise au point (35074942c1), les arrière-plans de page (e1ac44a278) et la géométrie pluie/bento (ad0d82f8a2).
- La jungle reconstruit le chrome en bois sculpté sous un sentier de canopée WebGL praticable (de391bdffe), reconstruit à l'ombre plate avec du vent local (1515a21a9b), profondeur réelle récupérée à partir d'un matériau qui l'a caché (fc02ccb029), une caméra qui a démarré à l'intérieur du terrain (87c5fe92f3) et une prise de vue plus dense en fourré à partir de la hauteur de la lame (5b83b3c37a), avec des éléments fixes qui ne sont plus reparentés et des planches qui ne s'empilent plus (0e882bee63).
Le reste d'entre eux est devenu plus profond ce trimestre :
- Les ensembles d'icônes 3D spécifiques au thème ont été expédiés (c2e4386be9), les icônes de titre de page thématiques ont été complétées (2b23087d10) et les états vides et introuvables portent des icônes thématiques (4bc6333b0b).
- Le sélecteur de réaction a reçu un style de verre approprié (0fecf6b7a1), les boutons de commutation sont lus correctement sur chaque thème (f38c941c40), la déconnexion restaure votre thème système par défaut (ee17ae074f), la lumière/minimale ne clignote plus les boîtes de barre latérale noires au démarrage (e71a8ddda9), les thèmes de toile ont cessé de peindre une colonne noire sur la couche de poteau (81e0a12808), et les arrière-plans animés sont plafonnés à 60 ips avec un mouvement réduit honoré pour lavalamp et l'animation ambiante en général (383474547d, 5ba9ae3fdb).
Ouverture de l'arcade
Une section Arcade dédiée a atterri sur dehub.io/arcade (e45393f6f0), promue dans la navigation aux côtés de Prompt (231631147e), avec une icône System Arcade monochrome (be2996a22b) et ses propres cartes à partager pour la section et chaque jeu (bb335f2aae).
- King's Gambit a développé un lobby en ligne avec des tableaux en direct (bd9a85e00b), des tables de correspondance arbitrées de bout en bout (4707f0c16c), des challengers affichés comme des personnes sans adresse (71d0de2dc8), un revendeur de fourche en amont (62b3f050c6) et un classement partagé avec Street Slayer (#362). Le bouton de mise a disparu (#338).
- Claude of Duty est arrivé en tant que version vendue servie de /war-game (a16f976dbb) avec son propre lanceur (8d74c1954e), une illustration HUD-glyph remplaçant les rendus 3D brillants (beee270bf8), une qualité choisie dans le GPU plutôt que dans le nombre de cœurs (44535cb344), une lecture de démarrage automatique fiable (190773b862, d4e4313590), cors donc il se charge en bac à sable (539ec85fa1), un commentaire compositeur reconstruit en tant que console HUD (c6cbc49df1), et un passe de réparation d'audit fonctionnel (1071aba896).
- Street Slayer a rejoint (e561157151) après que sa charge utile a été réduite et a reçu son propre écran de démarrage (68cff98f7f).
- Trenchstar lancé comme notre jeu d'arcade terminal de marché (#339) : les moniteurs de bureau sont de vrais contrôles (#374), n'importe quel graphique lit à tout moment (#358), une mauvaise lecture du marché ne peut pas noircir la pièce (#354), il démarre sur le chargeur DeHub avec un affichage vert (#342), Fat Chad roule comme un GLB de 2 MiB (#371, de retour sur la liste du seau (#352)), et le tout démarre en VR via WebXR sur un appareil photo sans le compositeur (#347).
- Jungle Trail sert avec cors pour qu'il se charge dans son cadre en bac à sable (629515e674), et les jeux de guerre et de jungle jouent tous les deux sur des écrans tactiles maintenant (6f0f65dff8). Les téléphones ont également obtenu l'arcade, en tant qu'écran natif portant Claude of Duty et Jungle Trail (mobile 348672dc78, mobile 802e275a8f).
- Plomberie d'arcade partagée : barres de progression de la botte pour la guerre et la jungle (055937d3d2), fermez les boutons dans le menu de paramètres de chaque jeu (b3658ca690), les plantages d'extension de portefeuille ne sont plus relayés comme défauts de botte (875201e033), la lutte GPU ne bloque plus les pièces (#351), le lien de sortie de l'hôte a été supprimé des joueurs (7c69f939ab), les liens copiés comptés comme des partages partout, y compris les jeux (#349, mobile #151), les illustrations de cartes uniformisées avec des conseils de contrôle, des slogans, des références croisées de thème et des lignes de crédit supprimées (80266b4810, 208c3be6b4, 337df5f51c, 88bfb3bd78), et la liste des jeux docs réécrite autour des cinq jeux qui existent réellement (#388).
Portefeuilles et connexion reconstruits
- Web3Auth a complètement disparu. Web and mobile now run a self-custody smart wallet (d74f99b73c) built on a crypto core ported byte-compatible to mobile (mobile #200), released only after device owner verification (mobile #201), with the mobile seed format pinned by test (364721189f).
- Phone login shipped, delivering OTPs through CloudTalk (#97) via custom OTP edge functions that bypass the native SMS hook (21f4037106), également acheminé sur le Web (84fc7d1c6f, mobile da90c78fc6), envoyé en un seul fragment GSM-7 afin que la livraison soit fiable (8d9e7664b9), la signature de comptes téléphoniques par courrier électronique synthétique (355f83096c) avec le préfixe plus correctement géré (648854f1fe), les mots de passe de connexion en une seule fois durcis (9443ef0591), les sessions de compte intelligent autorisées sans mot de passe (6e85ee0aa9) et le mobile a gagné le flux complet (97c70f7621) avec des échappements d'entrée et de verrouillage fixes (c78e1e41f3).
- Connectez-vous avec Apple expédié sur le Web (#96) et le mobile (96f56da8a4), avec une connexion sociale migrée de Web3Auth vers l'identité Supabase plus un portefeuille local sur le mobile (eaf106354c), les paires WalletConnect obsolètes ont cessé de le détourner (f2adace4ff), et wagmi obsolète ne se reconnecte plus aux invites de gaz de force (2c91c8b82e). Les liens magiques complètent maintenant le même appareil (3fe63cc0c8), et la page MFA hébergée reste hors connexion sociale sur mobile (33cbdb392d).
- Le portefeuille se déverrouille avec des données biométriques au lieu d'un mot de passe (77e6bd0c2d) : une fois par connexion plutôt que chaque chargement de page (4247a0cd7c), demandé environ une fois par connexion (1ba583e5ef), audité et corrigé deux fois (9f8795d450), inscrit par appareil plutôt que par compte (3e99acde54), accessible au lieu d'une impasse (4d9bed5698), avec une trappe d'évacuation de déconnexion dans le tiroir (d7db45ae38), des téléphones sans verrouillage d'écran jamais verrouillés (mobile 54693bd6ba) et des échecs de configuration sans gaz ont fait surface au lieu de publier silencieusement sans gaz (mobile a03a899487). Le compteur de mots de passe prédit maintenant le verdict avant que vous ne soumettiez (8a463c259c).
- La migration des anciens comptes est impossible à manquer : les utilisateurs qui reviennent sont automatiquement détectés lors de la configuration du portefeuille (4bb2098a3e), plusieurs anciens comptes sont prévisualisés avant la migration (462b387e54, b9713b7c2e), les anciens comptes sont confirmés par avatar et nom d'utilisateur plutôt que par adresses brutes (9c1157502c) avec confirmation d'adresse requise (e13e5ebbb2), l'option e-mail correctement étiqueté (7e7e17104d) et SMS le rejoignant (#419). Mobile reflète cela avec un flux de récupération (7a383716b7), un modal d'avertissement avec détection (57cc2e7ac9), une trappe d'évacuation pour les impasses irrécupérables (e5f222615d) et la gestion des comptes Web non appariés supprimée (92c0a76fe3).
- Les sessions actives et la gestion des appareils ont atterri dans les paramètres (80c1e2f726), ce qui permet aux utilisateurs de retourner complètement la feuille de mot de passe du portefeuille (#391), et une session Supabase échange pour un jeton DeHub sans aucune signature de portefeuille (backend #66).
- Le courrier électronique est devenu un moyen d'entrer et de revenir en arrière : les fonctions Edge envoient le code et résolvent l'identité derrière celui-ci (#445), les paramètres ont créé un flux de pièces jointes afin qu'un compte existant puisse ajouter une adresse et les comptes liés reprennent l'échange en premier (#447) avec la feuille de connexion maintenue pour l'ensemble du CV et le mot de passe du portefeuille rétrogradé à un dernier resort (#444). Le chemin de migration SMS envoie maintenant le numéro avec la connexion (#468).
- Un navigateur, plusieurs identités : la commutation multi-profil a atterri dans le → profil Settings (#446), l'ajout d'un profil a cessé d'être destructeur et la liste explicite uniquement (#453), un commutateur qui ne parvient pas à restaurer les restaurations (#448), une réponse d'actualisation ne peut plus croiser les identités et un commutateur suspendu se décoche (#467), et comment de nombreux profils que vous pouvez conserver sont tarifés en plaçant un badge (#469).
- Une inscription au portefeuille refusée indique pourquoi, au lieu de dire aux gens de réessayer (#476), les trois chemins d'accès au portefeuille disent la même chose (#486), et le client Web envoie un identifiant d'appareil stable afin que les sessions soient attribuables (#473).
- La stabilité de la session a été réduite tout au long du trimestre : les faux rapports de démontage et de récupération ont été arrêtés (89294d7bf3), la suppression des identités obsolètes centralisée (b0c4f5f667), de fausses déconnexions et de déconnexion à la publication fixées avec force à partir de chaque chemin de rejet (d27b80d09d, 3198444d40), une invite de signature qui n'est jamais apparue ne bloque plus la connexion jusqu'à l'actualisation (ecf076e39a), les signatures échouées ont cessé de blâmer l'utilisateur (fe4bd611ab), une balise de source de connexion perdue ne bloque plus les gens de la publication (9e668def25), une balise de connexion périmée n'avale plus le signature du portefeuille (#415), une signature annulée met fin à la tentative et touche le portefeuille sur lequel vous avez appuyé (#423), la feuille de connexion s'ouvre au clic et non après le chargement de son contenu (#417) et cesse de clignoter les options de connexion avant le déverrouillage du portefeuille (#381). La copie d'inscription indique ce que l'étape du portefeuille protège (182ccf1d70) et la connexion ne demande plus le portefeuille en chemin (96cc9d074e).
La publication s'est allégée
- La frappe est devenue facultative, avec une bascule de publication Mint sur les deux plates-formes (016380ebac, mobile 04eada0530), activée côté serveur par le PR de publication sans frappe (backend #95). Les messages hors chaîne apparaissent partout avec des informations NFT d'espace réservé expliquant pourquoi il n'y a rien à frapper encore (c8ae4feb1d, mobile 22a0606d52), portent leurs propres slugs/newpost sur le Web, le backend et le mobile (a8d42756eb, backend #100, mobile 9e12a8dcae), remplissent au démarrage tout ce qui a déjà été publié (backend #102), publient sur tous les chemins de lecture (backend #98), y compris hors chaîne délibéré posts through status=minted (backend #97), et comptez dans les statistiques du tableau de bord avec les réactions apparues sur l'administrateur points de terminaison (backend #103, backend #101).
- Les réactions sont devenues neuf fois plus profondes en tenant le pouce levé (dd4499bec4, mobile d787ddc661), servi par des points de terminaison de réaction dédiés à la demande et au poste (backend #69) : les totaux par réaction dans le plateau (5dc78b32c9), votre choix marqué d'une lueur dans la couleur que vous avez choisie (0ff800f6f5, 0510efc703), en appuyant sur lance exactement la réaction que le pouce montre (4000d5d0fb, mobile 0863ec0dd8), et le roll-call vit dans le plateau auteur uniquement (8a8cfa1775, backend #71) avec les commentaires likers auteur uniquement et les auto-likes refusés (backend #96).
- Les commentaires ont gagné des pourboires sur chaque commentaire et réponse (#104, mobile 2ab363b6bb), un tiroir qui a aimé derrière vos propres boutons de commentaires (a242b03f89, mobile 0bd3da514c), l'imbrication sans limite, y compris les threads au-delà des 20 premières racines (be31e9fee3, e07a509ed2) et les contrôles de commentaires par publication (e467fbab96, backend #68).
- La publication est passée d'une gratuité totale non mesurée à une allocation journalière en quatre étapes : un plafond par jour en jalonnant le niveau de badge (#421, backend #116), puis un message par auteur sur le flux d'accueil avec une publication illimitée (#457), puis les N premiers messages de chaque auteur du jour par niveau (#461), et enfin l'allocation elle-même — dix messages texte et un gigaoctet gratuit chaque jour, à l'échelle de votre badge, avec DHB facturé au prorata uniquement sur ce qui dépasse (#484). Il est documenté sur la page dApp (#490), y compris ce que signifient le dollar et un badge prêté (#492).
- Le contenu mature a obtenu un accueil qui n'est pas le flux d'accueil : les créateurs marquent une publication mature lors de sa composition, et les téléspectateurs choisissent s'ils la voient (#477, backend #130, mobile #180). Les publications marquées restent inaccessibles au public tout en restant visibles par les abonnés et sur le profil du créateur.
- La moitié négative des réactions était terminée : un bouton de dégoût sur les commentaires câblés à des comptes confirmés par le serveur (#452), des comptes de dégoût parcourus par du texte, des images et des cartes courtes (#459), des réactions négatives ignorées dans le tiroir qui a réagi (#458), des comptes de plateaux qui s'ajoutent toujours au compte de j'aime du message (#466) et un rapprochement qui ne plante plus sur une fraction ou n'alloue plus à chaque appel (#482). Une réaction déplace maintenant le comptage par le poids du badge du réacteur plutôt que par un (#493).
- Un auteur qui répond à lui-même devient un fil numéroté de style X à /posts/:id/b (#464), les commentaires portent BadgedName de sorte qu'un badge n'encombre jamais le nom (#460), et l'en-tête des commentaires a un bouton de fermeture (#449).
- La mise en sourdine d'un auteur fonctionne à partir de n'importe quel article, avec un X dans l'en-tête de la carte et le câblage du bloc derrière (#451), déplacé à l'extrême droite des icônes de l'en-tête (#454).
- Synchronisation des brouillons sur le compte plutôt que sur l'appareil, à l'épreuve des pannes contre l'arrêt forcé afin que rien ne soit perdu (mobile 69d9b17516, 013b9fee52).
- Les pièces jointes de fichiers ont été déplacées des publications vers les DM auxquels elles appartiennent (f8480e096f, backend #89 avec son type de publication de fichier d'alimentation (7fb2cd3e4f), mobile 25beb2602e), les liens dans les messages directs sont devenus cliquables (42f3342f6a, tapable sur mobile (f0e0ef6347)), les réponses DM sont rédigées directement à partir du compositeur (55ea0f34f2, mobile 73f540f7e4) et le plateau de réponses se lève sur la mise au point plutôt que sur un bouton (8d10478348, monté correctement sur mobile (c22925acec)).
- Les messages directs ont obtenu un rail de réponse : une bande de repos sous le compositeur sur mobile (#426) affichée sur n'importe quelle fenêtre étroite, y compris l'état vide (#430), des réponses intelligentes rédigées dans les deux sens avec la bande survivant à une défaillance (#434), des réponses conservées à l'intérieur de la fenêtre de discussion (#443), la bande morte sous le compositeur tué et l'orbe assis dans une encoche bordée (#465), puis l'ensemble du rail reconstruit en un seul composant sur le téléphone, la tablette et le bureau (#478) avec les deux suggestions empilées et l'orbe centré sur le rail (#441, #483, #488, #491).
- Les publications planifiées ignorent la menthe au lieu de frapper tôt (mobile c0df104dee), la planification a gagné des frais réels en mathématiques, un PPV payable et un type audio canonique (df6d8a4a25), et la publication est idempotente, de sorte qu'un téléchargement réessayé ne peut jamais double-poster nulle part (9eae08148d, backend #105, mobile #137).
- L'actif affiche les adresses des contrats et les tickers, avec un sélecteur d'actifs dans le compositeur lui-même (#118, mobile 5c0dae352e).
- Le comptage des vues est devenu un nombre honnête : les visiteurs déconnectés sont comptés (13d42376dd, backend #78), transférés dédupliqués vers l'API DeHub (4206563c81) avec l'en-tête spoofable remplacé par cf-connecting-ip (c655ea14a7), et une seule définition d'un nombre de vues est maintenant rétablie sur le Web, l'API et le mobile (backend #87, mobile c131374714).
- Le flux vous indique quand la chronologie s'est déplacée (a10c9928aa, mobile 8b77cc18f4) ; suivez les suggestions renvoyées avec un carrousel de nouveaux membres (#402) ; les nouveaux membres sont devenus une liste infinie, chronologique et complète (#405) ; et les nouveaux membres sont identifiés sur toutes les plateformes, rouvrant l'enquête de feedback (#395, mobile #159, troisième tour d'enquête pour les témoignages (#403)).
- Edit Post est de retour, avec des menus à trois points sur chaque carte et la page d'informations (11fa06ff10), les modifications d'image sont intégrées au téléchargement afin qu'elles cessent de disparaître (81ce3a20c2), les noms d'itinéraire ne peuvent plus être revendiqués en tant que noms d'utilisateur (bcec2258a9, mobile 0b0cbb9d2e).
- Le partage a été unifié : tout ce qui peut être partagé utilise la même feuille de partage (82ecb47872), chaque lien DeHub est rendu comme une carte sur toutes les surfaces, y compris les mobiles (cbc1920d45, mobile 90e1cfde15), les magasins, les articles de la boutique et les événements se déroulent pour les robots d'exploration (87507ef1aa), et les shorts effacent leur propre chrome sur les deux plates-formes (7ad232db07). Le compositeur mobile correspond au Web : un bouton de pièce jointe pour les photos et les vidéos (da4e9e71ac), le corps en tant que description de 500 caractères avec le titre comme bascule (bde34b72ad), la menthe pliée dans la liste d'options (5ecd4738b3) et la publication sans étape de confirmation (f917f7d537).
- Les notifications sont devenues gérables sur les deux plates-formes : un véritable commutateur de notification de navigateur dans les paramètres (1448b3024f), un toast de tâches logicielles qui vous demande une fois que vous êtes connecté (2b93a9f743) monté à l'intérieur du fournisseur d'authentification (eff3ed5a3d), des heures silencieuses qui réduisent tout au silence (a1f296574e), des alertes de compte (0875d48db5) et des messages directs (mobile 8dfa5ba60b), des préférences lues et écrites dans la forme exacte que l'API utilise (dd0a161af4) avec un filtre de type côté serveur (backend #80) et des boutons clairs et marqués par ligne sur mobile (mobile 782a5ea461).
L'économie fonctionne de bout en bout
- DHB vend à un prix fixe de 0,001 $ au lieu d'un cours de marché (backend #77), la page d'achat affiche la remise sur le badge de jalonnement et vend à nouveau sur BNB (#424, backend #117), et les paiements arrivent de n'importe quelle chaîne via des intentions PROCHES (backend #82).
- Solana PPV est devenu payable sur le Web (037fc999fa) avec de l'essence et un loyer parrainé par le portefeuille backend et des abus plafonnés (backend #104) ; mobile préfère un RPC Alchemy authentifié avec de meilleurs diagnostics de diffusion (mobile ded39270c1), et son portefeuille Solana est récupérable et visible avec une dérivation de semences répartie pour les tests (mobile 631000afb3, d7bc8220f6).
- Robinhood Chain a rejoint la liste du réseau partout (d245a73a81, backend #92 avec la pile de flux v3, mobile 4d9758c264).
- Implanter des badges compte jour après jour maintenant : ils débloquent les jetons du moment plutôt que d'attendre un webhook (#398, soldes périmés réparés sans attendre (backend #112)), ils affichent à côté de chaque nom affiché (78087844b5), votre niveau plafonne le montant que vous pouvez publier dans le flux principal par jour (#421, backend #116) et les remises que vous payez (backend #117).
- L'échelle de badge a cessé d'être un comptage de jetons et est devenue un coût en dollars : treize niveaux tarifés en dollars au prix DHB en direct, avec l'exigence plafonnée donc un prélèvement n'élève jamais la barre, et un niveau gagné est verrouillé à l'exigence la moins chère à laquelle il a été atteint, de sorte que les détenteurs conservent ce qu'ils ont gagné (#481, backend #136, mobile #185).
- Les badges sont devenus prêtables. Chaque échelon grimpé accorde un créneau de délégation, et un créneau donne un autre compte au propre niveau du concédant (backend #135, #137) — les équipages se forment par délégation plutôt que par une table d'adhésion, et les alts cessent d'être sans badge. Le panneau et la ligne des contributeurs ont été envoyés sur le Web (#487), et un badge délégué nomme son contributeur au survol (#489). Les droits lisent toujours la mise que vous détenez vous-même, donc un niveau prêté est un statut et non une réduction.
- Les points de terminaison payants ouverts ont des arrêts de dépenses (#450).
- Les créateurs voient comment les revenus de DeHub se comparent aux autres plates-formes du centre de commande (#103, mobile e1d19acd21), en attendant les revenus des magasins tirés des ventes de cartes dans le salon portefeuille mobile (mobile 0a6e4fc1d0), la caisse du marché est cotée et vérifiée côté serveur avant de charger (c4d96b86e7), la page des affiliés répertorie qui sont réellement vos affiliés avec un compteur renforcé (2ed525e17c) et le classement classe les référents (a00f0d5509).
- Le concours de la Coupe du monde s'est déroulé de bout en bout : les gagnants ont été sélectionnés dans une fenêtre contextuelle avec DHB crédité directement dans le portefeuille (f711cd95ef).
- Les défauts de PPV sont devenus un étape de rechargement qui reprend lorsque les fonds atterrissent au lieu d'une impasse (#380, #385, mobile #154, #155).
- L'engagement en direct est devenu réel : conseils de travail, j'aime, journal d'activité et un état de flux final honnête (c7ff6a1f3c), produits achetables sur les flux en direct payés via Stripe sur le Web et le mobile (b2d916f8b7, mobile 9d7c4a2135).
- Le jumelage aléatoire est arrivé comme une passerelle avec le jumelage et la signalisation WebRTC (backend #94), un client avec une page de test de connexion (c671f46122), des serveurs ICE livrés à partir d'événements de match (f35fe89d47), des files d'attente nettoyées en congé (2deda4f7cb).
- Une page de destination DePin expédiée (ef5c0e1b04), le backend a développé des points de terminaison d'administration gardés pour les changements de rôle et supprime avec des filtres de liste fixes (backend #91), un point de terminaison gardé résolvant la propre adresse d'un jeton (backend #81), l'origine Godmode autorisée (backend n° 90), les invitations admin envoyées via une fonction send-admin-invite sur la file d'attente partagée (d942854ae7, backend #93) et les analyses ont généré une croissance du nombre de nouveaux utilisateurs sur users_count ainsi que des statistiques d'abonnés sur my-analytics (backend #67).
Les communautés, la télévision et le bâtisseur
- Les communautés ont obtenu un véritable système d'administration avec des droits attribuables qui font réellement quelque chose (#102, #350), une migration réexécutable (543fd18439) avec détection de dérive de sorte qu'une migration non appliquée cesse d'être silencieuse (e5e91a4e3b), des limites de téléchargement restaurées (a049d2651b) et la politique d'INSERTION du client conservée jusqu'à ce que les ports mobiles soient désactivés (411caf9aac).
- Le chat communautaire notifie @mentions et gagne @ici (6f86e89c67) plus une bouton Jump-to-latest (7f236adb02) ; chaque chaîne de télévision transporte le chat en direct pendant qu'elle joue (#100) ; et les demandes de fonctionnalités et les rapports de bogues prennent plusieurs pièces jointes (38b715fa6d).
- La modération a développé une surface de contrôle : les administrateurs détiennent les pouvoirs de modération du chat et le panneau d'administration a gagné une page de chat (#462), ainsi qu'une page de modération répertoriant chaque rapport avec son résultat et son réviseur (#455).
- Le constructeur a transformé les invites en travail mini-applications comme sa propre surface pleine page (b28901e78e, b2c6d9519d) : prévisualise l'hôte à partir du stockage afin qu'il rende réellement (caeaebfb94, corrige les types de contenu des téléchargements tapés (b36ef80662)), rende à l'intérieur d'un cadre en bac à sable avec des itinéraires de partage publics (d449666dc1), limite le taux par IP sur le chemin de construction coûteux (eddbafcc63). Il a été déplacé sur dehub.io/builder avec le nom réservé (#355, mobile #153), les visiteurs déconnectés obtiennent son titre et non celui de la page d'accueil (#356) et le mobile reflète la réservation (mobile a85fb00818).
Mobile rattrapé et expédié
Mobile Cut v1.15.0 (mobile #166) à la fin du trimestre :
- La poussée de parité a amené les primes, les magasins, les demandes de fonctionnalités et les affiliés sur les écrans natifs (mobile ad8e756798), puis sur les écrans natifs Ads, TV et Prompt (mobile 8e9047fbde), sur les 100 principaux actifs (mobile f4fcc68547), sur le centre de commande (mobile d913abc9b6), sur un onglet audio servant le flux musical du Web (mobile #163), sur une page de demandes de fonctionnalités reconstruite pour correspondre au tableau Web (mobile #164), sur les communautés à parité avec le Web (mobile 93288a02aa), le chat en direct TV (mobile 712f937b64) et une suite de gestion de communauté native (mobile 27dd11b916).
- Paramètres reconstruits autour du système d'onglets Web (mobile ba9b6a1669) ; L'économiseur de données fonctionne réellement (mobile 789386abcc) ; toute l'interface utilisateur est passée à l'expérience Web monochrome (mobile c6c9d7c751) avec unification de palette à travers les anneaux d'histoire, les flux d'image et les états vides (mobile afcf1c6e80, 6c90574305, contraste levé (0dceafc107), avant-plans sombres sur les boutons d'accentuation (0c53313d04), tirettes de rafraîchissement visibles (a302dc9cc0)).
- Connexion sur les téléphones réglés sur un ensemble de commandes, avec la marque DeHub (mobile 769a19e75e, mobile ee307ff618), le sélecteur de portefeuille n'étant plus enterré sous la feuille (mobile 670040a327) et la porte de connexion Web correspondant à la police de caractères Exo réellement appliquée (mobile 301e0e25e3).
- La localisation a été effectuée pour les nouveaux flux (mobile f5277a064f, les étiquettes de navigation (4c2cf95809, 6dd79d3200)), couverts par des tests de traduction de navigation (b2d6135974), et la traduction utilise la langue de votre choix avec l'avatar du commentateur affiché (2b1a7d0ed2). Contrôle toutes les touches de session devenues utilisables par le lecteur d'écran (21e6734d0a).
- Les étapes fonctionnent correctement sur les téléphones : planification et annonce (ca97c9366c), rappels avec alertes de démarrage (mobile #145), affichage à écran partagé (mobile #148), la table d'harmonie (620a4658d8), identification de l'appelant sur chaque jeton d'écriture et de haut-parleur (mobile #144), rôle d'hôte conservé lors de la réintégration avec des liens persistants muets et d'invitation à l'ouverture (e2c3e10bc3), bannière en relief épinglée et avatars de haut-parleur fixes (mobile #152), et rafraîchissement de jeton floconneux ne signale plus les gens hors des étapes (mobile #161).
- Préparation du magasin : les versions Android ont cessé de signer avec la clé de débogage publique (mobile #158) et pointent sur la vraie clé DeHub (mobile #160) ; assetlinks.json publie avec l'empreinte digitale Play App Signing (#401, les fichiers d'association ont servi de fichiers réels y compris les corps d'Apple (#393, #399, validés (#396)) ; les liens que nous distribuons sont revendiqués et les hôtes invérifiables sont abandonnés (mobile #157) ; EAS a développé un profil test-apk produisant des artefacts installables (mobile #149) ; la page de téléchargement APK date ses builds (4821652aa8, d359811a27) ; push déplacé sur le projet dehub-ca4d8 Firebase (6cb41b6c70) et EAS sur le compte dehubapp (e8e79b8b8).
- Poids mort sorti : 73 actifs groupés non référencés (52639d9d24), quatre animations Rive rien ne charge (95d374ae47), icônes redimensionnées à moins de 4x de la taille du rendu (e8aadba4e0), bannières par défaut codées en JPEG (7e429b0616) et sous-tree de lecteur vidéo mort supprimé (836f77010e).
- Audio déplacé expo-av sur useSyncedAudio/SoundPickerSheet (836c52989b), StageTranscriptSheet/VoiceNotePlayer (0e3cd884a5) et SoundtrackBadge/StagesBrowseModal (1c04305cfe).
- Les notifications demandent derrière une demande préalable de marque (mobile #150), les badges Android restent synchronisés (b9db8777e3), en appuyant sur un bouton d'annonce ouvre son lien (mobile #136), et chaque type de notification est par défaut sur (d130dbebd5).
Système de conception et navigation
- Le DeHubLoader de marque a été déployé sur toutes les surfaces de l'application (9e40ca6dde), fusionné (cfe42e2af5)), le schéma de couleurs est déclaré au démarrage avec la marque affichée pour chaque page en attente (1f8331d1d6) et les onglets ouverts sont signalés lorsqu'une nouvelle version a été expédiée via un toast dans le propre chrome de l'application — en bas à droite sur le bureau, traduite et mise en miroir pour RTL (595ba5b281, b5248da59e, 0a3c67ce70, a908b77db9).
- L'installation de PWA offre à nouveau du travail. avec les tailles d'icônes dont les navigateurs ont besoin (#332), les actifs de marque servent de véritables fichiers statiques au lieu de pointeurs (07d2a6faad), et /creator mène avec la bannière de mot-symbole DEHUB ORIGINALS (773e2b1b12).
- Recherche de menu atterri dans le panneau de gauche (b42df422e8) en trouvant des pages par ce que les gens les appellent (a34d9edab8), en miroir comme une recherche de menu du bas avec le rail réorganisé (#377) et caché une fois le miroir affiché (#386) ; le tiroir l'a également gagné sur mobile (8a19834642). Ordre de navigation modifié : accueil d'abord avec les paramètres au-dessus du classement partout (bd78e89440, mobile f9cae50dea), classement et étapes échangés (4b1cd3dfbd), Shorts à côté du domicile (746a8499b1).
- Chaque info-bulle partage un style d'étiquette de survol (#408), les onglets du panneau latéral s'étiquettent eux-mêmes au survol (#407), la pilule d'en-tête du tableau des fonctionnalités se cache sur le défilement, y compris le bureau (#409), l'audit des fonctionnalités a réparé le tableau des demandes et expédié deux fonctionnalités demandées (cf21dd2d9d) avec des fenêtres contextuelles expédiées ne montrant plus chaque connexion (6ab9d892e0), le travail a été renommé Bounties (9267087e05) et les affiches de primes peuvent modifier leurs propres annonces (#105).
- Le panneau d'accueil signé a été reconstruit en tant que panneau d'histoire SM Template 2.0 de marque (ebc834e59c, mis en correspondance avec les tableaux de référence (649c50336e)) : dimensionné à sa propre colonne avec le héros affiché sur les téléphones (#394), héros conservé à l'intérieur du panneau (#400), cadre décoratif dégagé du globe (#406), HUD chromé arrondi sans flou de mouvement (3da71a9460) — de sorte que "/" peut contenir le terme de marque (b5280ab3a5).
- Les surfaces des messages dessinent sous forme de cadres plutôt que de dalles (c9fb5523ec) courant bord à bord (e639e39bd1) ; le TEST et les NOUVEAUX badges se sont détachés nav, UI et boutons (bd27dee0c3) ; la marque de la plate-forme a été mise au carré, les annonces sont liées quelque part et portent la marque (1494fd96ee, 20074c2e00) centrée sur les en-têtes mobiles (cc16574b59, mobile 936681ad3d).
- Les cartes de compétences unifiées dans les deux fenêtres contextuelles avec l'utilisation ont été déplacées vers une barre inférieure pleine largeur (cd6759a59b, 482a469d97), un contrôle de filtre segmenté pleine largeur avec compte en direct (607514739a) et Build quelque chose s'est déplacé dans la rangée d'action rapide de l'assistant (9027097cce).
- Les statistiques ont gagné des plages 3d/7d/all-time à côté de 24h/30d (cf3aa6b8f5), publient les numéros des visiteurs en direct avec leur provenance (e938d7f17f) et les chaînes anglaises appropriées (baf6b2df46, b3d73b29d2) ; /top-100 a sa propre icône (8b6251df92) ; les boutons bento et post/login du rail de bureau partagent une largeur mettant fin au menu de déconnexion (cf2086925e, 30e7ba8546).
- L'en-tête Features se réduit à une barre de recherche au défilement vers le bas, reconstruite comme un défilement naturel à travers les lignes de la grille CSS pour tuer la gigue (225430613e, b9767207dd, 0fab9c0282, 7eb8200726).
- Feed chrome : les messages vidéo s'enroulent dans un bento style feed sur les cartes et les pages dédiées (c05c3ccf02, 4f4677c458), en touchant une vidéo révèle les commandes au lieu d'ouvrir le message (b4d0407eff) et l'ouverture d'une publication à partir d'un flux vidéo entraîne le lecteur (03c87750ac), le compositeur avale la page en défilant en dessous tout en restant garé avec des rails au-dessus (20eb68149f, 4cfd5c7c65), et la grille des images s'échange instantanément, fait défiler l'élément droit avec un emplacement publicitaire, sort via la pilule nav et montre des collages dans un tiroir avec des carrousels réparés et +N marqueurs sur mobile (b5971ad168, ce9e82c2df, a7df93db60, 3517b6167c, 034bd0ac21, f320b98d31). La pilule de navigation de Mobile contient toutes les destinations avec des cartes de scène reconstruites (38cc7966ac), sa visionneuse de courts métrages correspond au cadre du lecteur Web pour le cadre avec un ensemble de commandes (f7a80b72b5, 5bce43fb32, 2be39981d6), le flux de réglage de l'invite à l'alimentation a été porté (8cf793b5ce) et l'assistant s'est aligné sur Web (1e3dea40f9).
SEO, docs et le blog
- Un déploiement de mise en scène vit sur staging.dehub.io (#98). Les itinéraires marketing ont arrêté le 404ing pour les robots d'exploration avec une parité d'URL bot/humain et une passe de méta-vérité (#101) ; les aperçus d'itinéraire sont rendus statiquement à la périphérie avec des images de partage de travail (fcf5c56560), chaque itinéraire SEO porte sa propre carte de partage (9301a1a233) et les cartes décrivant la mauvaise page ont été corrigées (2727a4bc99).
- Le déplacement de domaine dehub.net terminé chez le travailleur : domain-move 301s servis par le travailleur (fae6baf994), www 301s avec la mise en cache des actifs immuables restaurée (6d4f651a03), les artefacts Edge hérités retirés (404fb654fa), les chemins hérités /web/app/* et /learn mappés sur des pages réelles (07889b650d), /radio et /mcp 301ing comme le fait déjà l'application (4493146590), les URL de jalons orphelins redirigées (6c7167cb23), les URL légales 301 vers leur domicile réel /docs (8eb6ca03c5), les sous-domaines arrêtés soft-404ing (#373) et les mappages d'espace URL dehub.net morts sur des pages réelles (#376).
- Le shell de l'application ne dépasse plus/docs comme un duplicata de page d'accueil (1e6f25ac60), les récupérateurs non rendus obtiennent du contenu réel avec http mis à niveau vers https (2aa15fc3bd), titres par route, repli à l'état vide, défilement de la barre latérale et étiquettes a11y atterrisées ensemble (a55cd69868), et un audit SEO d'août avec des cibles de mots-clés a été rédigé (7cb5a69c23).
- Les documents ont été relookés en verre liquide monochrome avec le guide dApp consolidé (82211f6b03), couverture étendue sur les fonctionnalités expédiées avec sous-nav d'ancrage (a79327dfa8), captures d'écran d'application réelles tout au long (a44faa1e67, captures d'écran périmées remplacées (4fd42f0ce8))), Bounty Hunting corrigé contre l'application en direct (068de333bf), sections pliées se lisant comme des sections (9a80ffcddd), sur cette page scroll-spy (3bdc2bfec6), une page Aperçu de la devise comme l'atterrissage du jeton (aa03f3de26) avec le jeton renommé Devise dans la navigation et l'icône Discord fixée (80848d42ce), et la section Architecture actualisée pour l'infra actuel (8481d088e0).
- Recherche de blog unifiée dans la recherche d'en-tête docs (a982c017c1) ; chaque article de jalon a son propre article complet (d5529f6126), les plus minces ont été étendues (060e1fb57c) et art de section dans le corps ajouté à 17 publications (5fa1f571e2) ; la bannière recadre l'ancrage inférieur afin que la bande de pilule du logo coupe proprement (836cfba769) ; ## les titres sont rendus au lieu d'être jetés (b86d8f95bf). Une page de presse Featured In livrée avec son propre article (91b7a41fe5) et un guide de tarification creator-vs-Higgsfield avec des images de blog (4fe0c5a122).
SOUS LE CAPOT
- Huit tours de vitesse à l'échelle de l'application ont atterri (820052d674, 4e53ae0fb1, f254de7f00, 72cec7c525, 22f6b9c734, d117d46e92, réparation de la mémoire et de l'écouteur (9a09e1284a), parallélisme du démarrage avec les capuchons de cache (168d40d8a6) : HLS natif préféré sur iOS/Safari pour arrêter la surchauffe de la télévision (ce7124afdf), la radio suspend son AudioContext au repos (25e5aac5c3)), coupe du temps de latence du montage musical (47d14c76, déployer les sondages sont réduits à trois minutes (91c34dc0b4), le prochain court préchargé pour que la lecture par balayage commence instantanément (a53a2a5b45), les messages s'ouvrent instantanément à leur sommet sans que les auditeurs accumulateurs de flux (1bd435bcaa), les commutateurs de filtre affichent un préchargeur sur les deux plates-formes (8aa6b051eb, mobile 612e8e4694).
- Le chemin de démarrage a obtenu un budget JS rapporté sur chaque construction (491315e295) cliqueté pour qu'il ne puisse pas remonter (#412) ; le la ligne stories et la feuille Stages sont sorties du chemin d'accès au démarrage (#411, #410) ; RainbowKit a été étendu au flux de connexion au lieu de l'arborescence de l'application entière (c170938b01) avec la prélecture arrêtée (#413) et le bloc modal correspondant au nom de fichier (#414) ; three.js, l'art surdimensionné et la police emoji ont quitté le chemin de chargement (8baa88572a) ; les images CDN servent via des transformations Cloudflare dimensionnées à la boîte dans laquelle elles sont rendues (6911d543ce, c78c2a9448), y compris des affiches vidéo et des vignettes en direct (23ca9b37fe). Le mobile a exécuté ses propres passes : écrans paresseux avec des flux de profil/communauté mis en cache (22e740f454), changement d'onglet de téléavertisseur réel (8ba4426431), lignes fenêtrées n'attachant plus chacune un lecteur (0cbc1cf928), désabonnement des médias arrêté au milieu du défilement (a884a9ad57, 82288c9530), décodage d'image et temps de test coupé (0bbedb3efb), images récupérées à la taille du rendu (2f878ec127, galeries de la taille d'un CDN (1d4a4a8ca8)), première connexion accélérée avec l'étape de profil restaurée (72a7c928e5), une radio abandonnée ne détruit plus l'application (fddc03cf47).
- Sécurité : les fonctions payantes de bord portent des limites de débit par IP et un garde SSRF (206d9827c4), la redirection ouverte de confirmation d'authentification fermée (7b498ebcaf), mises à jour de sécurité Dependabot groupées configurées (a7b861b2e2) ; mobile bumped socket.io-parser pour CVE-2026-69185, undici, brace-expansion et fast-uri plus postcss (168cdc16e6, cc3ccd8315, 996efd375d, 68544fee28, 9cae3295f8).
- Plomberie : un travailleur Cloudflare a atteint la parité avec la fonction SSR précédente derrière wrangler (acbc6f9b79, a1ff2f7e4a, 02b34f7bee, 65975e256c, nom correspondant (f1722f9432)) ; typecheck CI ajouté sur les demandes de tirage (894ea57a2e) avec les types Supabase générés restaurés de sorte que les contrôles typographiques principaux (1e78739c5c) ; lockfile churn apprivoisé — stale bun.lock échouant toutes les versions abandonnées (0ec6b5f671), hash-wasm synchronisé (5f52398b2b), pnpm hissé de sorte que l'hôte résout les DEPS fantômes (c3ddcd9afc), s'installe dégelé jusqu'à ce que les verrous se régénèrent (21cf98118b) ; le correctif à l'écran blanc codé en dur peut être repoussé (9fef5ad076) ; les déploiements stale arrêtés navigation en panne (43b45e24fe) ; les surfaces peintes ont été traquées — la feuille de chrome est cachée pour chaque type de feuille (07a95bc287), les goûts obsolètes après l'actualisation silencieuse de la session sont corrigés (883245d0fc), les filets de dalles repeignent la superposition de poteaux effacés (54b9c9270f, les revêtements de fond héritent de l'arrière-plan principal (204c4cf878), les colonnes du milieu sont effacées (e02afce298)) et les arrière-plans ne peignent plus jamais sur les arrière-plans des panneaux (067d367834) avec des fondus de bord de défilement masqués plutôt que peints partout (dcf056285f, 73418382b4, mobile 97d19e41bf, avalez le rayon relu sur le changement de thème (4c6a53d721)).
- Backend ops : tests exécutés sur les demandes de tirage avec déploiements tirant uniquement sur la fusion (backend #76), la goutte s'installe avec pnpm comme CI (backend #85), déploie des tirs d'authentification avec le jeton propre au run (backend #84) ciblant l'adresse d'origine n'est pas le nom d'hôte mandaté (backend #83), les points de terminaison RPC inaccessibles ont cessé de remplir le disque (backend #113) et le mobile a obtenu une base de CI verte de jest-junit et typecheck (mobile c03cf2e406) avec une couverture de test reconstruite entre les validateurs, les téléchargements, les mentions et les brouillons (443f9c2f60, baa2d54cd1, 8af4b03556, 195ff6c10c, 5d3d71f597).
Prochaines étapes
Le trimestre n'est pas terminé, et la liste non plus. Le quatrième trimestre se poursuit exactement là où cela se termine : plus de scènes, plus d'arcades, une économie plus profonde — expédiée à l'air libre, comme toujours.
Ouvrir DeHub