Skip to content

v1.2.25 — one chat everywhere, events you can keep, and Settings that stop eating bandwidth

Choose a tag to compare

@martyinspace martyinspace released this 23 Sep 20:41
293d7fd

📦 How to Install / Upgrade

BeanPool is distributed as a Docker container. You can pull the latest version directly from the GitHub Container Registry.

Using Docker Compose:

services:
  beanpool:
    image: ghcr.io/beanpool-org/beanpool-node:1.2.25
    restart: unless-stopped
    ports:
      - "80:8080"
      - "443:8443"
      - "4001:4001"
      - "4002:4002"
    volumes:
      - ./data:/app/data

Using Docker CLI:

docker pull ghcr.io/beanpool-org/beanpool-node:latest

What's Changed

  • Bump the app to v1.2.46 (android 268 / ios 210) by @martyinspace in #1008
  • Write the value before the marker, or an interrupted move strands the device by @martyinspace in #1030
  • Keep the old dark toggle when the seed write fails by @martyinspace in #1031
  • 🎨 Pixel: [native a11y] add accessibilityLabel to submit button in TotpCodeDialog by @martyinspace in #1010
  • 🎨 Pixel: [native a11y] add accessibility attributes to NewPostTypeSheet backdrop by @martyinspace in #1028
  • ✨ Flow: [manager DX] replace any in EscrowDisputesPanel and DecisionsAdminPanel catch blocks by @martyinspace in #1013
  • ✨ Flow: [manager DX] replace any in MemberDetailModal and ThreatReviewModal catch blocks by @martyinspace in #1025
  • 📱 Expo: [compatibility] export ErrorBoundary and normalize group-post search params by @martyinspace in #1015
  • ⚡ Bolt: [perf] remove redundant myMarketPosts computation in MarketplacePage by @martyinspace in #1023
  • 🎨 Palette: [a11y] SuggestChangeForm decorative emoji hiding & focus-visible rings by @martyinspace in #1026
  • 🛡️ Sentinel: [security] require admin auth for commons decision tick by @martyinspace in #1021
  • 🔨 Forge: [reliability] catch unhandled errors in periodic commons balance persistence timer by @martyinspace in #1022
  • 🔒 Vault: [manager security] route snapshot download through API proxy by @martyinspace in #1029
  • 🛡️ Sentinel: [security] bound OAuth batch ingest item limit by @martyinspace in #1016
  • 🔎 Scout: [test coverage] unlock-cancel by @martyinspace in #1012
  • 🔎 Scout: [test coverage] admin-actor-name by @martyinspace in #1027
  • 🗺️ Atlas: [manager tests] add sidebar-mode unit tests by @martyinspace in #1020
  • Jules register: the 22 Sep batch's phantoms and closes by @martyinspace in #1032
  • 🎨 Palette: [a11y] PricingGuideModal touch targets, focus rings, and emoji hiding by @martyinspace in #1011
  • Jules: put the 22 Sep closes in each persona's do-not-re-file section by @martyinspace in #1042
  • 🖥️ PWA: full-page views clear the desktop sidebar, keep the wallpaper, and cap the New Post panel by @martyinspace in #1043
  • Node Settings: the Onboarding Funnel, in People & Safety by @martyinspace in #1044
  • 🎨 Palette: [a11y] EventCard decorative emoji hiding and focus ring styling by @martyinspace in #1037
  • 📱 Expo: [compatibility] export ErrorBoundary and support string array params in public-profile by @martyinspace in #1038
  • 🔎 Scout: [test coverage] admin-queue by @martyinspace in #1039
  • 🗺️ Atlas: [manager tests] add unit tests for SubTabStrip component by @martyinspace in #1040
  • 🔨 Forge: [reliability] prevent unhandled promise rejection in periodic handshake loop by @martyinspace in #1033
  • ✨ Flow: [manager UX] add loading state for DecisionsAdminPanel by @martyinspace in #1035
  • docs(jules): register the 23 Sep batch's closes (#1034, #1036, #1041) by @martyinspace in #1046
  • Bump the app to v1.2.47 (android 269 / ios 211) by @martyinspace in #1045
  • Chat parity, server side: group chats get edit, reactions, reply and delete; DMs get delete by @martyinspace in #1048
  • Your photo looks the same on every screen, updates when it changes, and is never overwritten by a link to itself by @martyinspace in #1047
  • Groups get a lead convenor: other convenors cannot remove or demote the group's creator by @martyinspace in #1051
  • Pulse: YouTube plays in the card, after a tap by @martyinspace in #1050
  • Lead convenor follow-ups: honest refusal text, no dead end with observers, and a promotion cannot move a NULL lead by @martyinspace in #1052
  • An enterprise can host an event: add the treasury event route, and stop "Post as" failing with "Signature validation failed" by @martyinspace in #1054
  • Web app chat: paste or drag a picture in to send it as a photo by @martyinspace in #1053
  • Chat parity: one chat experience for DMs, group chats and event chats by @martyinspace in #1049
  • Event cards show the event's photo, as the offer cards beside them do by @martyinspace in #1055
  • Onboarding Funnel: follow the people who joined, count the in-app steps once per person, drop the stale labels by @martyinspace in #1056
  • Live Pulse: each item opens what it is about, and reveals more text on hover by @martyinspace in #1057
  • Events, server side: "Your events", reminders each person can set, and delivery that never double-sends by @martyinspace in #1058
  • Events, both apps: "Your events" in For you, reminder settings, Share, and Add to calendar by @martyinspace in #1060
  • Instagram thumbnails recover again, and a failing item backs off instead of retrying every five minutes by @martyinspace in #1059
  • Bump the app to v1.2.48 (android 270 / ios 212) by @martyinspace in #1061
  • Group and event chats stop polling when nobody is looking by @martyinspace in #1064
  • Groups, both apps: the quiet-lead vote gets its screens by @martyinspace in #1062
  • Server: the dead POST /api/commons/decisions/tick route goes by @martyinspace in #1067
  • Groups, both apps: a stale vote outcome stops printing under a new warning by @martyinspace in #1065
  • A peer that fails oddly no longer skips the rest of the handshake round by @martyinspace in #1066
  • A suspended sole owner no longer lets an admin make themselves owner (#1006) by @martyinspace in #1068
  • Manager tests: Back waits for the popstate instead of 30ms on the clock by @martyinspace in #1071
  • Test-All names the tests that failed, not just the last 150 lines by @martyinspace in #1069
  • Web app: chat tests stop losing a 1-second race on a loaded CI runner by @martyinspace in #1072
  • PWA: Pricing Guide rows read out their description and seasonal hint by @martyinspace in #1070
  • Node Settings tests get the same wait budget the web app got in #1072 by @martyinspace in #1074
  • Server declares multiformats, so the Docker image builds again by @martyinspace in #1075
  • Node Settings stops downloading the whole node every few seconds by @martyinspace in #1063
  • CI stops overloading its own runner by @martyinspace in #1073
  • A stray rejected promise no longer restarts a node; a true crash still does, and both leave a record by @martyinspace in #1076
  • Node Settings: controls you're not allowed to use say why, to keyboard and screen-reader users by @martyinspace in #1077
  • The web app's chat paste/drop tests stop racing the conversation-open effect by @martyinspace in #1078
  • Offboarding wizard: the Gift radio stops reading its reason twice by @martyinspace in #1080
  • Test-All catches an undeclared server import before it breaks the Docker image by @martyinspace in #1079
  • Bump to 1.2.25 ahead of the v1.2.25 tag by @martyinspace in #1081

Full Changelog: v1.2.24...v1.2.25