Platform changelog
Each release groups commits from the same calendar month across our public site, operator admin, iOS and Android apps, and the Apple Watch companion. Entries are generated from local git history.
Data refreshed:
Release 2026.04
April 2026
Through · 4 commits
- Backend admin
Use Inter fonts and add logo to Wi‑Fi poster
Kris Haamerf461e16 - Backend adminWebsite
Add footer flag; simplify printable poster PDF
Kris Haamer6d7577f - Backend admin
Introduce DashboardSectionSplit and simplify tabs
Kris Haamer62df0cb - Backend admin
Redesign printable Wi-Fi card; hide owner badges
Kris Haamer79c33f9
Release 2026.03
March 2026
Through · 50 commits
- Website
Refine promo copy on WiFi Quick Login page
Kris Haamerf289e78 - Backend adminWebsite
Add WiFi Quick Login page & account deletion
Kris Haamerb671fe6 - Backend admin
Add management & infrastructure tabs
Kris Haamer9c674b0 - Backend adminWebsite
Add draft delete + audience-based dashboard UI
Kris Haamerfbaeafa - Backend adminWebsite
Add printable WiFi poster and open-network QR
Kris Haamer6569831 - Website
Update TypeScript module resolution for TS 6
Kris Haamer99bc05a - iOS & Android
Upgrade dependencies and netinfo patch
Kris Haamer875a94f - Website
Upgrade dependencies and devDependencies
Kris Haamera9cb728 - Backend adminWebsite
Add QR and App Clip login setup to admin
Kris Haamer33fc78e - Website
Add WiFi.ee Quick Login promo page
Kris Haamerfc125f2 - Website
fix(andmebaas): prevent area nav overflow on mobile
Kris Haamer1babfd4 - Website
feat(database): add logged-in quick login filter for wifi areas
Kris Haamer9ab1246 - Website
feat(areas): add WiFi.ee quick login qr card
Kris Haamer61f24c7 - Website
feat(docs): add mainland China integration ideas for product
Kris Haamer4106dcc - iOS & Android
Add Electron app + adaptive tablet layout
Kris Haamer7fd58d3 - Website
Normalize public users and add Clerk fallback
Kris Haamer81c141c - Website
Convert press list to CSS columns and adjust cards
Kris Haamer1781c51 - Website
Redesign media coverage cards
Kris Haamer762c4be - Website
Fix screenshots
Kris Haamerbf117cf - Website
Update media coverage
Kris Haamerfb08fed - Website
Add media coverage screenshot tooling and assets
Kris Haamer8158033 - Website
feat(metadata): advertise Android app install metadata
Kris Haamer0b9997b - Website
fix(metadata): use App Store numeric id for iOS smart banner
Kris Haamer17f7e82 - Website
fix(uudised): await params for Next.js 15+, overflow/clipping, remove bot-facing UI
Kris Haamer7eaae1a - Website
fix(contributors): handle missing wifi_user_star_events table
Kris Haameree804cf - Website
fix(uudised): coerce createdAt/updatedAt to Date in NewsList for server-serialized strings
Kris Haamer8d67fd8 - Website
feat(uudised): redesign news section with yearly archives, improved UX, SEO and AI SEO
Kris Haamer1002b1b - iOS & Android
Update configs, AppClip, i18n and iOS plist
Kris Haamer05fb9a9 - Website
feat(home): add top ranked users section
Kris Haamer49881a6 - Website
fix: align eslint dependencies for deploy
Kris Haamereab08dd - Website
feat(mobile-app): mention Apple Watch app coming soon
Kris Haamerdcc586e - Website
Use useAuth in components; update ESLint & types
Kris Haamer3aab49c - Website
Add publicUsers utils and use in profile/history
Kris Haamer4f87423 - Website
Update deps
Kris Haamerdc7ec87 - iOS & Android
Increase fetch limit when 'nearby' filter active
Kris Haamer1740640 - Website
fix(areas): use stable fallback keys in explorer list
Kris Haamer2c45e04 - iOS & Android
Prepare iOS 1.5.0 companion app release
Kris Haamer18a7db0 - Website
Add avatar and gamification stats to profile
Kris Haamer7ff7e8c - Backend adminWebsite
Load Places and Marker via importLibrary
Kris Haamer2a0b188 - Backend adminWebsite
Pass Google Maps mapId from env
Kris Haamerfccbbda - Backend adminWebsite
Support Google Maps advanced markers & area images
Kris Haamer8044818 - Website
Add X-Clerk-Auth header to Directus requests
Kris Haamer16c10cf - Website
fix(areas): show fallback entry in edit history
Kris Haamer674f422 - Website
feat(areas): add map-based location editing in detail editor
Kris Haamer649f6e8 - Website
feat(areas): add area edit history with editor profile links
Kris Haamera573570 - Backend adminWebsite
feat(profile): add wifi stars gamification and user profile
Kris Haamer9a6cf9a - Apple Watch
Add WifiWatchCompanion target and assets
Kris Haamercacb1a5 - iOS & Android
Add Apple sign-in timeout and availability checks
Kris Haamer47f7d27 - Apple Watch
Initial commit
Kris Haamer289a7e6 - Backend adminWebsite
Add SEO JSON-LD, sitemap, feeds & metadata
Kris Haamerbfd5df6
Release 2026.02
February 2026
Through · 92 commits
- Website
Add forum CTA to area pages
Kris Haamerd3ae73c - Website
Downgrade to working version (Vercel bug)
Kris Haamer3944d3b - Website
Replace chat.wifi.ee with forum.wifi.ee
Kris Haamer8c240b4 - Website
Add fit option and wrap hero images
Kris Haamer2d1e628 - Website
Update deps
Kris Haamer65b66a2 - Website
Add frontend admin access matrix doc
Kris Haamer8536b34 - Backend adminWebsite
Add logo upload and error handling for chains
Kris Haamer40e7fa7 - Website
Remove react-hooks rule; pin ESLint to v9
Kris Haamere23bfb9 - Backend admin
Switch chain API endpoints to Directus
Kris Haamerdfa3305 - Website
Update deps
Kris Haamer555b340 - Backend admin
Extract logo preview URL resolver
Kris Haamercc8fdf9 - iOS & Android
Fix App Clip regression
Kris Haamer1ee1a37 - iOS & Android
Try to fix config (at least EAS build finished)
Kris Haamerfb29c79 - iOS & Android
Add TestFlight submit script and expo overrides
Kris Haamerc005984 - iOS & Android
Add build artifacts; update Podfile & AppDelegate
Kris Haamer3104041 - iOS & Android
Try to fix config: Bump build and Node; add Podfile App Clip guard
Kris Haamerbe96cba - iOS & Android
Try to fix config
Kris Haamer34ae5d6 - iOS & Android
Try to fix config
Kris Haamer62125cb - iOS & Android
Try to fix config
Kris Haamer7027144 - iOS & Android
Try to fix config
Kris Haamer76e7669 - iOS & Android
Try to fix config
Kris Haameraa27a17 - iOS & Android
Fix suggestion form
Kris Haamer653fe5b - iOS & Android
Show correct offline alert
Kris Haamer319ff43 - iOS & Android
Fix navigation
Kris Haamer63cf379 - iOS & Android
Apple login callback also works
Kris Haamer43aa7f1 - iOS & Android
Apple Sign in works
Kris Haamerbbb4237 - iOS & Android
Update Xcode project for App Clip & Pod configs
Kris Haamerce8602b - iOS & Android
Bump app version & add Apple Sign-In check
Kris Haamerb019f04 - iOS & Android
Enable new arch and update iOS Xcode project
Kris Haamereb87555 - iOS & Android
Rename native login route to signin & add Apple auth
Kris Haamer22f49d9 - iOS & Android
Add detailed WiFi quality rating section and fix map, filters, sidebar login
Kris Haamer0bbc589 - iOS & Android
Fix native navigation, map rendering, and auth-gated UI behavior
Kris Haamer64cd507 - iOS & Android
Improve native header, search & map behavior
Kris Haamer6c5083c - iOS & Android
Refactor gallery detail; add gallery routes
Kris Haamer078210d - iOS & Android
Fix native search focus and detail navigation flow
Kris Haamer44c7be0 - iOS & Android
iOS config: add Google plist and enable Apple Sign-In
Kris Haamer386ae7e - iOS & Android
Add native routes and rewrite native layout
Kris Haamer43b7cde - iOS & Android
Use native-only search UI on /native tabs and harden native tab screens
Kris Haamer39cdf45 - iOS & Android
Remove duplicate search bar from native search tab
Kris Haamerb7f2e0c - iOS & Android
Replace native demo content with WiFi data flows
Kris Haamerf2dd79f - iOS & Android
Add /native index redirect
Kris Haamerdd4f8fd - iOS & Android
Add /native demo for Expo Router native primitives
Kris Haamer4a4a35e - Website
Add Chat landing page
Kris Haamer74db3ef - Website
debug: add logs to troubleshoot missing role name
Kris Haamer9cc482e - Website
fix(auth): add X-Clerk-Auth header to user profile fetch
Kris Haamer619b455 - Website
docs: update authentication guide with hybrid strategy details
Kris Haamer7355b31 - Website
Working version of the directus clerk plugin (thanks gemini 3)
Kris Haamerbf12399 - Website
feat(directus): add Clerk JWT auth hook for hybrid authentication
Kris Haamerbb68c19 - Website
Rewrite Directus Clerk Plugin
Kris Haamerffbadeb - Backend adminWebsite
fix(auth): implement hybrid auth strategy for Directus API access
Kris Haamer8277e7a - Website
feat(directus): add Clerk JWT authenticate hook
Kris Haamer489d68b - Website
Fuller logs
Kris Haamer5e3d6a2 - Website
Try to use Clerk JWT token
Kris Haamer3c709ce - Backend adminWebsite
feat(auth): use only user tokens for Directus; remove static token
Kris Haamerddb02eb - Website
Remove service token usage in favor of user tokens for Directus operations
Kris Haamer2137b5f - Backend adminWebsite
Remove Front-end editing dev flags system (Feature Flags)
Kris Haamerd8591b5 - Backend adminWebsite
feat: Complete dashboard user role display and table header improvements
Kris Haamer3a55a1d - Backend admin
fix: Add user role display in dashboard menu with development bypass
Kris Haamer6d05ce2 - Backend admin
feat: Add user role display in dashboard menu and fix table header corners
Kris Haamer35b98f5 - iOS & Android
Improve: Robustify Crashlytics module import and initialization
seer-by-sentry[bot]f599dba - Backend adminWebsite
fix(chains): resolve build error and complete chain edit functionality
Kris Haamer24c0ad4 - Backend adminWebsite
fix(chains): resolve Clerk authentication issues for chain edit page
Kris Haamerf3797e9 - Backend admin
fix(chains): resolve chain edit page authentication and API calls
Kris Haamer177512e - Backend adminWebsite
fix(chains): resolve permission warning and enable editing in development
Kris Haamere7d34ee - Backend admin
fix(react): add unique key prop to PermissionsTable list items
Kris Haamer19160ad - Website
fix(admin): simplify permissions system with server-side Directus calls
Kris Haamer9b1824d - Backend adminWebsite
feat(admin): implement secure API proxy for Directus permissions
Kris Haamerd5db9e3 - Website
Fix permissions
Kris Haamer16cde00 - Website
Add backups
Kris Haamer965fda6 - Website
Create front-end-admin-roles.md
Kris Haamerd401a5c - iOS & Android
Try to remove duplicate targets
Kris Haamerabe6481 - iOS & Android
Add iOS App Clip target and configuration
Kris Haamere4999cf - iOS & Android
Fix id and bump version
Kris Haamere2d63a0 - iOS & Android
Prioritize Directus token and attach owner
Kris Haamer0e338ee - Website
Update appIDs in apple-app-site-association
Kris Haamerf8342a9 - iOS & Android
Add applinks:next.wifi.ee to entitlements
Kris Haamerb6bd725 - iOS & Android
feat: redesign Suggest WiFi Area feature
Kris Haamere968312 - Website
feat: configure App Clip domain association and Smart App Banners
Kris Haamer252970e - iOS & Android
fix: refine App Clip associated domains to focus on next.wifi.ee and fix signing
Kris Haamereb1326b - iOS & Android
fix: remove unnecessary entitlements causing App Clip signing failure
Kris Haamerf9e0526 - iOS & Android
feat: redesign App Clip for WiFi joining, refine UI headers, and improve Profile/Sidebar layout
Kris Haamer94907a8 - iOS & Android
Fix ReferenceError: getExtraValue and restore SEARCH_DEBOUNCE_MS; consolidate getExtraValue to src/lib/config.js
Kris Haamere44b964 - iOS & Android
Refactor App.js monolith: extract constants, utilities, and components into dedicated files
Kris Haamer205a28e - iOS & Android
Add Sentry replay
Kris Haamerbc68cb6 - iOS & Android
Fix react native bug
Kris Haamer036d925 - iOS & Android
Fix: Safely handle non-array 'areas' in App.js
seer-by-sentry[bot]e8dbf0b - iOS & Android
Improve error reporting robustness and Expo Go compatibility
seer-by-sentry[bot]8c69ccf - iOS & Android
fix(map): resolve search bar crash and keyboard avoidance
Kris Haamer415802a - iOS & Android
More-or-less working
Kris Haamer71c09cc - Website
Update app promo page
Kris Haamerec4c6af - iOS & Android
UI: header, search bar, detail page, filters, score, locales
Kris Haameraec9cf9 - iOS & Android
UI: filters, header, detail page, list spacing
Kris Haamer0f3d4b1
Release 2026.01
January 2026
Through · 214 commits
- iOS & Android
Refresh header and search UI for list/map
Kris Haamer18f8869 - iOS & Android
Move from Swift Sentry to JS Sentry
Kris Haamer95ec1c1 - iOS & Android
Fixes WIFIEE-B WIFIEE-C WIFIEE-A: Add missing SafeAreaView import
Kris Haamer9ac6de9 - iOS & Android
Prepare AnonymousDraftScreen for internationalization
seer-by-sentry[bot]dee4ab7 - iOS & Android
Update all versions
Kris Haamerc186cf5 - iOS & Android
Update App version
Kris Haamer202d599 - iOS & Android
Fix Xcode Cloud build number sync from app.config.js
Kris Haamere439be3 - iOS & Android
Correct build version
Kris Haamer4a6a1e3 - iOS & Android
Add agents md
Kris Haamer6fcbc22 - Website
Ignore Aider
Kris Haamer877f870 - Backend admin
Add delete confirmation
Kris Haamer65f6f16 - Backend admin
Add copy button
Kris Haamer7fdf393 - Website
Add code analysis
Kris Haamere117931 - Backend adminWebsite
Fix image display in dashboard
Kris Haamer675f482 - Website
Fix image display
Kris Haamer7a5e1c2 - Website
Make sure front page images are shown
Kris Haamercffb5ce - Website
Update deps
Kris Haamere3bb40c - iOS & Android
Working version (well at least it runs)
Kris Haamercd73ce6 - iOS & Android
Make a native app clip to achieve < 10mb size
Kris Haamer10ed3ab - iOS & Android
Minimal app clip
Kris Haamer6a7e195 - iOS & Android
Remove expo-updates
Kris Haamer1c4535f - iOS & Android
Change code sign ID
Kris Haamer1cff71a - iOS & Android
Fix crash
Kris Haamerfe8ff36 - iOS & Android
Try to fix a crash
Kris Haamerc597eea - iOS & Android
Add entitlements
Kris Haamer49be5de - iOS & Android
Pods fixes
Kris Haamer3449ef3 - iOS & Android
Pods fixes
Kris Haamer251dcaf - iOS & Android
Pods fixes
Kris Haamer5c0da3b - iOS & Android
Pods fixes
Kris Haamer512d547 - iOS & Android
More pods fixes
Kris Haamer3a6c2e5 - iOS & Android
Pods fixes
Kris Haamerf004650 - Website
Update mobile app landing page
Kris Haamer6dd3b37 - Website
Bookmarks and chains fixes
Kris Haamer1196341 - iOS & Android
Bookmarks and chains fixes
Kris Haamer40bd2d3 - iOS & Android
Attempt to fix pods
Kris Haamerc08d7bb - Backend adminWebsite
Correctly save the address
Kris Haamer034235d - iOS & Android
Try to fix the metadata
Kris Haamer2237c5d - Backend admin
Make sure the address data is saved correctly
Kris Haamerb284039 - iOS & Android
git ignore credentials
Kris Haamer653a73c - iOS & Android
Remove stale credentials
Kris Haamer463eb8e - iOS & Android
Fix build number
Kris Haamer8b26f03 - iOS & Android
Try to re-build app clip
Kris Haamer25e7974 - iOS & Android
Hide search bar on suggest and bookmark pages
Kris Haamerb113da8 - iOS & Android
Add new suggest wifi screen
Kris Haamerdf2797f - iOS & Android
Remove logs
Kris Haamer74c4e29 - iOS & Android
Pods fixes
Kris Haamerabbed75 - iOS & Android
Pods fixes
Kris Haamer5b7753d - iOS & Android
Try more pods fixes
Kris Haamerf786fc2 - iOS & Android
Try to fix pods
Kris Haamerbf83c75 - iOS & Android
App clip failure fix
Kris Haamer90568f3 - iOS & Android
Sentry fixes
Kris Haamer3bb2e80 - iOS & Android
Pod update
Kris Haamer9bb45e3 - iOS & Android
Update pod versions
Kris Haamerae74fa2 - iOS & Android
Remove corepack
Kris Haamerd1084f9 - iOS & Android
Try to fix expo
Kris Haamer90c45e4 - iOS & Android
Attempt to fix packages
Kris Haamer16d750e - iOS & Android
Android fixes
Kris Haamer8b78772 - iOS & Android
Basic support for iOS App Clips
Kris Haamer26176c8 - iOS & Android
Add support for wifi chains
Kris Haamer66f898d - iOS & Android
Android fixes
Kris Haamerf835c81 - iOS & Android
Android setup
Kris Haamerfbfb74b - iOS & Android
Android fixes
Kris Haamerf401f5e - iOS & Android
Add Google maps address editing
Kris Haamer53ac552 - iOS & Android
Make sure save button is visible with an open keyboard
Kris Haamer9474e52 - Website
Layout fixes
Kris Haamerd7e4cd2 - Backend adminWebsite
Update image handling
Kris Haamer9679a91 - iOS & Android
Try embedded search bar
Kris Haamerca86c66 - Website
Update env
Kris Haamerd002045 - iOS & Android
Update env
Kris Haamerd164f53 - iOS & Android
Better resemble beta 55
Kris Haamer758bc01 - iOS & Android
Sync bookmarks
Kris Haamer8fbadb3 - Website
Sync bookmarks across devices
Kris Haamer569b6fa - Backend admin
Update tags page
Kris Haamer24ce055 - Backend admin
Update roles page
Kris Haamer5e2184e - Backend adminWebsite
Replace custom sesssions support with Clerk
Kris Haamerf947f15 - iOS & Android
Try to fix beta again
Kris Haamerc7057da - iOS & Android
Try to fix beta install again
Kris Haamer717b499 - Backend adminWebsite
Dashboard fixes
Kris Haamer92a6f81 - iOS & Android
Another try at Beta 55 fix
Kris Haamerf9456e3 - iOS & Android
Try to fix Beta 55 update
Kris Haamer01a567f - iOS & Android
Update to Expo 55 beta
Kris Haamerdf1e4bc - iOS & Android
Login updates
Kris Haamerbe330f8 - Backend adminWebsite
Admin dashboard updates
Kris Haamerf9c413f - Backend adminWebsite
Admin dashboard fixes
Kris Haamer8794c36 - Backend admin
Reorganize dashboard menu
Kris Haamer9277345 - Backend adminWebsite
Admin dashboard updates
Kris Haamera52bdee - Website
Update the registration screen
Kris Haamer41caf4c - Website
Update layout
Kris Haamer76dc26f - Website
Try to show tags
Kris Haamer4bdcaa9 - Website
Fix data saving
Kris Haamer0f81865 - iOS & Android
Fix data saving
Kris Haamere44f30c - Website
Restore old layout
Kris Haamere9d9392 - iOS & Android
Clerk login
Kris Haamer329394d - Website
Update registration screen
Kris Haamerbc548b2 - Website
Test for env mismatch
Kris Haamer4b48aa2 - iOS & Android
Clerk login fixes
Kris Haamerd093ff2 - Website
Clean up the menu
Kris Haamerca54faa - Website
Try to add multi-session support
Kris Haamer5022ee4 - iOS & Android
Safer key handling
Kris Haamer5dc35c9 - iOS & Android
Try to fix Clerk auth
Kris Haamera1ace16 - Website
Try Clerk localization
Kris Haamer6f8738a - Website
Try to fix login
Kris Haamerca11838 - Website
Try another approach to auth
Kris Haamer2e6c18f - Website
Skip auth during build
Kris Haamerf2330aa - Website
Try to correctly implement Clerk
Kris Haamer738421f - Website
Update deps
Kris Haamer205e33d - Website
Towards consistent auth
Kris Haamer3f533cf - Backend adminWebsite
Logout and auth fixes
Kris Haamerf5e0dc5 - Website
Move default login template
Kris Haamera0cf869 - Website
Add a catch-all page for login
Kris Haamer07cb545 - Website
Update deps
Kris Haamer46ac182 - Website
Use proxy.ts with Clerk
Kris Haamer20b024b - Website
Add Clerk Auth
Kris Haamer51c2810 - iOS & Android
Add Clerk Auth
Kris Haamer38aa50d - iOS & Android
Make sure the debug view is visible
Kris Haamer95c0f61 - iOS & Android
Get rid of default Google provider
Kris Haamerf429c87 - iOS & Android
Try to to login with token instead of session
Kris Haamer021728b - iOS & Android
Fix ReferenceError
Kris Haamer05efb4d - iOS & Android
More login fixes
Kris Haamere3437d3 - iOS & Android
Try to fix login based on logged data
Kris Haamer6f8aea8 - iOS & Android
Sentry is loading; try to get better data
Kris Haamer312b276 - iOS & Android
Fix a ReferenceError
Kris Haamerad04630 - iOS & Android
Try to get Sentry working
Kris Haamer310ec1a - iOS & Android
Force https connections
Kris Haamera8995e6 - iOS & Android
Update logging
Kris Haamer553c3bb - iOS & Android
Set up Sentry
Kris Haamerfc0009b - iOS & Android
Add more logging
Kris Haamer954d2bf - iOS & Android
Add better diagnostics for the login flow
Kris Haamer87d25c6 - iOS & Android
Try longer timeout before login fails
Kris Haamer9f48940 - iOS & Android
Another try at Google login fix
Kris Haamer1731f10 - iOS & Android
Try a another approach to login
Kris Haamerc4240e0 - iOS & Android
Add analytics
Kris Haamer7982725 - iOS & Android
Try to fix pod
Kris Haamerdae5161 - iOS & Android
Try a pod fix
Kris Haamer7e5f709 - iOS & Android
Add logs to find login issues
Kris Haamerff7d0ee - iOS & Android
Another approach to login on iOS
Kris Haamer8bcd8a0 - iOS & Android
Try to fix Google login
Kris Haamerb8ad631 - iOS & Android
Improve Directus auth handling and token expiry logic
Kris Haamer0866bc6 - iOS & Android
Add profile screen with authentication and logout
Kris Haamer77ef764 - iOS & Android
Add expo-web-browser dependency and refactor import
Kris Haamera3e61d2 - iOS & Android
Hide search button when search is open
Kris Haamered3443a - iOS & Android
Improve image picker UX and add Google token login
Kris Haamerc45967b - iOS & Android
Fix search
Kris Haamerd88b120 - iOS & Android
Update styles and add Google Maps API key config
Kris Haamer33589b7 - iOS & Android
Improve SQLite init and transaction safety
Kris Haamere68d2ee - iOS & Android
Remove unused logs
Kris Haamer3f68fb8 - iOS & Android
Refactor CI scripts and improve pod install logic
Kris Haamer03b3521 - iOS & Android
Comment out Ruby and CocoaPods steps in CI post-clone
Kris Haamerd85f121 - iOS & Android
Refactor iOS pod install to use Expo prebuild
Kris Haamer1e7cd65 - iOS & Android
fix: Re-enable ci_pre_xcodebuild.sh for DIAGNOSTICS only
Kris Haamer33a9591 - iOS & Android
fix: Explicitly link Podfile to wifimobile.xcodeproj
Kris Haamer87dec6e - iOS & Android
fix: Remove packageManager field and enhance CI debug logging
Kris Haamerbabab35 - iOS & Android
Remove unused logs
Kris Haamer249f337 - iOS & Android
fix: Disable ci_pre_xcodebuild.sh to prevent build conflicts
Kris Haamer09a587c - iOS & Android
fix: Deep clean workspace and fix Pods permissions in CI
Kris Haamer0bf4f32 - iOS & Android
fix: Simplify CI environment and add robust pod install logging
Kris Haamer250915b - iOS & Android
fix: Correct project naming and force clean CI build
Kris Haamerae13d53 - iOS & Android
Remove unused logs
Kris Haamer8161345 - iOS & Android
Add CI wrapper scripts for post-clone and pre-xcodebuild
Kris Haamer37a4f43 - iOS & Android
Remove unused logs
Kris Haamerc60160f - iOS & Android
Refactor CI scripts for improved reliability and pod install checks
Kris Haamer0bf7978 - iOS & Android
fix: Force clean build in CI script
Kris Haameraed5eca - iOS & Android
fix: Delete stale Podfile.lock to force regeneration on CI
Kris Haamerd3081d8 - iOS & Android
Remove unused logs
Kris Haamer8959d08 - iOS & Android
fix: Rename iOS project back to wifimobile for Xcode Cloud compatibility
Kris Haamer6f5f076 - iOS & Android
fix: Regenerate iOS project without pnpm symlink paths
Kris Haamerf6269b9 - iOS & Android
Delete unused logs
Kris Haamer49a5ec0 - iOS & Android
fix: Switch from pnpm to npm for Xcode Cloud CI
Kris Haamerefd1dda - iOS & Android
fix: Remove stale Podfile.lock with pnpm symlink paths
Kris Haamer1b6da6e - iOS & Android
Delete unused logs
Kris Haamereeb086f - iOS & Android
fix: Configure pnpm with hoisted node_modules for React Native/Expo
Kris Haamer8c5297a - iOS & Android
Remove unused logs
Kris Haamer6cb6f11 - iOS & Android
fix: Use direct gem install for CocoaPods instead of bundler
Kris Haamer7536c05 - iOS & Android
fix: Install Node.js via Homebrew on Xcode Cloud
Kris Haameraf14907 - iOS & Android
Organize logs
Kris Haamerab78e1d - iOS & Android
Fix PNPM version extraction in CI scripts
Kris Haamer7829bb6 - iOS & Android
Improve CI scripts for robust Ruby and pnpm setup
Kris Haamer0785dab - iOS & Android
Add Hermes engine selection to CI and update assets
Kris Haamere3e5401 - iOS & Android
chore: update CI scripts and Xcode scheme for better bootstrapping
Kris Haamer9fe5efe - iOS & Android
Remove obsolete documentation and logs
Kris Haamerbe17b2c - iOS & Android
Update CocoaPods to 1.16.2 and improve Ruby setup in CI
Kris Haamer502c2df - iOS & Android
Update .gitignore for Ruby and Bundler files
Kris Haamerd16b4aa - iOS & Android
Add iOS design tokens documentation
Kris Haamer0a7ca09 - iOS & Android
Retain logs in git
Kris Haamer76dc817 - iOS & Android
Update Podfile.lock for Expo and RNWorklets versions
Kris Haamerb5110e0 - iOS & Android
Refactor ci_post_clone.sh for improved setup and clarity
Kris Haamer0ad2afd - iOS & Android
Add logs
Kris Haamere9e6a71 - iOS & Android
Update ci_post_clone.sh
Kris Haamere95874f - iOS & Android
Refactor pod install logic in CI scripts
Kris Haamerf02820b - iOS & Android
Create ci_post_clone.sh
Kris Haamer6f51bf3 - iOS & Android
Add Gemfile and update CI script for Bundler support
Kris Haamerc2f4821 - iOS & Android
Add CI pre-xcodebuild script and fix AppController usage
Kris Haamerbf2211b - iOS & Android
Fix EXUpdatesAppController singleton access
Kris Haamerb48d5eb - iOS & Android
Update runtimeVersion and reorder handleNavigate
Kris Haamer2cfe922 - iOS & Android
Add iOS native project and startup log overlay
Kris Haamer309ee1b - iOS & Android
Fix activeView state initialization in App.js
Kris Haamer656d416 - iOS & Android
Add ITSAppUsesNonExemptEncryption to iOS config
Kris Haamerfbd24f2 - iOS & Android
Update dependencies and add iOS location usage description
Kris Haameraacc5de - iOS & Android
Improve Android map styling and drawer behavior
Kris Haamer71ecf2d - iOS & Android
Remove index.js and update main entry in package.json
Kris Haamer565e580 - iOS & Android
Update react-native-maps, reanimated, and worklets
Kris Haamerac53c5f - iOS & Android
Downgrade react-native-reanimated and worklets versions
Kris Haamerc06793d - iOS & Android
Add coordinate validation helper and use in map logic
Kris Haamerddef280 - iOS & Android
Refactor map marker filtering logic
Kris Haamer1c9304e - iOS & Android
Improve map marker validation and update dependencies
Kris Haamereb69ce1 - iOS & Android
Improve area coordinate validation for map rendering
Kris Haamer7d21d3b - iOS & Android
Update Expo and related dependencies
Kris Haamer2f403c9 - iOS & Android
Add map category pills and improve iOS search UX
Kris Haamer3b40543 - iOS & Android
Refactor navigation and improve iOS UI for main views
Kris Haamer320b669 - iOS & Android
Add platform-specific design tokens and UI improvements
Kris Haamerb7d49a5 - iOS & Android
Add native drawer and search bar for mobile platforms
Kris Haamer744f177 - iOS & Android
Integrate theme colors into UI components
Kris Haamer336d705 - iOS & Android
Refactor navigation and sidebar UI for improved UX
Kris Haamer0fdb3c4 - iOS & Android
Refactor navigation to tab-based layout, add map API key handling
Kris Haamer8396654
Release 2025.12
December 2025
Through · 147 commits
- Website
Update Next.js and related dependencies
Kris Haamere924ff2 - Website
Update Google OAuth setup and add Directus roles CSV
Kris Haamerd356002 - Website
Update authentication setup docs for redirect URLs
Kris Haamer604e6ab - Website
docs: add authentication environment setup guide
Kris Haamer1e8a643 - Website
Update deps
Kris Haamer4610322 - Backend adminWebsite
Add GET handler for Directus file API and minor fixes
Kris Haamer804eefa - Website
Set default static asset URL to static.wifi.ee
Kris Haamer934e531 - iOS & Android
Add expo-font and update expo-router version
Kris Haamer0cdc8d0 - Website
Update deps
Kris Haamer16a7bb4 - iOS & Android
Add ESLint and Prettier, update Expo and dependencies
Kris Haamer44e3340 - Backend adminWebsite
Add static asset URL support for captive portal posters
Kris Haamerfe7185e - iOS & Android
Add react-native-reanimated and screen transitions, unify map and image upload handling
Kris Haamer8f11833 - Backend admin
Add Environment tab and refactor technical/contact tabs
Kris Haamer68ab497 - Website
Add missing div
Kris Haamer5d3ef43 - Backend adminWebsite
Add WiFi tags management UI and backend
Kris Haamer5129709 - Backend adminWebsite
Add system token support to chain API utilities
Kris Haamerc416624 - Backend adminWebsite
Use system token for chain fetch when editing enabled
Kris Haamer50fb463 - Backend adminWebsite
Improve session hydration and admin role checks
Kris Haamerda57500 - Backend adminWebsite
Add hydrateSessions to refresh user data in sessions
Kris Haamer53110a6 - Website
Add debug log for fallback role fetch in user profile
Kris Haamerb1306a3 - Backend adminWebsite
Show permission details in expanded table rows
Kris Haamer19b4022 - Backend adminWebsite
fix: align roles permissions with directus
Kris Haamer0e39aad - Website
Update deps
Kris Haamer9051a92 - Backend adminWebsite
Add wifi placeholder icon and fix nested link hydration error
Kris Haamer47ccf9f - Backend adminWebsite
fix: prevent empty state flash by handling null chains
Kris Haamer947134d - Backend admin
feat(haldus): revert gallery to single image editor and fix loading hang
Kris Haamercc58da9 - Backend admin
feat: improve wifi chains page loading state with skeleton loader
Kris Haamer4432d66 - Website
fix: correct relative import paths in new components
Kris Haamer1da2457 - Website
feat: add top 10 wifi areas strip and site footer to front page
Kris Haamer0f8f2ae - Website
feat(gallery): add single image fallback and migration scripts
Kris Haamerd3458ef - Backend admin
Fix RolePage session display to show correct role names for all users
Kris Haamereb3a060 - Backend adminWebsite
Fix user session data display and granular permissions table
Kris Haamera7bee44 - Website
fix(chains): allow editors manage wifi chains
Kris Haamer2e45c10 - Website
feat: make chain names clickable on detail pages and add chain search
Kris Haamer212b0a9 - Website
feat: add clickable chain names linking to chain detail page
Kris Haamer6dc71ef - Website
Add role name fallback type to canManageChains permission check
Kris Haameree13dcd - Website
Implement fallback retry for restricted admin_access field
Kris Haamer64b17c8 - Website
Update Supabase JS and adjust Next.js type import
Kris Haamer77c538a - Website
Fix user role fetch caching issue
Kris Haamer6b80651 - Backend admin
Fix status display regression in dashboard cards
Kris Haamer843613b - Website
Add diagnose-token API route for Directus token checks
Kris Haamer7a4000d - Backend adminWebsite
Fix WiFi area status values to match Directus schema and cleanup debug route
Kris Haamer538abdd - Website
Add debug-user API route and enhance role fetching
Kris Haamerdc7615b - Backend adminWebsite
fix(auth): hydrate user session profiles
Kris Haamera83fd25 - Website
fix(api): use session utility to handle token refresh in wifi-areas patch
Kris Haamerfb853ee - Website
fix(auth): stabilize directus session expiry
Kris Haamercdebcc3 - Backend adminWebsite
fix(haldus): merge user data and clarify chain permissions
Kris Haamer53c1d5a - Website
fix(gallery): implement robust multi-strategy fallback for area/folder resolution
Kris Haamer7598c33 - Backend adminWebsite
fix(haldus): hydrate sessions and clarify chain access
Kris Haamer1379e4b - Website
fix(gallery): parse area ID as number for Supabase bigserial comparison
Kris Haamer957c486 - Backend adminWebsite
fix(admin): align session switcher roles
Kris Haamerb7f26da - Backend admin
feat(haldus): add read-only wifi chain access
Kris Haamer4242041 - Website
fix(gallery): use Supabase for files_folder to bypass Directus permission
Kris Haamer3f35d1b - Backend adminWebsite
feat(permissions): add server-side caching for role permissions data
Kris Haamere303ebe - Backend adminWebsite
feat: enhance roles page with granular permissions display per role
Kris Haamer2fcc37d - Website
fix: fetch complete role data (id, name, admin_access) during login and session ingest
Kris Haamer764671f - Backend adminWebsite
feat: add WiFi chains management UI with CRUD operations
Kris Haamer761f768 - Backend admin
feat: add wifi chains menu item for admins
Kris Haamerab94da8 - Backend adminWebsite
fix(admin): fetch roles dynamically from directus
Kris Haamer1e3129a - Website
fix(gallery): fallback to static token for restricted file operations
Kris Haamerb2c9fd4 - Backend admin
fix: resolve WiFi areas loading issue with static token fallback
Kris Haamer9a0ea7c - Website
fix(gallery): fallback to static token when files_folder field is forbidden
Kris Haamerdda3a82 - Backend admin
Refactor admin dashboard to use Skeleton UI and Suspense for faster loading
Kris Haamer68cc0c3 - Backend adminWebsite
fix(auth): harden dashboard fallbacks
Kris Haamer32b8130 - Backend admin
fix(haldus): fallback static token for data fetch
Kris Haamer048eb7d - Backend admin
Less restrictive fetch
Kris Haamer27e2890 - Backend admin
Redesign dashboard with thumbnail cards and draft list
Kris Haamer404c924 - Website
fix: Handle token expiration in gallery API via session utility
Kris Haamer72ab472 - Backend adminWebsite
fix: Resolve gallery loading permissions and improve error handling
Kris Haamer67ecce5 - Backend adminWebsite
fix: correctly display admin permissions and sessions role
Kris Haamer59a8909 - Backend adminWebsite
Fix form auto-submission and token expiration
Kris Haamerc0ec7a3 - Backend adminWebsite
feat: show user permissions on roles page
Kris Haamera70b02b - Backend adminWebsite
feat: Add editable photo gallery to admin dashboard
Kris Haamer8e6ed21 - Backend admin
Refactor New Area form to step-by-step wizard
Kris Haamer19e6fe5 - Backend adminWebsite
Fix Editor role visibility by fetching role data and enforcing fresh profile in admin layout
Kris Haamer24547e4 - Backend admin
refactor(haldus): split DashboardAreaManager into tab components and optimize performance
Kris Haamerd74dc2e - Website
fix: ensure role display never shows UUIDs
Kris Haamer3b54132 - Backend admin
refactor(haldus): extract area editor tabs
Kris Haamerc668445 - Backend admin
perf(haldus): optimize dashboard interactivity and loading
Kris Haamer59ae361 - Website
feat: display user role in session/account switchers
Kris Haamer3fa6148 - Website
fix: avatar fallback for 403 FORBIDDEN errors in user switcher
Kris Haamer4745c2d - Backend admin
feat(haldus): expand create area form with all fields in tabs
Kris Haamerffbad1a - Backend adminWebsite
feat(haldus): translate roles URL to Estonian, improve session handling
Kris Haamerb188ef8 - Website
fix: refresh page after theme change for cross-browser consistency
Kris Haamerb1fb3c4 - Website
Fix SessionSwitcher: display active account in dropdown
Kris Haamer8be6cda - Website
fix(theme): align dark mode with data attribute
Kris Haamere18d4ef - Backend adminWebsite
feat(roles): list all remote sessions
Kris Haamerf12ccd3 - Backend adminWebsite
feat(roles): display remote sessions from other devices
Kris Haamerb8b5a9a - Backend admin
fix(haldus): fix navigation from sub-pages (e.g. /new) in sidebar
Kris Haamerfb23b63 - Backend admin
feat(haldus): improve draft UI and add status changer
Kris Haamera797569 - Website
Fix login page crash: move session preservation logic to middleware
Kris Haamer1058c27 - Backend admin
Improve error logging in HaldusLayout: downgrade 403/401 to warnings
Kris Haamerd0a642f - Website
Fix Server Component crash: remove unsafe cookie set from session.js
Kris Haamerfab4b27 - Website
Fix session switching: enforce active user in middleware
Kris Haamer60ecb30 - Website
Fix random session selection on page refresh
Kris Haamercb02029 - Backend adminWebsite
fix(auth): keep active session stable
Kris Haamer04262ea - Backend adminWebsite
fix(auth): normalize session cookie handling
Kris Haamer24db33d - Website
fix(auth): preserve active session when adding accounts
Kris Haamer9c04c0d - Website
fix(login): respect intent query when adding accounts
Kris Haamer01e4989 - Backend adminWebsite
fix(auth): localize session switcher and store roles
Kris Haamerfac8ab5 - Website
fix(login): allow adding sessions while signed in
Kris Haamer62f4d39 - Backend admin
feat(haldus): add user session switching to roles page
Kris Haamer5218d5c - Website
fix(api): use cookie auth for file uploads to prevent token expiration
Kris Haamer291af6c - Backend admin
fix(haldus): redirect new area form to localized dashboard
Kris Haamerba26d30 - Backend admin
fix(haldus): fix chain poster sync and add optimistic removal
Kris Haamer0140ba5 - Website
fix(api): prefer bearer token even when cookies exist
Kris Haamer93fdbf8 - Backend admin
fix(haldus): optimistically clear captive poster
Kris Haamer33c4dad - Backend admin
feat(haldus): add dedicated new area form
Kris Haamerfd61cd3 - Backend admin
feat(haldus): show poster icon in area list
Kris Haamerae33a14 - Backend admin
fix(chains): ensure poster sync matches chain ids
Kris Haameraa71c24 - Backend admin
feat(chains): allow syncing posters across chain
Kris Haamerf9815be - Website
fix(api): prefer directus cookies over stale bearer tokens
Kris Haamer6e28042 - Backend admin
feat(haldus): highlight add wifi area cta
Kris Haameraa20ff8 - Website
fix(chains): stabilize directus auth in api routes
Kris Haamer50c51ad - Backend adminWebsite
feat(chains): surface wifi chains across dashboard
Kris Haamerda40a60 - Backend admin
fix: Remove duplicate sidebars and add role indicator to roles page
Kris Haamer85d0397 - Backend admin
fix: Use chain_id instead of chain relationship to avoid 403
Kris Haamerbdbb02b - Backend adminWebsite
feat: Add cafe chains functionality
Kris Haamer6cc03ac - Website
fix(captive): allow static token for directus updates
Kris Haamer4fabbec - Website
fix(captive): fallback to supabase for poster lookup
Kris Haamer4fa7871 - Backend admin
fix(captive): hide poster preview when missing
Kris Haamer687bdd1 - Backend adminWebsite
fix(captive): repair poster endpoint and improve ui
Kris Haamer56a5b7c - Website
fix: allow draft areas to access poster.jpg route
Kris Haamerf4381e6 - Backend admin
feat: enhance poster upload UI with drag-and-drop
Kris Haamer57dfca4 - Backend admin
refactor: remove unnecessary Copy Directus URL button
Kris Haamer446501d - Backend adminWebsite
fix: correct database column and stable URL display conditions
Kris Haamer724d99c - Backend adminWebsite
Use stable poster image URL
Kris Haamerd5b7dc2 - Backend adminWebsite
Attempt upload fix
Kris Haamer4bf546c - Backend adminWebsite
feat: optimize dashboard performance and add stable poster URLs
Kris Haamer3e8bcca - Backend adminWebsite
Add ability to create Wi-Fi areas in the admin dashboard
Kris Haameref73b7b - Backend adminWebsite
Fix image permissions and unify dashboard menu
Kris Haamer4aa7f8a - Backend adminWebsite
Fix navigation, layout, and UI pointer issues
Kris Haamera79d532 - Backend adminWebsite
Fix multi-session auth issues, add roles page, and improve UI
Kris Haameree6ce67 - Website
fix(auth): allow multi-account login
Kris Haamere882ae4 - Backend adminWebsite
First attempt at multi-account support
Kris Haamer6e9977d - Backend adminWebsite
fix: support directus session cookies for google login
Kris Haamer25a15ec - iOS & Android
Add Google login screen
Kris Haamer1b57938 - Backend adminWebsite
feat: add roles page, tooltips, area persistence and directus mcp config
Kris Haamer410b717 - iOS & Android
fix: restore login view routing
Kris Haamer3e33f5d - iOS & Android
fix: route login button to full screen
Kris Haamer852ef24 - Backend admin
Fix typo
Kris Haamer37c8743 - iOS & Android
feat: add directus login and editing
Kris Haamer80fbc2d - Backend adminWebsite
feat: add tab persistence, support multiple sessions, and add debug logging
Kris Haamer1a618ee - Website
Logging fix
Kris Haamera32a3e1 - Website
Add logs
Kris Haamerc8f2768 - Website
Config: Set default theme to light
Kris Haamer6007d02 - Backend admin
Fix: Define TAB_CONFIG in DashboardAreaManager to resolve ReferenceError
Kris Haamer0e21af4
Release 2025.11
November 2025
Through · 62 commits
- Backend adminWebsite
fix: dashboard save permissions and improve tabs ui
Kris Haamer9302242 - Backend admin
refactor: merge sidebar menu and fix demo data leak
Kris Haamer6161b67 - Backend admin
Improve Dashboard Layout
Kris Haamera163996 - Backend adminWebsite
feat: redesign wifi areas list, fix dashboard layout, and add advanced settings
Kris Haamer530fda0 - Backend admin
Limit areas to 3
Kris Haamerbb9c5e7 - Backend adminWebsite
More login fixes
Kris Haamerfa072e5 - Backend adminWebsite
Login fixes
Kris Haamerb55c4e5 - Website
More login fixes
Kris Haamer8e2b868 - Backend adminWebsite
More login fixes
Kris Haamer93c90d2 - Backend adminWebsite
Attempt login fix
Kris Haamer57bf060 - Website
feat(auth): add directus username/password login
Kris Haamer7c0a1b3 - iOS & Android
fix: Update service account key path for EAS deployment
Kris Haamer3429221 - iOS & Android
feat: Implement dark mode, i18n, and Expo Router with comprehensive improvements
Kris Haamere354b2b - Website
Document data flows inside the app
Kris Haamer1836ac3 - Backend adminWebsite
Dashboard updates
Kris Haamer68c4eb6 - Website
Debug area listing
Kris Haamer12d7f67 - Backend admin
Filter for showing only wifi areas owned by the current user
Kris Haamerab1788a - Website
Add mobile app screenshots
Kris Haamer9760d6f - Website
feat(mobile-app): update landing page and home CTA for hotspot views
Kris Haamer6ec3036 - Backend adminWebsite
feat(haldus): show current user in dashboard
Kris Haamerf0d8386 - Website
Debug user access
Kris Haamer3d877ad - Website
Debug cookies
Kris Haamer8f258f0 - Website
Add link to mobile app landing page
Kris Haamer0290d79 - Backend adminWebsite
Add a demo area for the front-end admin
Kris Haamer02dc393 - Backend adminWebsite
Front-end admin dashboard improvements
Kris Haamer8ff51cb - iOS & Android
Language updates
Kris Haamerdb4d828 - iOS & Android
Fix translations
Kris Haamer4f43e7e - iOS & Android
Update deps
Kris Haamer2147053 - iOS & Android
Update language selector
Kris Haamer34f3637 - iOS & Android
Add dark mode and i18n
Kris Haamer419dcb0 - Backend adminWebsite
feat: redesign dashboard editing
Kris Haamercc17f22 - Website
feat: add dedicated dashboard route
Kris Haamerc3c4462 - Website
Add DB schema specs
Kris Haamer0764381 - Website
feat: add login flow and nav avatar
Kris Haameraa2f370 - Website
fix: align wifi-areas route with Next 16
Kris Haamerf4a523d - Website
fix: restore Google Maps loader
Kris Haamer83ea1f0 - Website
feat: add dev flags and inline editing
Kris Haamere474215 - Website
feat(database): improve photo upload UX
Kris Haamerd05dd96 - Website
fix(database): async maps loader & queue guard
Kris Haamer711b1f5 - Website
fix(database): proxy wifi submissions and update maps
Kris Haamer8325f9e - Website
feat(database): add suggest area form + image upload proxy
Kris Haamerb17afda - Website
feat(andmebaas): highlight top wifi areas
Kris Haamer99e771c - Website
feat(a11y): improve search, settings menu, and hero imagery
Kris Haamer522b98f - Website
feat(andmebaas): document scoring and stabilize search
Kris Haamer381b278 - Website
Update menu
Kris Haamerf96aad0 - Website
feat(ui): add settings menu and dark mode with sticky header
Kris Haamer4d3b6ad - Website
Update deps
Kris Haamer9670c6d - Website
fix(i18n): stabilize language selector and localized db page
Kris Haamer0f87fa9 - Website
Update deps
Kris Haamere11507f - Website
Update deps
Kris Haamer4899db3 - Website
fix(meta): unblock suspense + og builds
Kris Haamer9d90287 - Website
fix: harden i18n surfaces and sitemap
Kris Haamer2bdf258 - Website
docs: update progress log
Kris Haamerd42d4f3 - Website
feat(i18n): localize English slugs
Kris Haamer24e321e - Website
chore(config): switch to proxy entrypoint
Kris Haamer4daa66a - Website
fix(i18n): remove default locale slug and await headers
Kris Haamerb71d3fa - Website
feat(privacy): add GDPR request flow and consent
Kris Haamerf336cc1 - Website
feat(i18n): add localized routing and metadata
Kris Haameree02fb6 - Website
Update deps
Kris Haamer2394f50 - Website
fix: default estonian language and selector ui
Kris Haamer4b25928 - Website
fix: await cookies api
Kris Haamer7621326 - Website
feat: add english translation and language selector
Kris Haamerfdbe08e
Release 2025.10
October 2025
Through · 36 commits
- Website
Add delete account page
Kris Haamer46fed15 - Website
Add privacy page
Kris Haamer527d0cc - Website
Update deps
Kris Haamerd52e7b5 - iOS & Android
Improve photo upload handling for custom webhook mode
Kris Haamer14d3c7a - iOS & Android
perf(suggest): raise inline photo cap for Flow payloads to ~900KB (1.2M base64 chars) to reduce false ‘too large’ drops
Kris Haamer21c5755 - iOS & Android
feat(suggest): add SSID and Wi‑Fi password fields; map to Directus Items (ssid/password) and Flow; add contact phone field (maps to phone); make password input plain text; update README payload example
Kris Haamer68eeffa - iOS & Android
web/maps/forms: Fix Places v1 on web, Advanced markers, Flow-only submission, and menu UX
Kris Haamereb3b65d - iOS & Android
More padding :)
Kris Haamer4b0926c - iOS & Android
Padding: add left/right padding to Suggest form content; sticky header style already padded inside
Kris Haamerbd0ec74 - iOS & Android
Make lists full width; move padding inside scroll views
Kris Haamerde008cb - iOS & Android
Suggest layout: match bookmarks, no sticky header
Kris Haamerd8322d3 - iOS & Android
Unify list background and remove header separator
Kris Haamerc354340 - iOS & Android
Suggest: inline success state with confetti and CTA
Kris Haamer27c003d - iOS & Android
Polish: search padding, rename bookmarks to Lemmikud, success nav from suggest
Kris Haamerfde8c1a - iOS & Android
Make header truly full width; tighten footer padding
Kris Haamer41e517b - iOS & Android
Compact header in one line + pill-only footer count
Kris Haamerc3bc9ba - iOS & Android
Attach header/footer to screen edges and reduce footer size
Kris Haamerceb053f - iOS & Android
Header/footer attach-to-edge adjustments
Kris Haamer5cb2a5a - iOS & Android
Footer readability + layout fixes
Kris Haamerc0722c9 - iOS & Android
Remove dynamic scroll animation; show results count in footer
Kris Haamer9fc7a37 - iOS & Android
Make global header menu persistent across all pages; remove sidebar remnants and wire Bookmarks into header
Kris Haameref97836 - iOS & Android
Remove sidebar menu; integrate Bookmarks into global header menu; hide Google login UI (code kept)
Kris Haamerfb404e3 - iOS & Android
UX polish: success flow, suggest tabs, global menu
Kris Haamer24b2c51 - iOS & Android
UI and routing polish: remove menu icon in search, always show map/list toggle (with Expo Go handling), fix Suggest page routing and layout, add web routes for sidebar (/, /bookmarks, /login, /suggest), and prevent filter popup clipping; update progress log.
Kris Haamera3bdc53 - iOS & Android
ui(search): lift bottom search above keyboard on iOS/Android using keyboard listeners; remove useSafeAreaInsets hook to avoid provider dependency
Kris Haamer0c96992 - iOS & Android
web(suggest): make /suggest work in mobile browsers; fix TDZ in AnonymousDraftScreen
Kris Haamerec50cb1 - iOS & Android
ui(suggest): add top bar with back and menu buttons so the side menu is accessible from the Suggest page
Kris Haamer39372a8 - iOS & Android
feat(suggest): add long‑press to clear local draft queue; cap inline photo size for webhook payloads and lower picker quality to avoid 413; define Directus draft status and set to 'Draft' for Items API; fix queue flush without photo when too large; UX: open Google login in in‑app browser (expo‑web‑browser) with close button and auth session when redirect set
Kris Haamer5359f6b - iOS & Android
chore(pkg): pin Expo SDK 54 and RN 0.81.5; add @expo/metro-runtime for web
Kris Haamer8185d4e - iOS & Android
feat(suggest): step-by-step wizard, Google Maps address autocomplete, offline queue + auto-flush/backoff, toast messages; map payload for Directus wifi_areas drafts
Kris Haamer76c72b6 - iOS & Android
fix(header/web): inline header menu button, z-order; web uses Link for /suggest
Kris Haamer93c09c1 - iOS & Android
feat(auth): add Directus Google provider alias and remove email invite UI
Kris Haamer342769d - iOS & Android
Update Expo and React Native dependencies
Kris Haameraf43b59 - iOS & Android
Add anonymous WiFi area suggestion feature
Kris Haamer566bd5b - iOS & Android
Web map overhaul + routes + detail map
Kris Haamereb8ee8e - iOS & Android
Add login screen
Kris Haamer293c304
Release 2025.09
September 2025
Through · 72 commits
- Website
andmebaas: show featured captive login image on detail page\n\n- Select captive_portal_poster + captive_redirect_url\n- Build poster URL (fit=contain) via Directus\n- Render section with image and link to captive page
Kris Haamerf4eb2e2 - iOS & Android
web: SEO meta + offline PWA and captive portal UI
Kris Haamer836fcad - iOS & Android
feat(web): add Expo Router + web SQLite shim and configure updates
Kris Haamer1b78577 - iOS & Android
chore(build): pin chalk@4 and add metro-cache for Metro; add dotenv for dynamic app config
Kris Haamerd3de514 - iOS & Android
chore(eas): set projectId, updates URL + runtimeVersion, and pin bundle IDs; add expo-updates plugin
Kris Haamere8d2a55 - iOS & Android
feat(ui): add right-side side menu and personal bookmarks; improve offline sync UX and messaging; combine meta text; polish card/detail bookmark controls
Kris Haamer2b45c83 - iOS & Android
data(scoring): include composite_score in queries and offline mapping for quality-based sorting
Kris Haamer82afc2d - iOS & Android
fix(sqlite): correct upsert placeholder count (20 columns, 20 values)
Kris Haamer75246ee - Website
feat(andmebaas): quality-based sorting and filters; UI and nav improvements; content sanitization\n\n- Default sort by composite quality score (DESC); ASC/DESC toggle with icon\n- Use DB composite_score when available; fallback client scoring\n- Move search next to sort filters; two-column layout with map on desktop\n- Add quality score badge with medals/ranks; remove progress bar; clearer label\n- Update header: keep left text, add concise bullets; trim per request\n- Map popups: strip HTML tags in description\n- Detail page: sanitize and render basic HTML content (whitelist)\n- Main nav: add Andmebaas top-level (desktop), avoid Meist active on /andmebaas, hide Andmebaas in mobile\n- Sorting options reordered; removed default sort option
Kris Haamer782a189 - Website
Add AGENTS.md and clean up reval-cafe media assets
Kris Haamer423cf17 - iOS & Android
Refactor sqlite.js to use expo-sqlite modern async API
Kris Haamer4c35c89 - Website
feat(andmebaas): add sorting controls
Kris Haamerc62bba5 - iOS & Android
docs: add detailed changelog to progress.md; migrate offline layer to SQLite on feat/sqlite-cache; config plugin and deps
Kris Haamer7e61b31 - iOS & Android
feat(sqlite): move offline cache to SQLite (expo-sqlite); add DB helpers; swap AsyncStorage cache; add plugin config; update docs
Kris Haamer3f89472 - iOS & Android
offline: async cache + full sync; UI offline banner + manual sync; synced-count badge; schema update to post_status; resilient minimal queries; remove app.json; bump Expo ~54.0.10; improve .env.example
Kris Haamer3ac8c9d - iOS & Android
Add offline cache and sync for WiFi areas
Kris Haamerdc86076 - Website
Update wifi_areas query to use post_status field
Kris Haameree3ad00 - Website
Redirect WiFi landing pages to /liitu and update nav
Kris Haamer6811320 - Website
Add configurable Directus auth mode for Google login
Kris Haamer8849f30 - Website
Refactor Google login URL construction logic
Kris Haamerff85264 - Website
Update Estonian service descriptions for clarity
Kris Haamerc32b026 - Website
feat(liitu): add alternate landing with oauth
Kris Haamer31e6ec9 - Website
Hide news sections and test legacy poster address
Kris Haamer25f55f2 - Website
Remove redundant info text from EmergencyContactForm
Kris Haamer529fa2c - Website
Update section headings to include 'korrastada'
Kris Haamer662b3a7 - Website
chore: remove terms and privacy pages
Kris Haamerfc13968 - Website
fix(abi): simplify contact ctas
Kris Haamer8647f99 - Website
Improve About dropdown toggle and UI in MainNav
Kris Haamerbae0f67 - Website
feat: enhance wifi database explorer and contact flow
Kris Haamer470652c - iOS & Android
Docs and config
Kris Haamerda32ebc - Website
Fix typos
Kris Haamer5cb08d8 - Website
Fix typo
Kris Haamer88f2ffe - iOS & Android
Add filter menu for nearby WiFi areas
Kris Haamerd2e0f4c - iOS & Android
feat: add wifi area detail view
Kris Haamer578e29f - iOS & Android
Initial commit
Kris Haamer8337eb0 - Website
chore(deps): bump directus sdk and node types
Kris Haamer5bc7f89 - Website
fix(areas): hide unpublished listings
Kris Haamerd21c953 - Website
fix(nav): add mobile menu support
Kris Haamer24804a7 - Website
fix(kutse): redirect to admin login
Kris Haamerdd9cd32 - Website
feat(ui): unify button styling
Kris Haamer9781c53 - Website
fix(directus): correct schema + relax typings to fix Vercel build\n\n- Define Directus regular collection as array in utils/directus/server.ts\n- Use readItems with safe casts in API routes (news, signup) and sitemap\n- Resolve TS 'never' errors for 'wifi_blog_posts' and field typing\n- Ignore *.tsbuildinfo in .gitignore
Kris Haamer465a73a - Website
chore(lint): fix ESLint errors and tidy warnings across app and utils\n\n- Type-safe Directus calls, remove any casts\n- Clean up Supabase helpers and unused imports\n- Fix escape characters and empty blocks\n- Remove unused code and directives
Kris Haamerba9b89f - Website
fix(kutse): wrap useSearchParams in Suspense to satisfy Next 15 CSR bailout
Kris Haamer31319e0 - Website
Delete .meteor directory
Kris Haamerb4d0773 - Website
fix(routes): await params in dynamic routes\n\n- Await params in /andmebaas/[idOrSlug] and /areas/[idOrSlug]\n- Await params in generateMetadata for both routes (Next dynamic APIs)
Kris Haamer9f210ec - Website
feat(avalehed): hero form as primary CTA with anchor link\n\n- Place InviteForm in hero section with subtle card\n- Add bottom CTA arrow linking to #alusta\n- Remove duplicate CTAs for a single clear action\n\nfix(andmebaas): load correct wifi_areas fields\n\n- Remove non-existent image_url from selects\n- Use Directus asset thumbnails from image\n- Update detail pages to match schema\n\nchore(assets): sync public images
Kris Haamer665915e - Website
refactor(areas): unify data access to single wifi_areas table
Kris Haamer5f355c2 - Website
chore(lint): migrate to ESLint flat config and update docs
Kris Haamerc17ac37 - Website
Migrate to eslint
Kris Haamer923746a - Website
Migrate to eslint
Kris Haamereeddaf3 - Website
fix(build,next): Tailwind v4 + PostCSS; await searchParams; Supabase cookie typing\n\n- Use @tailwindcss/postcss in postcss.config.js\n- Switch globals.css to @import "tailwindcss"\n- Simplify tailwind.config.js for v4 (auto content detection)\n- Add @tailwindcss/postcss devDependency and bump tailwindcss v4\n- Await async searchParams in /andmebaas, /uudised, /blog\n- Fix server Supabase client cookieStore typing for Next 15\n- Update Next env types after Next upgrade
Kris Haamer4a6b320 - Website
feat(wifi-avalehed): add Directus-backed signup form and API; embed form in CTA\n\n- Add SignupForm component and /api/signup route using Directus SDK registerUser\n- Assign role post-registration (env DIRECTUS_SIGNUP_ROLE_ID) when token present\n- Embed signup form inside CTA section on wifi-avalehed page\n- Update env example with DIRECTUS_SIGNUP_ROLE_ID
Kris Haamer690e9e2 - Website
feat(andmebaas): move area details under /andmebaas and add prev/next navigation\n\n- Move detail route to app/andmebaas/[idOrSlug]/page.jsx\n- Update links and metadata to /andmebaas\n- Update AreasMap info-window and list links\n- Add prev/next buttons (title-sorted) on detail page
Kris Haamer8ecf103 - Website
feat(uudised): switch to Directus SDK and API
Kris Haamercbe4d1b - Website
feat(seo): add site-wide metadata, Open Graph/Twitter image routes, robots and sitemap; enrich per-page metadata and dynamic OG images; highlight RIA Wi‑Fi standard PDF link
Kris Haamera93815b - Website
feat(wifi-avalehed): add promotional page and CTA nav item
Kris Haamerd64487b - Website
feat: set About as homepage and add database, media pages\n\n- Add /andmebaas with styled hero, fixed-size search, map and card results\n- Replace homepage with About hero, mission, CTA; use founder portrait and Tallinn image\n- Redesign WiFi area detail page with gradient hero, cards, and CTA footer\n- Add /meedia press coverage page\n- Improve header UX: large links, subtle active state\n- Fix SearchBox width and prevent layout jumps
Kris Haamer3a1d681 - Website
Add Intro
Kris Haamer33e1d9d - Website
feat: instant search + Google Maps (clusters, popups, my location)
Kris Haamerc74b9d7 - Website
Show details
Kris Haamer4aa46d2 - Website
chore: remove public directory (migrated to Supabase data)
Kris Haamer763904c - Website
fix: add app/not-found.jsx to satisfy Next build after cleanup
Kris Haamer4b50379 - Website
chore: remove leftover Meteor scripts and settings
Kris Haamere5e3adc - Website
chore(next): remove Meteor-related code and configs; keep only Next.js + Supabase setup
Kris Haamer205dd99 - Website
Fix table select and add logs
Kris Haamer7e60f4c - Website
chore: default Directus base to https://client.wifi.ee when env not set
Kris Haamer72392ca - Website
feat(next): fetch Directus image via Supabase relation (wifi_areas_image_foreign); add NEXT_PUBLIC_DIRECTUS_URL; update pages
Kris Haamer1723de0 - Website
chore: remove unused Mongo helper after Supabase switch
Kris Haamercde4f15 - Website
chore: remove duplicate app/* and next.config files with spaces
Kris Haamer68d6c20 - Website
chore: remove stray files and .env.local; ignore env and .DS_Store
Kris Haamera1e3d68 - Website
feat(next): switch to Supabase; query wifi_areas on index; add Supabase utils and env; remove MongoDB dependency; use pnpm
Kris Haamer1f041dd - Website
feat(next): scaffold Next.js app using pnpm; list hotspots from MongoDB via MONGO_URL; add dynamic SSR; ignore Next outputs
Kris Haamer1ce187b
Release 2022.12
December 2022
Through · 4 commits
Release 2018.03
March 2018
Through · 2 commits
Release 2017.12
December 2017
Through · 3 commits
Release 2017.11
November 2017
Through · 1 commits
- Website
Updates
Kris Haamer9dcaf20
Release 2017.01
January 2017
Through · 1 commits
- Website
Update Meteor
Kris Haamer826afeb
Release 2016.10
October 2016
Through · 1 commits
- Website
Update Meteor
Kris Haamer48ac81f
Release 2016.09
September 2016
Through · 5 commits
Release 2016.08
August 2016
Through · 1 commits
- Website
WiFi.ee 0.1
Kris Haamer1aab590
How this is built
Run pnpm changelog:generate from the wifi-next repo with sibling checkouts of wifi-mobile and wifi-watch under the same parent folder, then commit data/stack-changelog.json.