Repository navigation
Fredy V 30 is finally here - A calmer, cleaner Fredy
This time I spend money on a real human who went over Fredy's design to fix a couple of flaws that were bugging me for quite some time..
Every page has a new look: less colour, less decoration, more room for the listings themselves. Plus a long list of fixes from a full code review.
What's new
- New design, dark and light. Near-black dark mode, neutral off-white light mode
- Simpler sidebar. No more nested groups. Every page is one click away, with counts for listings and searches. Map is its own entry now.
- New overview page. Today's new listings as photo cards, key figures in one row, your searches with a 7-day sparkline, daily trend and portal share.
- Quick filters on the listings page. Active, watch list, applied, no status and inactive are one click away.
- Job cards have a clear frame, so it's obvious which buttons belong to which search.
- Login page reworked: form on the left, photo on the right, no blur or animations.
- Mobile: tabs scroll sideways instead of wrapping into three rows, form fields use the full width, collapsed sections on the listing page show an arrow, and the guided tour no longer covers the button it points at.
- German UI: "Jobs" is now "Suchaufträge", "Dashboard" is now "Übersicht".
Fixes
- A job saved over the API with a broken provider field could crash Fredy. Jobs are now validated, and one broken job no longer stops the run for all others.
- Provider URLs must point to the portal's own domain.
- The job list no longer sends channel credentials (bot tokens, passwords) to users who only use a shared channel.
- Requests to Nominatim, Transitous and Overpass now really time out. Before, one hanging request could stop all scheduled searches until restart.
- Two notification channels of the same type (e.g. two Telegram chats) each get their own message. Before, the first got everything twice and the second nothing.
- Swiss listings show prices in CHF in notifications instead of euros.
- "Delete all filtered" could delete more than the visible list. Fixed in two places.
- A failed detail page no longer drops all new listings of that run.
- Size and room filters are checked again after provider details are loaded.
- Duplicate entries on one result page no longer hide the listing that was just reported.
- Sparkasse: size and rooms were swapped on the first result of every page.
- Financing: a loan that never pays off is no longer shown as affordable, and with a fixed monthly payment the verdict follows the price limits, the same way the listings page shows it. Bremen's property transfer tax updated to 5.5 %.
- After restoring a backup, the app reloads so old values can't be saved over the restored ones.
- After your session runs out, nothing from it stays in the browser. Logging in again takes you back to the same page with the same filters.
- An open tab no longer keeps the session alive forever.
- Login requests are limited to 4 KB, and the login attempt counter can no longer grow without bound.
- Deleting a user whose channels are used by other users' jobs is now refused instead of silently breaking those jobs.
- Listings without a price show up on the map again when no price filter is set.
- Cloning a job no longer brings back an unfinished new job draft.
- Paging quickly through listings, the map or searches no longer shows an older page.
- A setting you just saved can no longer be overwritten by an older cached value.
- Listings without pictures show a drawn placeholder everywhere instead of the old "No image available" image.
- Keyboard focus is visible again on all buttons, switches and checkboxes.
Under the hood
- The map, the listing page and the job editor loads much faster now
- One live-update connection per browser tab instead of up to three.
- Idle MCP sessions are closed after 30 minutes, at most 20 per user.
- Database statements are prepared once and reused.
- Each address is looked up only once per search run.
- The travel times on a listing page are no longer requested again after every click.
- Departure boards in closed map popups stop polling.
- Number fields no longer have up/down arrows. Typing and the arrow keys still work.
- Home addresses for travel times are limited to 20.
Full Changelog: 29.3.0...30.0.0