What's new

Version v0.29.4

All versions (94)

v0.1.27

2026-07-30

Changed

  • Il TLS passa al load balancer — proxy.ssl da true a false: l'app serve da dietro apps-lb. kamal-proxy prende i certificati con la sfida HTTP-01 sul proprio host, e con piu' server dietro un bilanciatore la verifica arriva al server sbagliato una volta su due. - Le app mobile puntano a questo host e non fanno certificate pinning (verificato): il cambio di certificato, da quello per-host di kamal-proxy al *.bussolarialessio.me dell'LB, non le tocca. - Nessuna modifica applicativa: forward_headers e' gia' il default con ssl: false, e config.assume_ssl = true fa considerare sicura ogni richiesta.

v0.1.26

2026-07-26

Fixed

  • CLFL-48: la creazione di un Locale (e di Artista/Organizzatore con cover) non si finalizzava — Member::{Venue,Crew,Promoter}Request#to_payload passava l'oggetto ActiveStorage::Attached::One invece del blob, causando Could not find or build blob: expected attachable. Ora passa cover_image.blob.
  • CLFL-47: i link website/social inseriti senza schema (www.sito.com) facevano fallire la creazione di Artisti (e Locali/Organizzatori) con website.invalid. Nuovo concern UrlNormalizable normalizza a https://… prima della validazione (form contatti crew/promoter, info promoter, location venue); gli schemi non-http (javascript:, ecc.) restano rifiutati.

v0.1.25

2026-07-25

Added

  • CLFL-40: foto profilo (fino a 3) per Artisti e Organizzatori. has_many_attached :photos su Crew/Promoter e sui draft, caricabili via wizard (photos[]) e via PATCH profilo entità (crew[photos][]); serializer espone photos: [url]; validazione max 3 + content_type/size. Index crew/promoter con eager loading degli attachment per evitare N+1.

v0.1.24

2026-07-24

Fixed

  • CLFL-37: la creazione di un nuovo Locale (e l'autocomplete indirizzi/città) non mostrava suggerimenti — l'endpoint API GET /api/v1/member/lookups/places non esisteva (404). Aggiunto Api::V1::Member::Lookups::PlacesController (mirror del web) + route. Geo::PlacesAutocompleteService traduce ora address→street_address/route/premise (filtra indirizzi, non POI) mantenendo i primaryType validi di Table B (establishment, ecc.). Sblocca anche l'autocomplete città del profilo.

Removed

  • CLFL-36: rimosso completamente il campo Capienza dai Locali su tutte le superfici — drop colonne DB venues.capacity e member_venue_requests.capacity (migration), serializer, form object, strong params, wizard mobile/web, vista pubblica e i18n.

v0.1.23

2026-07-24

Fixed

  • CLRA-9: l'autocomplete città in registrazione non restituiva suggerimenti — la Places API (New) filtra le città tramite la collection (cities), non il primary type locality. Il service ora normalizza locality→(cities) e logga status+body degli errori Google (prima persi).

v0.1.22

2026-07-23

Fixed

  • CLFL-11: gli URL delle immagini (avatar profilo incluso) usano ora l'host per-ambiente da routes.default_url_options invece di ENV["APP_BASE_URL"] (fallback localhost irraggiungibile dai client mobile). Nuovo helper BlobUrl.for, applicato a tutti i serializer/service immagine.
  • CLFL-25: SubmitCrewService non scartava più i social del wizard "diventa artista" — ora tutti i canali confluiscono in Crews::Crew#social_links (prima la crew nasceva senza social).

Added

  • CLFL-25: il wizard crew raccoglie anche Facebook, Spotify e SoundCloud (colonne su member_crew_requests, form/serializer aggiornati).

v0.1.21

2026-07-10

Added

  • CLFL-21: nuova pagina pubblica /chi-siamo (Website::Legal#about, + /en/chi-siamo) con la sezione istituzionale del progetto (storia, missione, B2B) e voce "Chi siamo" nella navbar. Contenuto i18n it/en. (La voce "Landing page" nel menu dell'app Flutter resta un follow-up separato.)

v0.1.20

2026-07-10

Fixed

  • CLFL-13/15/17/18/20: i serializer Member::{Promoter,Venue,Crew}RequestSerializer espongono ora il campo steps (costante STEPS del modello). L'app Flutter lo richiede nel modello del wizard role-expansion → la sua assenza causava un crash al primo caricamento di "diventa organizzatore/artista/locale". Fix complementare lato app in clubbel-flutter v0.0.10.

v0.1.19

2026-07-10

Fixed

  • CLRA-2: Solid Cache si connette al database cache dedicato (connects_to) e ne carica lo schema — risolto PG::UndefinedTable: relation "solid_cache_entries" does not exist.
  • CLRA-6: estratto l'helper safe_instagram_permalink con test dedicato; stabilizzato il warning Brakeman sul permalink Instagram (allowlist centralizzata).

Security

  • CLRA-8: aggiornate le gemme vulnerabili rilevate da bundler-audit (css_parser, net-imap, websocket-driver).

Changed

  • CLRA-7: asset seed promoter_default.png ottimizzato sotto 2 MB — eliminato lo skip del marker nel seed.
  • CLRA-5: ripuliti warning e pending della suite RSpec.

v0.1.18

2026-07-10

Added

  • Endpoint app-facing GET /api/v1/features/flags per l'espansione ruolo (CLFL-13/17): espone il flag role_expansion_claim_choice (default OFF), che l'app member usa per scegliere tra la schermata "cerca/reclama vs crea" e l'accesso diretto alla creazione. Seed idempotente del flag.