Q3 Ontwikkelingsoverzicht
Door DeHub Team — 2026-08-22
Een kwart van de verzendkosten
Sinds begin juli hebben we meer dan 900 wijzigingen samengevoegd in drie repositories: dehubweb (642 commits), dehub-stream-backend (52) en dehub-mobile (221). De webrepository werd op 17 juli openbaar onder een MIT-licentie (3d84d06714), dus elke lijn wordt in de open lucht verzonden. Deze samenvatting behandelt elk afzonderlijk werkstuk — niet alleen de hoogtepunten — en draagt de meest relevante toezegging, zodat je mee kunt lezen.
Fases werden het product
Stages begon het kwartaal als een live audioruimte. Het eindigt als een broadcast-stack:
- Hosts plannen stages en maken er aankondigingen van (ff1343f1dc, mobile ca97c9366c), op een basis die herinneringen, gastenluisteren, korte uitnodigingslinks en per-stage deelkaarten toevoegt (b60fef88ec).
- Iedereen die een herinnering heeft ingesteld, wordt direct gewaarschuwd wanneer een stage live gaat (fc8b163ccf) — en opnieuw wanneer het binnenkort begint (6dc9f62b07).
- De aankondigingskaart toont wie wacht (6aaae602af) en de herinneringsgezichten zitten direct op de dieplinkpagina (04b36e5984).
- Stagepagina’s nemen de volle breedte in beslag met een advertentieslot en de nieuwste berichten eronder (916a60f6a8, c92423d069), brengen je naar een tabblad dat iets bevat (f410e2f5c2), en geven aan in welke tijdzone een geplande tijd valt (a24d758d85).
- Covers krijgen overal dezelfde behandeling, 16:9 en nooit gekapt (92a267b044), worden geheel getoond in plaats van gekapt (0ae5c506ca) en zijn gesized voor deelkaarten op live kamers ook (d900b9c8c7).
- Stagekaarten dragen het hostavatar en verwijzen terug naar hun profiel, achter een glasherinneringsknop (03020ff72f).
- Live gaan vereist geen OBS meer: hosts zenden rechtstreeks vanaf de browsercamera (1e140f5295) en delen hun scherm middenin de kamer (53268ed328), gesized voor welk apparaat het ook is.
- Het publiek reageert in de stagechat (#359), leest live ondertitels (#364) vertaald in de talen die de kamer leest (#369), en kan de hele stage horen gedubd in de stem van de host — betaald per minuut in DHB (#372), draait op een tabblad zodat het overleeft als je de kamer verlaat (#375), wordt gefactureerd aan de portemonnee in plaats van een creditbalans (#378), en blijft buiten het entry-pakket zodat het verbinden licht blijft (#389).
- Hosts zetten een radiostation op de lucht (#379) of spelen hun eigen muziekclips tussen gesprekken (#382).
- Vroege aankomsten worden gezet in de live menigte voordat de kamer open gaat (6ae8b746e0), en de gesloten-zaalstaat werd heropgebouwd rond een Hosting-tabblad (#346).
- Elke stage wordt opgenomen. De upload verschijnt als een hoektoast met de preloader (#331); opnames spelen af van hetzelfde hoekspeler overal (#360), inclusief direct vanaf de kaart waarop ze verschijnen (#368); ze zoeken goed op Android (#422) en matchen web-afspeelbaarheid op mobiel (mobile #162), geencodeerd als echte AAC in plaats van een nep MP4 (mobile #165). Een geparkeerde pagina kan de opname niet meer verliezen (#329), alleen de host kan er een verwijderen (#325), en de upload wordt gelabeld naar zijn ware formaat (#420), met een snelheidscontrole bij afspelen (#428). Mobiele opnames worden hergemengd zodat ze ook zoeken (#471), en elke opname kan direct gedeeld worden vanaf het delenblad (#429).
- Stage-links blijven werken nadat de stage is geëindigd (#363): ze ontvouwen voor crawlers, de mute-status blijft behouden, portemonneevergelijkingen zijn case-insensitief, en het korte uitnodigingsformulier deelt vanuit een lopende kamer (5b2768e5e6), en het delenblad kreeg een repost-actie (#429).
- Moderatie is verplaatst naar het admin-paniel (backend #109), geproxied door de dienst die daadwerkelijk de sleutel bezit (backend #114, #404), met de auditspoorlijn hersteld achter elke actie (backend #110). Superadmins kunnen het luisteraantal van een stage rechtstreeks instellen (#416, backend #115).
- Stage-schrijfactiviteiten zijn geauthenticeerd achter een publisher-tokenpoort (#324), versterkt voordat het ooit de deploy haalde (#330), en de kamer overleefde de pensioen van de oude token-service door hertekenen zonder RPC (#328, gespiegeld op mobiel in mobile #147).
AI verplaatst naar elke hoek
De assistent
- @assistent bestaat: een assistent-tool-API en chatbot landden op de backend (backend #72), beantwoordden vermeldingen in berichten en opmerkingen (backend #73) alleen na het opnieuw controleren van de post op een nieuw gelezen (backend #74), wezen naar het echte @ assistent-account (backend #75).
- Op internet kreeg het echte tools in plaats van het raden van zoekwoorden (b691e62062), ontvangt uw werkelijke token in plaats van een zelfverklaard adres (60bd056028)), hield een lokale fallback totdat de API-kant live was (596c887506), en herkent het echte @ assistent-account overal (8d066e1207, mobile ea7bb89d08).
- Het antwoordt zichtbaar in commentaarthreads (80eb82febd, mobile 23faa4726f), heeft deelgenomen aan mobiele live chat met live gegevens (14ffa299bb), auth-token bevestigd (8193b130a5)), blijft werken wanneer een afbeelding is bevestigd (ec8b41b72a), echte beeldgeneratiefouten (#333), weet van Last Chad Standing (71d6c3f44f), en is gestopt met het beantwoorden van weekoude vermeldingen via de legacy fallback (#370). De backend legt een modeleindpunt bloot en zegt dit wanneer deze er geen heeft (backend #111).
- Supporttickets die via de assistent worden ingediend, worden gemaild naar dev@dehub.io (backend #106, f22485e94d), bevatten echte feiten over uw sessie (backend #108)), moeten ergens naartoe zodra ze zijn ingediend (backend #107), en kan de inbox niet overspoelen tijdens een storing (backend #108).
- Een MCP-server edge-functie is hersteld (76a589e1f9), de tool payloads zijn volledig getypt (539417372a), dus handlers bellen de eindpunten die de API daadwerkelijk heeft (141e36cf80), met LiveStream geïnjecteerd in de toolset op de backend (backend #86). De onderstaande ai_agents-tabel heeft een migratie die veilig kan worden afgespeeld (a08b2c5e15), een eigendomskolom waarvan het beleid daadwerkelijk kan overeenkomen (d33e0dbbbd) en een service-rolbeleid dat is afgestemd op service_role (393a4e0f87).
Creator Studio v2
- Een native generation studio arriveerde met een Canva-stijl editor en een gedeelde renderwachtrij over oppervlakken (cdbd24dabb), met de studio-componist als enige promptbalk op /creator (49e4bd1d51) en plakkerig gedrag dat eigenlijk blijft plakken (1ef900835a).
- Audiomodus landde op ElevenLabs voices (9b23618195), en 3D-modelgeneratie werd geleverd met een uitgebreide modelcatalogus (92782d2b4b) achter een viewer die gehard was tegen WebGL-fout en toon drift (77e1a9c405, herstellende van herstelde GL-contexten (461034db7e).
- Een gratis activabibliotheek geopend in de editor (bdefb38d0e), scopend per portemonnee met opeisbare renders op verschillende tabbladen (0b8cf4c96f).
- De prijsstelling werd opnieuw opgebouwd rond video-first modellagen met het vermelde niveau van de maker (6e41941d31), de maker marquee herbouwd vanuit de echte modelcatalogi (b50d67bbd7)), en gegenereerd via kieai. met een markup van 20% (5f84971a7e).
Credits en vertaling
- AI-credits werden echt en luiden in DHB (0eb7496bf0): een startsubsidie plus dagelijkse opbouw die wordt geclaimd bij het inloggen maakt gratis krediet bereikbaar (49333e63bd), pay-as-you-go loopt ernaast met het replay-venster gesloten (87777465f8), krediet heeft een plaats om te kopen (bcf428963c), en de edge-functie auth-controle erachter is allemaal echt gemaakt tijdens het voltooien van de kredietmigratie (0ef77c093e).
- De feed wordt automatisch omgezet in je taal zonder een portemonnee te openen, met een maximum aan uitgaven (85154309fd). Onder de motorkap: vertalingen blijven server-side en Gemini wordt direct aangeroepen (333cf42591), fal fungeert als een betaalde terugval tussen Gemini en de gateway (a833f4af70), gepensioneerde modellen worden door een lijst gelopen in plaats van te falen (6e74ca7022), elke locatie wordt genoemd in de prompt met mislukte caching gestopt (d90a456598), niemand betaalt om tekst naar zijn eigen tekst te vertalen taal (44dd1f59f6), emoji worden op het bureaublad weergegeven terwijl afbeeldingen worden vertaald naar de gekozen taal (198fb5c83b), en vertaling blokkeert nooit het laden van pagina's (f2cbd3d1fc). Mobiel matcht web voor openbare inhoud (mobiel 719d8f2aa9).
Posters gingen gratis
- Merkafbeeldingen worden getekend door een deterministische SM Template 2.0 renderer gebouwd op brand-kit activa en resvg in plaats van kosten in rekening te brengen voor diffusie renders (1323a3a2ee). Het kreeg een op kolommen gebaseerde lay-out, zodat krantenkoppen de held passen en afronden (6acc7152fd), LLM-specificatievelden defensief werden gedwongen (7c04276493), nieuwe pogingen die zich niet langer verbergen wanneer ze opgeven (#326), HUD-badges aan alle vier zijden vastgemaakt aan één inzet (#418)), helden staan in de frame opnieuw (#384, #383), en headline lekken opgelost (a28deb77fd).
- CPU-veilige pixelbudgetten werden afgestemd per grootte: 960px doeken met lichtere vervaging voor vierkant/portret (723115f846), gradiënt ellipsen vervangen gaussische schaduwen met alleen landschapskorrel (11211a8f94), portret gestandaardiseerd op 864x1080 (0ad1e45b63).
- Poster wordt nu standaard op merksjablonen in plaats van diffusiescènes (6df26d92a), DeHub-banners werden overal gratis (#327, mobile #146 stopten ook met opladen op telefoons), en de dehub-poster-vaardigheid verhuisde naar SM Template 2.0 (#367).
- Elke blogbanner werd opnieuw weergegeven in de v2-stijl (#366), samen met elke OG-kaart per route (#365), en de in-app-bannerrenderer zelf kwam op de proppen met ontwerptaal v2 (#343)).
Tien thema's, elk een volle huid
Het platform biedt nu tien verschijningsthema's: licht, minimaal, kosmisch, wazige nachten, zwermen, lavalamp, winter, oorlog, Osaka en jungle. Drie daarvan zijn dit kwartaal geland:
- Oorlog wikkelt de interface in een tactische HUD (5bd68b529a), gebonden aan elk oppervlak dat het ontbrak (6fda089b63).
- Osaka is regen-op-glas neon (89e2762c9b): een achterplaat die opnieuw probeert voordat hij terugvalt (ed6fbcf0e9, daa21f5cc9), schaarse splash pops en droogveegstrepen (0fd4062371), holografische rail CTA's vervangen door vloeibaar glas (b5da25ba85, b29f6746a2), dekking afgewerkt door hover-at-rest-staten (56d49303f1), plus speciale fixes voor mediabrievenbussen (7762efbcac), postpanelen (b15777f4eb), focusringen (35074942c1), pagina-achtergronden (e1ac44a278) en regen/bento-geometrie (ad0d82f8a2).
- Jungle herbouwt het chroom als gebeeldhouwd hout onder een beloopbaar WebGL-luifelpad (de391bdffe), herbouwd plat in de schaduw laagpolig met lokale wind (1515a21a9b), echte diepte hersteld van een materiaal dat het verborg (fc02ccb029), een camera die in het terrein begon (87c5fe92f3) en een dichtere struikschot vanaf bladhoogte (5b83b3c37a), met vaste elementen die niet langer werden gerepareerd en planken die niet langer stapelden (0e882bee63).
De rest van hen werd dit kwartaal dieper:
- Thema-specifieke 3D-pictogramsets verzonden (c2e4386be9), gethematiseerde paginatitelpictogrammen zijn voltooid (2b23087d10), en lege en niet-gevonden staten dragen themapictogrammen (4bc6333b0b).
- De reactiekiezer kreeg de juiste glasstyling (0fecf6b7a1), schakelknoppen worden correct gelezen op elk thema (f38c941c40), afmelden herstelt uw standaardthema (ee17ae074f)), licht/minimaal geen zwarte zijbalken meer bij het opstarten (e71a8ddda9), canvas thema's stopten met het schilderen van een zwarte kolom over de postlaag (81e0a12808), en geanimeerde achtergronden beperken zich tot 60 fps met verminderde beweging geëerd voor lavalamp en ambient animatie in het algemeen (383474547d, 5ba9ae3fdb).
De speelhal is geopend
Een speciale Arcade-sectie landde op dehub.io/arcade (e45393f6f0), promootte de navigatie naast Prompt (231631147e), met een monochroom System Arcade-pictogram (be2996a22b) en zijn eigen deelkaarten voor de sectie en elk spel (bb335f2aae).
- King's Gambit groeide uit tot een online lobby met liveborden (bd9a85e00b), wedstrijdtafels van begin tot eind (4707f0c16c), uitdagers die worden weergegeven als mensen die geen adressen zijn (71d0de2dc8), een upstream-fork re-vendor (62b3f050c6) en een leaderboard dat wordt gedeeld met Street Slayer (#362). De knop Inzet is verdwenen (#338).
- Claude of Duty arriveerde als een vendored build geserveerd uit /war-game (a16f976dbb) met een eigen launcher (8d74c1954e), HUD-glyph artwork ter vervanging van glanzende 3D renders (beee270bf8), kwaliteit gekozen uit de GPU in plaats van kerntelling (44535cb344), een betrouwbare zelfterugtrekkende bootuitlezing (190773b862, d4e4313590), CORS zodat het sandboxed laadt (539ec85fa1), een comment composer herbouwd als een HUD-console (c6cbc49df1) en een functioneel-audit reparatiepas (1071aba896).
- Street Slayer trad toe (e561157151) nadat de payload was gekrompen en een eigen opstartscherm kreeg (68cff98f7f).
- Trenchstar gelanceerd als onze marktterminal arcadespel (#339): de bureaumonitoren zijn echte bedieningselementen (#374), elke grafiek leest op elk moment (#358), een slechte marktlezing kan de kamer niet verduisteren (#354), hij start op de DeHub-lader met een groene uitlezing (#342), Fat Chad rijdt mee als een 2 MiB GLB (#371, terug op het rooster van de emmer (#352)), en het hele ding start in VR via WebXR op een camerastation zonder de samensteller (#347).
- Jungle Trail dient met CORS, dus het laadt in zijn sandbox-frame (629515e674) en de oorlogs- en junglegames spelen nu allebei op touchscreens (6f0f65dff8). Telefoons kregen de arcade ook, als een native scherm met Claude of Duty en Jungle Trail (mobile 348672dc78, mobile 802e275a8f).
- Gedeelde arcade loodgieterij: opstartvoortgangsbalken voor oorlog en jungle (055937d3d2), sluitknoppen in het eigen instellingenmenu van elke game (b3658ca690), crashes met portefeuille-uitbreiding worden niet langer doorgegeven als opstartfouten (875201e033), GPU-strijd maakt kamers niet langer zwart (#351), de exit-link van de host verwijderd van spelers (7c69f939ab), gekopieerde links worden overal geteld als aandelen, inclusief games (#349, mobile #151), kaartkunst geëgaliseerd met controlehints, taglines, kruisverwijzingen naar thema's en kredietrijen (80266b4810, 208c3be6b4, 337df5f51c, 88bfb3bd78), en de docs Games-lijst herschreven rond de vijf games die eigenlijk bestaan (#388).
Portefeuilles en aanmelden opnieuw opgebouwd
- Web3Auth is volledig verdwenen. Web en mobiel draaien nu een slimme portemonnee voor zelfbehoud (d74f99b73c), gebouwd op een crypto-core geporteerde byte die compatibel is met mobiel (mobile #200), die alleen wordt vrijgegeven na verificatie van de eigenaar van het apparaat (mobile #201), met het mobiele zaadformaat vastgemaakt door test (364721189f).
- Telefoonlogin verzonden, OTP's afleveren via CloudTalk (#97) via aangepaste OTP Edge-functies die de native sms-hook omzeilen (21f4037106), ook via internet (84fc7d1c6f, mobile da90c78fc6), verzonden als een enkel GSM-7-fragment, zodat de levering betrouwbaar is (8d9e7664b9), telefoonaccounts aanmelden via synthetische e-mail (355f83096c) met het plus-voorvoegsel correct afgehandeld (648854f1fe), one-shot aanmeldingswachtwoorden verhard (9443ef0591),smart-accountsessies toegestaan zonder wachtwoord (6e85ee0aa9), en mobiel kreeg de volledige flow (97c70f7621) met toegangs- en vergrendelingsuitgangen opgelost (c78e1e41f3).
- Log in met Apple verzonden op web (#96) en mobiel (96f56da8a4), met sociale login gemigreerd van Web3Auth naar Supabase-identiteit plus lokale portemonnee op mobiel (eaf106354c), verouderde WalletConnect-paren stopten met het kapen ervan (f2adace4ff) en verouderde wagmi maakt geen verbinding meer met gasaanwijzingen (2c91c8b82e).Magische links voltooien nu hetzelfde apparaat (3fe63cc0c8) en de gehoste MFA-pagina blijft uit de sociale login op mobiel (33cbdb392d).
- De portemonnee wordt ontgrendeld met biometrie in plaats van een wachtwoord (77e6bd0c2d): eenmaal per login in plaats van elke paginalading (4247a0cd7c), gevraagd om eenmaal per login (1ba583e5ef), tweemaal gecontroleerd en gecorrigeerd (9f8795d450), ingeschreven per apparaat in plaats van per account (3e99acde54), bereikbaar in plaats van een doodlopende weg (4d9bed5698), met een uitlogopening in de lade (d7db45ae38), telefoons zonder schermvergrendeling nooit vergrendeld (mobile 54693bd6ba),en gasloze instellingsfouten opgedoken in plaats van geruisloos te posten zonder gas (mobile a03a899487). De wachtwoordmeter voorspelt nu de uitspraak voordat u deze indient (8a463c259c).
- Verouderde accountmigratie werd onmogelijk te missen: terugkerende gebruikers worden automatisch gedetecteerd bij het instellen van de portemonnee (4bb2098a3e), een voorbeeld van meerdere oude accounts voordat ze migreren (462b387e54, b9713b7c2e), oude accounts bevestigd door avatar en gebruikersnaam in plaats van ruwe adressen (9c1157502c) met adresbevestiging vereist (e13e5ebbb2), de e-mailoptie correct gelabeld (7e7e17104d) en sms die eraan deelneemt (#419).Mobiel weerspiegelt dit met een herstelstroom (7a383716b7), een waarschuwingsmodaal met detectie (57cc2e7ac9), een ontsnappingsluik voor onherstelbare doodlopende wegen (e5f222615d) en niet-overeenkomende webaccountafhandeling verwijderd (92c0a76fe3).
- Actieve sessies en apparaatbeheer belandden in de instellingen (80c1e2f726), terugkerende gebruikers slaan het wallet-wachtwoordblad volledig over (#391) en een Supabase-sessie ruilt voor een DeHub-token zonder portefeuillehandtekening (backend #66).
- E-mail werd zowel een weg naar binnen als een weg terug: Edge-functies mailen de code en lossen de identiteit erachter op (#445), Instellingen groeiden een bijlagestroom zodat een bestaand account een adres kan toevoegen, en gekoppelde accounts hervatten exchange-first (#447) met het inlogblad opgehouden voor het hele cv en het wallet-wachtwoord gedegradeerd tot een laatste redmiddel (#444).Het sms-migratiepad verzendt nu het nummer samen met de login (#468).
- Eén browser, meerdere identiteiten: schakelen tussen meerdere profielen is geland in → Instellingenprofiel (#446), het toevoegen van een profiel is niet meer destructief en de lijst is alleen expliciet (#453), een schakelaar die niet kan worden teruggezet (#448), een vernieuwingsreactie kan geen identiteiten meer kruisen en een hangende schakelaar verwijdert zichzelf (#467), en hoeveel profielen u kunt vasthouden, wordt geprijsd door een badge te staken (#469).
- Een geweigerde portemonnee-aanmelding zegt waarom in plaats van mensen te vertellen het opnieuw te proberen (#476), alle drie de portemonnee-auth-paden hetzelfde zeggen (#486), en de webclient stuurt een stabiel apparaat-ID zodat sessies kunnen worden toegeschreven (#473).
- Sessiestabiliteit werd het hele kwartaal weggemalen: valse afbraak- en valse herstelrapporten gestopt (89294d7bf3), verouderde identiteitsverwijdering gecentraliseerd (b0c4f5f667), valse logouts en afmelden bij post gefixeerd met kracht doorgegeven vanaf elk afwijzingspad (d27b80d09d, 3198444d40), een handtekeningprompt die nooit meer verscheen tot het verversen (ecf076e39a), mislukte handtekeningen stopten met de gebruiker de schuld te geven (fe4bd611ab), een verlorenconnection-source tag blokkeert niet langer mensen om te posten (9e668def25), een verouderde verbindingstag slikt de portefeuillehandtekening niet meer in (#415), een geannuleerde handtekening beëindigt de poging en tikt op de portefeuille die u hebt getikt (#423), het inlogblad wordt geopend op de klik niet nadat de inhoud is geladen (#417) en stopt met het knipperen van inlogopties voordat de portefeuille wordt ontgrendeld (#381).Aanmeldingskopieën leiden naar wat de portemonnee-stap beschermt (182ccf1d70) en inloggen vraagt niet langer om de portemonnee op weg naar (96cc9d074e).
Het plaatsen is lichter geworden
- Minting werd optioneel, met een Mint-berichtschakelaar op beide platforms (016380ebac, mobile 04eada0530), ingeschakeld server-side door de PR publiceren-zonder-minting (backend #95). Off-chain berichten tonen overal met plaatshouder NFT info die uitlegt waarom er nog niets te minten valt (c8ae4feb1d, mobile 22a0606d52), dragen hun eigen /newpost slakken over web, backend en mobiel (a8d42756eb, backend #100, mobile 9e12a8dcae), vullen op de boot voor alles wat al is gepubliceerd (backend #102), publiceren over elk leespad (backend #98) inclusief opzettelijke off-chain berichten via status=minted (backend #97), en tellen in dashboardstatistieken met reacties op admin eindpunten (backend #103, backend #101).
- De reacties werden negen diep door de duim omhoog te houden (dd4499bec4, mobile d787ddc661), geserveerd door speciale verzoek- en per-post reactie-eindpunten (backend #69): per-reactietotalen in de lade (5dc78b32c9), je keuze gemarkeerd met een gloed in de kleur die je hebt gekozen (0ff800f6f5, 0510efc703), tik precies op de reactie die de duim laat zien (4000d5d0fb, mobile 0863ec0dd8), en het appèl woont alleen in de lade (8a8cfa1775, backend #71) met reacties die alleen op de auteur lijken en zelflikes geweigerd (backend #96).
- Opmerkingen kregen fooi bij elke opmerking en reactie (#104, mobile 2ab363b6bb), een lade achter je eigen opmerkingen 'like-knoppen (a242b03f89, mobile 0bd3da514c), nesten zonder limiet inclusief discussies voorbij de eerste 20 wortels (be31e9fee3, e07a509ed2) en controles per bericht (e467fbab96, backend #68).
- Het plaatsen ging van een onbeperkte free-for-all naar een dagvergoeding in vier stappen: een limiet per dag door het niveau van de badge te staken (#421, backend #116), dan één post per auteur op de home-feed met opnieuw onbeperkt posten (#457), dan de eerste N-berichten van elke auteur van de dag per niveau (#461), en ten slotte de vergoeding zelf — elke dag tien tekstberichten en een gigabyte gratis, geschaald met je badge, waarbij DHB alleen pro-rata in rekening wordt gebracht op wat er overheen loopt (#484). Het is gedocumenteerd op de dApp-pagina (#490), inclusief wat de dollarpin en een geleende badge ervoor betekenen (#492).
- Inhoud voor volwassenen heeft een huis gekregen dat niet de startfeed is: makers markeren een bericht als volwassen terwijl ze het samenstellen en kijkers kiezen of ze het zien (#477, backend #130, mobile #180). Gemarkeerde berichten blijven van openbare ontdekking en blijven zichtbaar voor volgers en op het eigen profiel van de maker.
- De negatieve helft van de reacties was voltooid: een 'dislike' -knop op opmerkingen die waren doorgestuurd naar door de server bevestigde tellingen (#452), 'dislike' -tellingen via tekst, afbeeldingen en korte kaarten (#459), negatieve reacties die waren overgeslagen in de door de WHO gereageerde lade (#458), lade-tellingen die altijd optellen tot de gelijke telling van de post (#466), en een afstemming die niet langer crasht op een fractie of toewijst bij elk gesprek (#482). Een reactie verplaatst nu de telling door het badgegewicht van de reactor in plaats van door één (#493).
- Een auteur die op zichzelf reageert, wordt een X-stijl genummerde thread op /posts/:id/b (#464), reacties dragen BadgedName, dus een badge verdringt nooit de naam (#460) en de koptekst van het commentaar kreeg een sluitknop (#449).
- Het dempen van een auteur werkt vanuit elk bericht, met een X in de kaartkop en de blokbedrading erachter (#451), helemaal rechts van de koptekstpictogrammen (#454).
- Concepten synchroniseren met het account in plaats van het apparaat, crashbestendig tegen gedwongen afsluiten, zodat er niets verloren gaat (mobile 69d9b17516, 013b9fee52).
- Bestandsbijlagen verplaatst van berichten naar DM's waar ze thuishoren (f8480e096f, backend #89 met zijn feed-file post type (7fb2cd3e4f), mobile 25beb2602e), links in directe berichten werden aanklikbaar (42f3342f6a, tikbaar op mobiel (f0e0ef6347)), DM antwoordt concept rechtstreeks van de componist (55ea0f34f2, mobile 73f540f7e4) en de antwoordlade verhoogt de focus in plaats van op een knop (8d10478348, correct gemonteerd op mobiel (c22925acec)).
- Directe berichten kregen een antwoordrail: een ruststrip onder de componist op mobiel (#426) weergegeven op een smalle viewport inclusief de lege status (#430), slimme antwoorden opgesteld in beide richtingen waarbij de strip een storing overleefde (#434), antwoorden bewaard in de chatviewport (#443), de dode band onder de componist gedood en de orb gezeten in een omrande inkeping (#465), vervolgens de hele rail opnieuw opgebouwd als één component over telefoon, tablet en desktop (#478) met de twee suggesties gestapeld en de bol gecentreerd op de rail (#441, #483, #488, #491).
- Geplande berichten slaan de munt over in plaats van vroeg te slaan (mobile c0df104dee), planning heeft echte kosten opgeleverd, PPV en een canoniek audiotype (df6d8a4a25), en publiceren is idempotent, dus een nieuwe upload kan nooit ergens dubbel posten (9eae08148d, backend #105, mobile #137).
- Activaposten kaart met contractadressen en tickers, met een activapicker in de samensteller zelf (#118, mobile 5c0dae352e).
- Weergave tellen werd één eerlijk nummer: afgemeld bezoekers worden geteld (13d42376dd, backend #78), doorgestuurd ontdubbeld naar de DeHub API (4206563c81) met de spoofable header vervangen door cf-connecting-ip (c655ea14a7), en een enkele definitie van een weergavetelling ondersteunt nu web, API en mobiel (backend #87, mobile c131374714).
- De feed vertelt je wanneer de tijdlijn is verstreken (a10c9928aa, mobile 8b77cc18f4); volg suggesties die zijn geretourneerd naast een carrousel voor nieuwe leden (#402); Nieuwe leden zijn een eindeloos, chronologisch, volledig rooster geworden (#405); en nieuwe leden worden op verschillende platforms geïdentificeerd, waardoor de feedbackenquête opnieuw wordt geopend (#395, mobile #159, enquêteronde drie voor getuigenissen (#403)).
- Bericht bewerken is teruggekomen, met menu's met drie stippen op elke kaart plus de infopagina (11fa06ff10), beeldbewerkingen zijn ingebakken in de upload zodat ze niet meer verdwijnen (81ce3a20c2), routenamen kunnen niet langer worden geclaimd als gebruikersnamen (bcec2258a9, mobile 0b0cbb9d2e).
- Delen was verenigd: alles wat kan worden gedeeld, gebruikt hetzelfde deelblad (82ecb47872), elke DeHub-link wordt weergegeven als een kaart op elk oppervlak, inclusief mobiel (cbc1920d45, mobile 90e1cfde15), winkels, winkelartikelen en evenementen ontvouwen zich voor crawlers (87507ef1aa) en shorts wissen hun eigen chroom op beide platforms (7ad232db07). De mobiele componist komt overeen met web: één knop voor het bijvoegen van foto's en video's (da4e9e71ac), body als de beschrijving van 500 tekens met de titel als een schakelaar (bde34b72ad), Mint gevouwen in de optielijst (5ecd4738b3) en posten zonder een bevestigingsstap (f917f7d537).
- Meldingen werden op beide platforms beheersbaar: een echte browser-notificatieschakelaar in Instellingen (1448b3024f), een soft-ask toast die vraagt wanneer u bent ingelogd (2b93a9f743) in de auth-provider (eff3ed5a3d), Stille uren die eigenlijk alles tot zwijgen brengen (a1f296574e), Accountwaarschuwingen (0875d48db5) en privéberichten (mobile 8dfa5ba60b) schakelt, voorkeuren leest en schrijft in de exacte vorm die de API gebruikt (dd0a161af4) met een type filter server-side (backend #80), en per rij duidelijke en markeer-leesknoppen op mobiel (mobile 782a5ea461).
De economie werkt van begin tot eind
- DHB verkoopt tegen de vaste $ 0,001 peg in plaats van een marktcitaat (backend #77), de kooppagina toont de staking-badge-korting en verkoopt opnieuw op BNB (#424, backend #117), en betalingen komen uit elke keten via NEAR Intents (backend #82).
- Solana PPV werd betaalbaar op het web (037fc999fa) met gas en huur gesponsord vanuit de backend-portemonnee en misbruik beperkt (backend #104); mobiel geeft de voorkeur aan een geverifieerde Alchemy RPC met betere uitzenddiagnostiek (mobile ded39270c1), en de Solana-portemonnee is herstelbaar en zichtbaar met zaadafleiding uitgesplitst voor testen (mobile 631000afb3, d7bc8220f6).
- Robinhood Chain is overal lid geworden van de netwerklijst (d245a73a81, backend #92 met de v3 stream stack, mobile 4d9758c264).
- Staking badges zijn nu van dag tot dag van belang: ze ontgrendelen het moment dat tokens landen in plaats van te wachten op een webhook (#398, oude saldi gerepareerd zonder te wachten (backend #112)), ze geven naast elke weergavenaam (78087844b5), je niveaulimieten weer hoeveel je per dag op de hoofdfeed kunt posten (#421, backend #116) en kortingen op wat je betaalt (backend #117).
- De badge-ladder is niet langer een token-telling en werd een kostprijs in dollars: dertien niveaus geprijsd in dollars tegen de live DHB-prijs, waarbij de vereiste is afgetopt, zodat een drawdown nooit de lat hoger legt, en een verdiende laag is gekoppeld aan de goedkoopste vereiste die ooit is bereikt, zodat houders behouden wat ze hebben verdiend (#481, backend #136, mobile #185).
- Badges zijn uitleenbaar geworden. Elke beklommen sport geeft één delegatieslot en een slot geeft een ander account van de concessieverlener een eigen niveau (backend #135, #137) — bemanningen vormen zich uit delegatie in plaats van uit een lidmaatschapstabel, en alts zijn niet langer badge-less. Het panel en de patronlijn zijn verzonden op web (#487) en een gedelegeerde badge geeft de patron een naam bij hover (#489).Rechten lezen nog steeds de inzet die je zelf bezit, dus een uitleenniveau is status en geen korting.
- Open betaalde eindpunten hebben bestedingsstops (#450).
- Makers zien hoe DeHub-inkomsten zich verhouden tot andere platforms in het Command Center (#103, mobile e1d19acd21), hangende winkelinkomsten van kaartverkopen worden weergegeven in de mobiele portemonnee (mobile 0a6e4fc1d0), de kassa van de marktplaats wordt geciteerd en geverifieerd aan de serverzijde voordat deze wordt opgeladen (c4d96b86e7), de partnerpagina vermeldt wie uw gelieerde ondernemingen daadwerkelijk zijn met een geharde teller (2ed525e17c) en het leaderboard rangschikt doorverwijzers (a00f0d5509).
- De weggeefactie voor het WK liep van begin tot eind: winnaars werden gekozen in een pop-up met DHB die rechtstreeks in de portemonnee werd bijgeschreven (f711cd95ef).
- PPV-tekorten werden een herlaadstap die wordt hervat wanneer fondsen landen in plaats van een doodlopende weg (#380, #385, mobile #154, #155).
- Live engagement werd echt: werktips, likes, activiteitenlogboek en een eerlijke eindstroomstatus (c7ff6a1f3c), shoppable producten op livestreams betaald via Stripe op internet en mobiel (b2d916f8b7, mobile 9d7c4a2135).
- Willekeurige koppeling arriveerde als gateway met matchmaking en WebRTC-signalering (backend #94), een klant met een verbindingstestpagina (c671f46122), ICE-servers geleverd van wedstrijdgebeurtenissen (f35fe89d47), wachtrijen opgeschoond met verlof (2deda4f7cb).
- Een DePin-bestemmingspagina verzonden (ef5c0e1b04), de backend groeide bewaakte admin-eindpunten voor rolwijzigingen en verwijdert met lijstfilters vast (backend #91), een bewaakt eindpunt dat het eigen adres van een token oplost (backend #81), godmode-oorsprong toegestaan (backend #90), admin-uitnodigingen gemaild via een send-admin-invite-functie in de gedeelde e-mailwachtrij (d942854ae7, backend #93), en analyses hebben de groei van nieuwe gebruikers op users_count plus abonnee bereiktstatistieken over mijn analyses (backend #67).
Communities, TV en de Bouwer
- Gemeenschappen kregen een echt administratiesysteem met toekenbare rechten die daadwerkelijk iets doen (#102, #350), een hernieuwde migratie (543fd18439) met driftdetectie, zodat een niet-toegepaste migratie niet langer stil is (e5e91a4e3b), herstelde uploadlimieten (a049d2651b) en het beleid voor het INVOEGEN van de client behouden bleef totdat mobiele poorten eraf gingen (411caf9aac).
- Communitychat meldt @vermeldingen en heeft @HERE (6f86e89c67) plus een jump-to-latest-knop (7f236adb02) gekregen; elk tv-kanaal voert live chat terwijl het speelt (#100); en functieverzoeken en bugrapporten nemen meerdere bijlagen (38b715fa6d).
- Moderatie groeide uit tot een controlegebied: beheerders hebben de bevoegdheid om chatten te modereren en het beheerderspanel kreeg een chatpagina (#462), naast een moderatiepagina met elk rapport met de uitkomst en de beoordelaar (#455).
- De Builder heeft prompts omgezet in werkende mini-apps als een eigen pagina-oppervlak (b28901e78e, b2c6d9519d): previews van host van Storage, zodat ze daadwerkelijk worden weergegeven (caeaebfb94, correcte inhoudstypen van getypte uploads (b36ef80662)), worden weergegeven in een sandbox-frame met openbare deelroutes (d449666dc1), tariefbeperkt per IP op het dure bouwpad (eddbafcc63).Het verhuisde naar dehub.io/builder met de gereserveerde naam (#355, mobile #153), uitgelogde bezoekers krijgen de titel niet van de homepage (#356) en mobiel weerspiegelt de reservering (mobile a85fb00818).
Mobiel ingehaald en verzonden
Mobiel knippen v1.15.0 (mobiel #166) aan het einde van het kwartaal:
- De pariteitspush bracht premies, winkels, functieverzoeken en gelieerde ondernemingen naar native schermen (mobile ad8e756798), vervolgens native advertenties, tv- en promptschermen (mobile 8e9047fbde), top 100-activa (mobile f4fcc68547), commandocentrum (mobile d913abc9b6), een audiotabblad met de muziekfeed van het web (mobile #163), een pagina met functieverzoeken die opnieuw is opgebouwd om overeen te komen met het webboard (mobile #164), gemeenschappen op gelijke voet met het web (mobile 93288a02aa), live tv-chat (mobile 712f937b64) en een native communitymanagementsuite (mobile 27dd11b916).
- Instellingen herbouwd rond het tabbladsysteem van het web (mobile ba9b6a1669); Gegevensbesparing werkt echt (mobile 789386abcc); de hele gebruikersinterface is overgegaan op de monochrome webervaring (mobile c6c9d7c751) met paletunificatie over verhaalringen, beeldfeeds en lege staten (mobile afcf1c6e80, 6c90574305, contrast opgeheven (0dceafc107), donkere voorgrond op accentknoppen (0c53313d04), zichtbare pull-to-refresh spinners (a302dc9cc0)).
- Signing in on phones settled on one set of controls, led by the DeHub mark (mobile 769a19e75e, mobile ee307ff618), with the wallet picker no longer buried under the sheet (mobile 670040a327) and web's sign-in gate matched with the Exo typeface actually applied (mobile 301e0e25e3).
- De lokalisatie is voltooid voor nieuwe stromen (mobile f5277a064f, navigatielabels (4c2cf95809, 6dd79d3200)), gedekt door navigatievertalingstests (b2d6135974), en de vertaling gebruikt de door jou gekozen taal met de avatar van de commentator (2b1a7d0ed2). Controleert elke sessie aanraking werd schermlezer bruikbaar (21e6734d0a).
- Fases werken goed op telefoons: plannen en aankondigen (ca97c9366c), herinneringen met startwaarschuwingen (mobile #145), weergave op gedeeld scherm (mobile #148), het klankbord (620a4658d8), belleridentificatie op elk schrijf- en luidsprekertoken (mobile #144), hostrol behouden bij opnieuw deelnemen met dempen en openen van uitnodigingslinks (e2c3e10bc3), banner met opgeheven handen en luidsprekeravatars vast (mobile #152), en flaky token refresh nolanger ondertekent mensen uit fasen (mobile #161).
- Gereedheid van de winkel: Android-releases zijn gestopt met ondertekenen met de publieke debug-sleutel (mobile #158) en wijzen op de echte DeHub-sleutel (mobile #160); assetlinks.json publiceert met de Play App Signing-vingerafdruk (#401, associatiebestanden dienden als echte bestanden, waaronder die van Apple (#393, #399, gevalideerde instanties (#396)); de links die we uitdelen worden geclaimd en niet-verifieerbare hosts laten vallen (mobile #157); EAS heeft een test-apk-profiel ontwikkelddie installeerbare artefacten oplevert (mobile #149); de APK-downloadpagina dateert zijn builds (4821652aa8, d359811a27); push verplaatst naar het dehub-ca4d8 Firebase-project (6cb41b6c70) en EAS naar het dehubapp-account (e8e79b8bb8).
- Dood gewicht kwam uit: 73 niet-verwezen gebundelde activa (52639d9d24), vier Rive-animaties die niets laden (95d374ae47), pictogrammen aangepast tot maximaal 4x van de rendergrootte (e8aadba4e0), standaard banners gecodeerd als JPEG (7e429b0616) en de subboom van de dode videospeler verwijderd (836f77010e).
- Audio verplaatst van expo-av naar useSyncedAudio/SoundPickerSheet (836c52989b), StageTranscriptSheet/VoiceNotePlayer (0e3cd884a5) en SoundtrackBadge/StagesBrowseModal (1c04305cfe).
- Meldingen vragen achter een pre-prompt van een merk (mobile #150), Android-badges blijven gesynchroniseerd (b9db8777e3), tikken op een aankondigingsknop opent de link (mobile #136) en elk meldingstype is standaard ingeschakeld (d130dbebd5).
Ontwerpsysteem en navigatie
- Het merk DeHubLoader uitgerold over app-oppervlakken (9e40ca6dde), samengevoegd (cfe42e2af5)), kleurenschema wordt bij het opstarten gedeclareerd met het teken dat wordt weergegeven voor elke pagina wachten (1f8331d1d6), en open tabbladen worden verteld wanneer een nieuwe build is verzonden via een toast in het eigen chroom van de app — rechtsonder op het bureaublad, vertaald en gespiegeld voor RTL (595ba5b281, b5248da59e, 0a3c67ce70, a908b77db9).
- PWA-installatie biedt weer werk met de pictogramgroottes die browsers nodig hebben (#332), merkactiva dienen als echte statische bestanden in plaats van verwijzingen (07d2a6faad) en /creator leads met de DEHUB ORIGINALS woordmerkbanner (773e2b1b12).
- Menu-zoekopdracht belandde in het linkerdeelvenster (b42df422e8) om pagina's te vinden op basis van hoe mensen ze noemen (a34d9edab8), gespiegeld als een zoekactie in het onderste menu met de rail opnieuw geordend (#377) en verborgen zodra de spiegel wordt weergegeven (#386); de lade kreeg het ook op mobiel (8a19834642).Nav volgorde gewijzigd: Thuis eerst met overal Instellingen boven Leaderboard (bd78e89440, mobile f9cae50dea), Leaderboard en Stages geruild (4b1cd3dfbd), Shorts naast Home (746a8499b1).
- Elke tooltip deelt één hoverlabelstijl (#408), zijpaneeltabbladen labelen zichzelf op hover (#407), de headerpil van het featureboard wordt verborgen op scroll inclusief desktop (#409), de functies audit hebben het aanvraagbord gerepareerd en twee gevraagde functies verzonden (cf21dd2d9d) met verzonden pop-ups die niet langer elke login (6ab9d892e0) tonen, werk werd omgedoopt tot Bounties (9267087e05) en bountyposters kunnen hun eigenadvertenties (#105).
- Het afgetekende welkomstpaneel werd herbouwd als een SM Template 2.0-verhaalpaneel met merknaam (ebc834e59c, gekoppeld aan referentieborden (649c50336e)): aangepast aan zijn eigen kolom met de held weergegeven op telefoons (#394), held bewaard in het paneel (#400), decoratief frame verwijderd van de wereldbol (#406), HUD-chroom afgerond zonder bewegingsonscherpte (3da71a9460) — dus "/" kan de merkterm vasthouden (b5280ab3a5).
- Berichtenoppervlakken tekenen als frames in plaats van platen (c9fb5523ec) die van rand tot rand lopen (e639e39bd1); TESTEN en NIEUWE badges kwamen van navigatie, gebruikersinterface en knoppen (bd27dee0c3); het platformmerk was vierkant, aankondigingen linken ergens en dragen het merk (1494fd96ee, 20074c2e00) gecentreerd in mobiele headers (cc16574b59, mobile 936681ad3d).
- Vaardigheidskaarten verenigd in beide pop-ups met Gebruik verplaatst naar een onderste balk over de volledige breedte (cd6759a59b, 482a469d97), een gesegmenteerde filterbesturingselement over de volledige breedte met live tellingen (607514739a) en Bouw iets verplaatst naar de assistent-snelactierij (9027097cce).
- Statistieken verkregen 3d/7d/all-time reeksen naast 24h/30d (cf3aa6b8f5), publiceren live bezoekersaantallen met hun herkomst (e938d7f17f) en de juiste Engelse tekenreeksen (baf6b2df46, b3d73b29d2); /top-100 kreeg een eigen pictogram (8b6251df92); de bento- en post/inlogknoppen van de desktoprail delen een breedte die het menu beëindigt bij uitloggen (cf2086925e, 30e7ba8546).
- De kop Functies klapt in een zoekbalk in op scroll-down, opnieuw opgebouwd als natuurlijke scroll-away door CSS-rasterrijen om jitter te doden (225430613e, b9767207dd, 0fab9c0282, 7eb8200726).
- Feed chrome: videoposts verpakken in één feed-stijl bento op kaarten en speciale pagina's (c05c3ccf02, 4f4677c458), tikken op een video onthult besturingselementen in plaats van de post te openen (b4d0407eff) en het openen van een post vanuit een feedvideo draagt de speler mee (03c87750ac), de componist slikt de pagina in terwijl deze naar beneden scrolt terwijl hij geparkeerd blijft met rails erboven (20eb68149f, 4cfd5c7c65), en het afbeeldingenraster swapt onmiddellijk, scrolt door derechterelement met een advertentieslot, verlaat via de nav-pil en toont collages in een lade met gerepareerde carrousels en + N-markeringen op mobiel (b5971ad168, ce9e82c2df, a7df93db60, 3517b6167c, 034bd0ac21, f320b98d31).De nav-pil van Mobile bevat elke bestemming met herbouwde podiumkaarten (38cc7966ac), de shortviewer komt overeen met het frame van de webspeler voor frame met één set bedieningselementen (f7a80b72b5, 5bce43fb32, 2be39981d6), de stroom van prompt-naar-feed-tuning werd geporteerd (8cf793b5ce) en de assistent kwam in lijn met web (1e3dea40f9).
SEO, docs en de blog
- Een staging-implement leeft op staging.dehub.io (#98). Marketingroutes stopten met 404-en voor crawlers met bot/menselijke URL-pariteit en een meta-waarheidspas (#101); routevoorbeelden worden statisch aan de rand weergegeven met werkende share-afbeeldingen (fcf5c56560), elke SEO-route heeft een eigen deelkaart (9301a1a233) en kaarten die de verkeerde pagina beschrijven, zijn opgelost (2727a4bc99).
- De dehub.net domeinverhuizing voltooid bij de werknemer: domein-verhuizing 301s geserveerd door de werknemer (fae6baf994), www 301s met onveranderlijke asset caching hersteld (6d4f651a03), legacy edge artefacten gepensioneerd (404fb654fa), legacy /web/app/* en /learn paden toegewezen aan echte pagina's (07889b650d), /radio en /mcp 301ing zoals de app al doet (4493146590), verweesde mijlpaal-URL's omgeleid (6c7167cb23), juridische URL's 301ed naar hun echte /docshome (8eb6ca03c5), subdomeinen gestopt met soft-404ing (#373) en de dode dehub.net URL-ruimtemaps op echte pagina's (#376).
- De app-shell overtreft /documenteert niet langer als een duplicaat van de startpagina (1e6f25ac60), niet-renderende fetchers krijgen echte inhoud met http geüpgraded naar https (2aa15fc3bd), titels per route, fallbacks van lege staten, zijbalkscroll en a11y-labels die samen zijn geland (a55cd69868), en er is een SEO-audit in augustus met trefwoorddoelen geschreven (7cb5a69c23).
- De documenten werden gerestyled in monochroom vloeibaar glas met de dApp-gids geconsolideerd (82211f6b03), dekking uitgebreid over verzonden functies met anker-subnav (a79327dfa8), echte app-schermafbeeldingen overal (a44faa1e67, oude schermafbeeldingen vervangen (4fd42f0ce8)), premiejacht gecorrigeerd voor de live app (068de333bf), ingeklapte secties gelezen als secties (9a80ffcddd), scroll-spy op deze pagina (3bdc2bfec6), een valuta-overzichtspaginaals de Token-landing (aa03f3de26) met Token hernoemd naar Valuta in nav en het Discord-pictogram vast (80848d42ce), en de architectuursectie vernieuwd voor de huidige infra (8481d088e0).
- Blog zoeken verenigd in de docs header search (a982c017c1); elke mijlpaal post kreeg zijn eigen volledige artikel (d5529f6126), de dunste uitgebreid (060e1fb57c) en in-body sectie art toegevoegd aan 17 berichten (5fa1f571e2); banner snijdt bodemanker zodat de logopilband netjes snijdt (836cfba769); ## koppen worden weergegeven in plaats van weggegooid (b86d8f95bf).Een Featured In-perspagina met een eigen bericht (91b7a41fe5) en een maker-vs-Higgsfield-prijsgids met blogafbeeldingen (4fe0c5a122).
Technische details
- Er zijn acht app-brede snelheidsrondes geland (820052d674, 4e53ae0fb1, f254de7f00, 72cec7c525, 22f6b9c734, d117d46e92, geheugen- en luisteraarsreparaties (9a09e1284a), opstartparallellisme met cachekappen (168d40d8a6)): native HLS heeft de voorkeur op iOS/Safari om oververhitting van de tv te stoppen (ce7124afdf), radio schakelt zijn AudioContext uit wanneer deze inactief is (25e5aac5c3), de latentie van de muziekfeed-montage (47d14c7623), implementeert polls tot drie minuten (91c34dc0b4), de volgende korte voorgeladen, dus veeg het afspelen begint onmiddellijk (a53a2a5b45), berichten worden direct aan de bovenkant geopend zonder de feed accumulerende luisteraars (1bd435bcaa), filterschakelaars tonen een preloader op beide platforms (8aa6b051eb, mobile 612e8e4694).
- Het opstartpad kreeg een JS-budget gerapporteerd over elke build (491315e295), zodat het niet terug kan drijven (#412); de verhalenrij en het fasesheet kwamen van het opstartpad (#411, #410); RainbowKit scopte naar de inlogstroom in plaats van de hele app-boom (c170938b01) met prefetch gestopt (#413) en het modale stuk dat overeenkwam met de bestandsnaam (#414); three.js, oversized art en het emoji-lettertype verlieten het laadpad (8baa88572a); CDN-afbeeldingen dienen via Cloudflare-transformaties op maat van de doos die ze hadden renderen naar (6911d543ce, c78c2a9448) inclusief videoposters en live thumbnails (23ca9b37fe). Mobiel draaide zijn eigen passes: luie schermen met gecached profiel/community feeds (22e740f454), echte pager tab switching (8ba4426431), windowed rijen die niet langer elk een speler bevestigen (0cbc1cf928), media churn gestopt mid-scroll (a884a9ad57, 82288c9530), image decode en test time cut (0bbedb3efb), afbeeldingen opgehaald op render size (2f878ec127, CDN-sized galeries (1d4a4a8ca8)), eerste sign-in opgevoerd met de profielstap hersteld (72a7c928e5), een gevallen radio haalt de app niet langer naar beneden (fddc03cf47).
- Beveiliging: betaalde edge-functies bevatten limieten per IP en een SSRF-beveiliging (206d9827c4), de AUTH-bevestiging open redirect gesloten (7b498ebcaf), gegroepeerde Dependabot-beveiligingsupdates geconfigureerd (a7b861b2e2); mobiele bumped socket.io-parser voor CVE-2026-69185, undici, brace-expansion en fast-uri plus postcss (168cdc16e6, cc3ccd8315, 996efd375d, 68544fee28, 9cae3295f8).
- Loodgieterswerk: een Cloudflare Worker bereikte pariteit met de vorige SSR-functie achter wrangler (acbc6f9b79, a1ff2f7e4a, 02b34f7bee, 65975e256c, naam gematcht (f1722f9432)); typecheck CI toegevoegd op pull-verzoeken (894ea57a2e) met gegenereerde Supabase-types hersteld, dus hoofdtypechecks (1e78739c5c); lockfile churn getemd — muffe bun.lock mislukt elke gebouw dat is gedropt (0ec6b5f671), hash-wasm gesynchroniseerd (5f52398b2b), pnpm gehesen, zodat de host phantom deps oplost (c3ddcd9afc), installeert niet-bevroren totdat sloten regenereren (21cf98118b); de hotfix op het witte scherm hardgecodeerde publiceerbare fallbacks (9fef5ad076); verouderde implementaties zijn gestopt met het crashen van de navigatie (43b45e24fe); geschilderde oppervlakken werden opgespoord — bladchroom verborgen voor elk bladtype (07a95bc287), oude likes na stille sessievernieuwing opgelost (883245d0fc), plaknetten opnieuw beschilderen van de postoverlay gewist (54b9c9270f, backings die de achtergrond van main erven (204c4cf878), middelste kolommen gewist (e02afce298)), en paneelachtergronden schilderen nooit meer op paneelachtergronden (067d367834) met scrollrandvervaging gemaskeerd in plaats van overal geverfd (dcf056285f, 73418382b4, mobile 97d19e41bf, zwalradius opnieuw lezen over themawijziging (4c6a53d721)).
- Backend ops: tests uitgevoerd op pull-aanvragen met implementaties die alleen worden geactiveerd bij samenvoegen (backend #76), de druppel installeert met pnpm zoals CI (backend #85), implementeert authenticate pulls met het eigen token van de run (backend #84) gericht op het oorsprongsadres en niet op de geproxyde hostnaam (backend #83), onbereikbare RPC-eindpunten zijn gestopt met het vullen van de schijf (backend #113) en mobiel heeft een groene CI-baseline van jest-junit en typecheck (mobile c03cf2e406) met testdekking opnieuw opgebouwd over validators, uploads, mentions en drafts stubs (443f9c2f60, baa2d54cd1, 8af4b03556, 195ff6c10c, 5d3d71f597).
Wat nu
Het kwartaal is nog niet voorbij en de lijst ook niet. Q4 gaat precies verder waar dit ophoudt: meer podia, meer arcade, diepere economie — zoals altijd in de open lucht verzonden.
DeHub openen