Skip to content

Changelog - Dev - 05.04.2026 โ€‹

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog.


[Unreleased] - 2026-05-04 โ€‹

Fixed โ€‹

  • Invalidate venue cache on location movement โ€” Fixed the recurring issue where the venue list wouldn't refresh when users moved to a different location. The in-memory cache was keyed on a 5-character geohash prefix (~5km cell), allowing coordinates up to 7km apart to share the same cache entry. Now invalidates the cache on origin movement and surfaces previously-silent Overpass API failures. (#380) bug

Update - 2026-05-04 01:24 UTC โ€‹

Fixed โ€‹

  • Rename script handles clustered columns idempotently โ€” The event_type โ†’ event_name migration script now safely handles BigQuery clustered columns using create-table-as-select swaps instead of direct renames, and can be re-run without partial migration failures. (#381) devops

Update - 2026-05-04 01:27 UTC โ€‹

Fixed โ€‹

  • Show refreshing pill while stale venues await new fetch โ€” When users return to Places after a location change, venues now display a "refreshing" indicator while the app re-fetches updated data. This closes a UX gap on slower networks (4G, 5โ€“7s waits) where users previously saw silently-stale venues with no feedback that a refresh was in progress. (#382) bug

Update - 2026-05-04 02:30 UTC โ€‹

Added โ€‹

  • Tap active Places tab to scroll to top โ€” Tapping the active Places tab now scrolls the list to the top, following iOS conventions. A contextual chevron hint appears when scrolled to help users discover this behavior. (#384) bug

Fixed โ€‹

  • Inline refresh indicator into Places Nearby header โ€” Moved the refreshing affordance directly into the "Places Nearby" header instead of displaying it as a separate pill or under-header element, improving visual clarity and space efficiency. (#384) bug
  • Add margin-top to invite button for better spacing โ€” Improved spacing around the invite button in the admin users interface. (#384) bug

Update - 2026-05-04 03:27 UTC โ€‹

Changed โ€‹

  • Remove PILOT_MODE and restore role probes โ€” Removed the PILOT_MODE feature flag and restored role-based access probes to simplify authentication logic. (#385) bug

Fixed โ€‹

  • Suppress Landing page flicker on auth load โ€” Fixed a race condition where authenticated users saw the Landing page flash during the ~100โ€“500ms auth state resolution window. Added !authLoading guard to prevent rendering Landing when auth is still resolving. (#385) bug

Update - 2026-05-04 03:28 UTC โ€‹

Fixed โ€‹

  • Serialize dev deploys to prevent quota exhaustion โ€” Added a concurrency group to the dev deployment workflow to run consecutive deploys sequentially instead of in parallel. This prevents hitting Cloud Run quota limits (HTTP 429) when multiple PRs merge in quick succession. (#386) bug

Update - 2026-05-04 03:54 UTC โ€‹

Fixed โ€‹

  • Post failing CI job logs as PR comments โ€” CI failure reasons are now posted directly as collapsible comments on PRs, eliminating the need to click through to GitHub Actions logs. This surfaces build failures like linting errors inline for faster debugging. (#388) bug

Update - 2026-05-04 04:00 UTC โ€‹

Fixed โ€‹

  • Import missing analytics symbols in EventCreator โ€” Resolved missing imports for analytics constants and utilities in the EventCreator component. The admin interface now has access to required analytics symbols from the shared analytics module, ensuring proper event tracking and parameter handling. (#389) bug

Update - 2026-05-04 04:15 UTC โ€‹

Added โ€‹

  • Cache biometric entropy to skip reload prompts โ€” Biometric-protected accounts now store decrypted entropy in sessionStorage with a 30-minute TTL, eliminating repeated OS biometric prompts (Face ID / Touch ID / Windows Hello) on page reloads within the same tab. This reduces friction on mobile and unblocks app render during the auth flow. (#390) enhancement

Update - 2026-05-04 04:35 UTC โ€‹

Added โ€‹

  • Biometric unlock toggle in Privacy settings โ€” Users can now enable or disable biometric unlock mid-session via a new toggle in Profile Settings โ†’ Privacy, rather than requiring a full sign-out to change this preference. The toggle only appears when biometric authentication is available on the device. (#391) enhancement

Update - 2026-05-04 05:57 UTC โ€‹

Fixed โ€‹

  • Fix CI job identification in failure logs โ€” The post-failure-log action now correctly identifies its own job by runner_name instead of relying on in_progress status. This fixes a race condition where concurrent lint, test, and build jobs could cause the wrong job to be identified, preventing failure comments from posting to PRs. (#393) bug

Update - 2026-05-04 05:58 UTC โ€‹

Fixed โ€‹

  • Correct event-tracking sub-nav active state โ€” Fixed the Registered Events sub-navigation tab highlight in the admin analytics section, which was missing the /admin prefix in navigation calls. Now visiting /admin/analytics/events/create correctly highlights the "Registered Events" tab instead of "Taxonomy". (#396) bug

Update - 2026-05-04 06:11 UTC โ€‹

Fixed โ€‹

  • Resolve parent SHA explicitly in CI pipeline โ€” Fixed dev deploy failures in the path-filter detection step by explicitly resolving the parent SHA. The previous approach using base: HEAD~1 was insufficient and caused git merge-base lookups to fail even after increasing fetch-depth. (#398) bug

Update - 2026-05-04 06:28 UTC โ€‹

Fixed โ€‹

  • Enforce label-config validation as CI gate โ€” Changed the label-config validator from a warning to a hard CI gate by removing continue-on-error: true. This prevents invalid labels (like stray feature labels auto-created by GitHub's API) from leaking into the repo undetected. (#395) devops

Update - 2026-05-04 06:41 UTC โ€‹

Added โ€‹

  • First-time guided tutorial with profile settings tab โ€” Per-screen coachmark overlays auto-run once per device on dashboard, profile, and frens screens. A new Settings tab in ProfileSettings lets users toggle tutorial preference and replay tours. Device flags live in localStorage; cross-device preference is stored on the public profile. (#399) enhancement design
  • Dashboard tour steps for search, view toggle, categories, and venue card โ€” Dedicated tour steps guide users through key dashboard features including search, view toggles, category filters, and venue card interactions. (#399) enhancement design
  • Venue tour pointing at the flame with clarified dashboard copy โ€” Tutorial step highlights the flame interaction on venue cards and improves dashboard copy to clarify the lantern-lighting mechanic. (#399) enhancement design
  • InfoTip header explainers for Frens, Lit, and Pending tabs โ€” Contextual info tips help users understand the purpose of each tab in the Frens screen, with later refinement to swap header tips for tour steps on the tab strip. (#399) enhancement design
  • Amber InfoTip explainers for Manage and broadcasting labels โ€” Additional contextual hints clarify the Manage and broadcasting label functionality in the Frens interface. (#399) enhancement design

Changed โ€‹

  • Lantern Hub drawer closes on route change and same-page tab taps โ€” Improved drawer behavior ensures the Lantern Hub closes reliably when navigating between routes or switching tabs on the same page. (#399) enhancement design
  • Tutorial tooltip styling with darker background and amber accents โ€” Visual refinements darken tooltips to zinc-950, add deeper drop shadows with amber glow, replace CSS-triangle tails with amber chevrons, and swap dim spotlights for arrow callouts for better visibility and cohesion. (#399) enhancement design

Fixed โ€‹

  • Tutorial support for array bodies and Frens tab list rendering โ€” Tutorial steps now render array-based content as bulleted lists, with proper newline handling and Frens tabs displayed on separate lines for clarity. (#399) enhancement design
  • InfoTip popover rendering via portal to escape backdrop-blur cards โ€” InfoTip popovers now render via portal to avoid being trapped by backdrop-blur styling on parent cards, ensuring visibility. (#399) enhancement design
  • InfoTip popover clamped to viewport with tidy fren detail card โ€” Popover positioning now respects viewport boundaries, and fren detail card layout has been cleaned up for better presentation. (#399) enhancement design
  • Tutorial replay buttons route to matching screen โ€” Replay buttons in the Settings tab now correctly navigate to the appropriate screen before launching the corresponding tour. (#399) enhancement design

Update - 2026-05-04 15:47 UTC โ€‹

Added โ€‹

  • Port full tag picker to lantern form โ€” Integrates the complete tag picker UI into the lantern form, enabling users to manage their interests more effectively. Also recolors interest pills to match the new design palette. (#403) enhancement

Update - 2026-05-04 17:33 UTC โ€‹

Fixed โ€‹

  • Include missing merchant and assistant APIs in deploy notifications โ€” The Discord deploy rollup was missing notifications for merchant and assistant API deployments. Now these services properly flow through the notification pipeline, and the rollup is reorganized into scannable category sections for better visibility. (#408) devops

Update - 2026-05-04 18:05 UTC โ€‹

Fixed โ€‹

  • Eliminate transient PR label validation race condition โ€” Consolidated parallel CI workflows into sequential jobs to prevent the label gate from failing before the auto-labeler applies the required type label. Eliminates spurious Require type label failures on PR open. (#410) devops

Update - 2026-05-04 18:16 UTC โ€‹

Fixed โ€‹

  • Retry AI changelog push on non-fast-forward rejection โ€” The AI changelog generator CI workflow now retries on non-fast-forward push rejections, which occur when concurrent PRs merge into dev before the bot completes its commit. This prevents changelog generation from failing in high-activity development periods. (#411) bug

Update - 2026-05-04 18:36 UTC โ€‹

Added โ€‹

  • Manual workflow dispatch lever for dev redeploy โ€” Adds a workflow_dispatch trigger to the dev deployment workflow, allowing operators to force a full redeploy of all services without requiring a new commit. Useful for recovering from silent deploy skips, rolling forward after infrastructure fixes, and verifying deployment plumbing end-to-end. (#412) devops bug

Update - 2026-05-04 23:48 UTC โ€‹

Fixed โ€‹

  • Restore dev deploy by pinning eslint plugins โ€” Unblocks dev deploys by reverting eslint-plugin-react-refresh and related plugin updates that introduced incompatible peer dependencies. Adds ignore rules to prevent automatic re-bumping until eslint 9+ migration is complete. (#441) bug

Built with VitePress