SPB Git

spb/lou-ka

Public

Lou·Ka — tous les logements à louer du Québec, un seul endroit.

page 1
  1. Fri, Sep 4, 2026 8

    1. feat(fiche): refonte premium mobile-first de la fiche logement (2026-09-04)
      …
      Frontend (frontend/src/fiche/, nouvelle arborescence) : héro prix → adresse →
      résumé → galerie → actions ; Lou-Ka Score (60 % KA Score emplacement + 40 %
      prix vs juste valeur, partiel si une composante manque) ; « En bref »
      déterministe (prix, accessibilité, air, inondation, coûts, TAL, chaleur,
      baisse de prix) ; navigation sticky par sections (scroll-spy) ; Prix et marché
      (juste valeur + histogramme) ; Le logement (grille icône/valeur) ; description
      tronquée + texte original ; inclusions dédoublonnées FR/EN ; grande carte 3D
      Ka Maps avec filtres de lieux (transport, épiceries, pharmacies, commerces,
      écoles, parcs, essence) ; À proximité / Transport en carrousels + bottom sheet ;
      Quartier en KPI compacts + accessibilité en lignes ; KA Scores compacts ;
      Registre des loyers orienté décision (jauge p10–p90, médianes par chambres,
      3 comparables + sheet filtrable) ; coût réel + Hydro ; risque d'inondation
      (statut clair, juridique en accordéon) ; qualité de l'air en tuiles ; essence
      (3 stats, 3 stations, sheet) ; Dossier de l'immeuble en accordéons (historique,
      passeport, gestionnaire, TAL, hiver) ; Sources et méthodologie + fin de fiche.
      Primitives : SectionCard, Accordion, BottomSheet (modale ≥ 900 px), StatTile,
      StatusBadge, Skeleton, états vides/erreur, toast. Données : useFicheData
      (groupe critique au montage, groupe différé à l'approche de la carte).
      Tokens --lk-* scopés (.lk-fiche) : fond #F7F7F5, cartes blanches bord 1 px,
      ombres légères, rayons 10/14/18/22, orange réservé CTA/prix/score. Desktop
      ≥ 1024 : aside sticky (prix, CTA, score, constats, Demander à Ka). CTA sticky
      compact affiché seulement après le héro ; bouton « ✦ Demander à Ka » discret
      branché sur le widget KA Agent existant (contexte de la fiche transmis).
      Header compact sur la fiche (56 px, ticker masqué, favoris + partage,
      connexion en icône sur mobile). Aucun `order` CSS ; scrollIntoView banni de la
      barre de sections (faisait ouvrir la page à 434 px). Anciennes classes
      .fiche/.f-* intactes pour la fiche court terme. 16 anciens composants de fiche
      supprimés (remplacés). check-order.mjs mis à jour + shots.mjs / interactions.mjs.
      
      Backend (additif, rétrocompatible) : poi.py conserve lat/lng des POI (carte) ;
      gaz.py expose lat/lng des stations ; /api/gaz et /api/rdl acceptent `limit`
      (sheets « Voir les N »). vite.config : proxy /api paramétrable (LOUKA_API).
      
      Validé : tsc + vite build, check-order OK (scrollY 0, ordre croissant, sans
      overflow 375→1440), captures Playwright 6 largeurs, sheets/carte/Ka/404,
      fiche sans KA Score. node_modules frontend réinstallés (typescript/esbuild
      tronqués par ka2 le 2026-08-31 pour ENOSPC).
      Simon-Pierre Boucher · 54 files +4,182 −2,266
    2. Simon-Pierre Boucher · 32 files +2,862
    3. Simon-Pierre Boucher · 4 files +187 −38
  2. Sun, Aug 30, 2026 5

  3. Sat, Aug 29, 2026 4

  4. Fri, Aug 28, 2026 2

    1. Simon-Pierre Boucher · 11 files +40 −9
  5. Thu, Aug 27, 2026 11

    1. feat(scraping): migration Firecrawl -> Scrapfly des 6 connecteurs a rendu JS
      …
      - base.get_rendered : rendu via Scrapfly (render_js+ASP), wait_ms = ancien
        waitFor Firecrawl, retry x3 sur contenu vide puis echec honnete ;
        FIRECRAWL_API retire du socle
      - aalto/osgoode/brigil/realstar : _rendered delegue au socle (retry centralise)
      - realstar/osgoode/brigil : selecteur li[class*=property-box] — le rendu
        Scrapfly capture le DOM avant que le JS RentCafe ne revele les cartes
        (property-box-hidden), qui sont completes ; filtre QC en aval inchange
      - via_capitale : CARD_SPLIT accepte les hrefs relatifs (serialisation
        Scrapfly) en plus des absolus (fixtures Firecrawl historiques)
      - fixtures record/replay : get_rendered accepte wait_ms (cle de rejeu = URL)
      - fixtures re-enregistrees via Scrapfly : aalto 24, osgoode 4, brigil 12,
        realstar 9 ; rejeu test_connectors 10/10
      - gen_connector_docs : backend get_rendered documente Scrapfly (ex-Firecrawl)
      
      Valide en live : aalto 24, lynk_olymbec 4, via_capitale page 1 = 34 cartes.
      Lou-Ka ne depend plus de FIRECRAWL_API_KEY.
      Simon-Pierre Boucher · 133 files +230,045 −602
    2. pause(ontario): expansion ON suspendue temporairement — rien d'effacé
      …
      - .env : LOUKA_ONTARIO=1 commenté (les 56 connecteurs gatés sortent du registre)
      - sources.json : 65 sources ON -> status pause + note_pause
      - quality.evaluate : quarantaine pause-ontario (published=0) pour province=ON
        tant que le flag n'est pas reposé ; province ajoutée au backfill et à
        l'évaluation à l'ingestion (db.py)
      - docs/ONTARIO-PAUSE.md : quoi/pourquoi/comment réactiver
      
      5 851 annonces ON conservées en base, dépubliées. QC intact (62 412 publiées).
      Simon-Pierre Boucher · 4 files +228 −133
    3. Simon-Pierre Boucher · 1 file
    4. Simon-Pierre Boucher · 1 file +1 −1
    5. feat(ontario): vague 2 — 45 nouvelles sources ON (+2 964 annonces, ~5 800 ON au total)
      …
      7 rsgw_* (passerelle website-gateway : sterlingkaramar, drewlo, fitzrovia,
      bgo, panoramic, drakepm, arcanos), 12 lift_*, 5 rc_*, 11 bld_* (Buildium),
      1 apf_* (AppFolio), 9 sur mesure (starlight, medallion, kggroup,
      qresidential, riocan, sifton, accommod8u, greenrock, westdale).
      Anti-doublons : exclude_import_ids (Greenrock via sterlingkaramar) +
      sterlingkaramar.com dans _SKIP_DOMAINS de starlight. sources.json : 503
      entrées, champ connector harmonisé. Tout gaté LOUKA_ONTARIO=1.
      
      Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
      Simon-Pierre Boucher · 19 files +4,901 −48
    6. feat(ontario): activation — les 20 sources ON passent à « actif » dans sources.json
      …
      LOUKA_ONTARIO=1 posé dans le .env de prod (non versionné). Première
      synchronisation faite : 2 828 annonces ON en base (2 624 publiées) sur
      30 sources — Toronto 685, London 219, Ottawa 214, Hamilton 154, Sarnia 117,
      Kitchener 117… Villes ON exposées automatiquement par /api/facets.
      
      Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
      Simon-Pierre Boucher · 1 file +20 −20
    7. feat(ontario): 20 nouveaux connecteurs ON + socle province, tout gaté LOUKA_ONTARIO=1 (zéro impact prod QC)
      …
      Socle : Listing.province + bbox coordonnées ON (schema.py), migration
      province TEXT DEFAULT 'QC' (db.py), géocodage ON via Nominatim sans repli
      Adresses Québec (geocode.py), townhouse/bungalow résidentiels (quality.py).
      
      Nouveaux connecteurs (disabled hors gate) : liftsystem.py (13 clients
      dynamiques lift_* via data/liftsystem_clients.json — Greenwin, Park,
      Williams & McDaniel, Briarlane, DMS, Signet, Shelter, York, Terracorp,
      RentSarnia, First North, TVM, Urbandale ; 922 propriétés résidentielles),
      rentcafe.py (4 clients rc_* via data/rentcafe_clients.json — Effort Trust,
      Osgoode ON, GWLRA, O'Shanter ; Scrapfly ASP), homestead.py + skyline.py
      (passerelle publique website-gateway.rentsync.com), killam.py (blob
      #available_prop RentCafe).
      
      Connecteurs QC élargis sous gate (uids QC vérifiés identiques hors gate) :
      capreit +189, boardwalk +74, minto +81, hazelview +14, interrent +83,
      morguard +258, akelius +95, metcap +60, realstar +12, cogir +38,
      centurion +52 annonces ON potentielles.
      
      sources.json : +19 entrées ON (status inactif) + skyline recyclé.
      Registre : 365 connecteurs sans gate (inchangé), 385 avec LOUKA_ONTARIO=1.
      Potentiel à l'activation : ~1 200-1 600 annonces ON (~30 sources).
      
      Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
      Simon-Pierre Boucher · 23 files +3,239 −279
  6. Wed, Aug 26, 2026 8

    1. docs: gestion-immobiliere-ontario.md — cartographie ~240 gestionnaires ON (recherche pré-expansion, rien d'implémenté)
      …
      8 régions (Toronto, GTA, Ottawa/Est, Hamilton-Niagara, KW-Guelph, London/SW, Nord, Centre), multi-régions, leviers plateformes (LiftSystem/RentCafe/Buildium/AppFolio) et annexe exclusions (agrégateurs écartés par principe).
      
      Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
      Simon-Pierre Boucher · 1 file +528
    2. Simon-Pierre Boucher · 1 file +8 −2
    3. Simon-Pierre Boucher · 1 file +7 −2
    4. Simon-Pierre Boucher · 1 file +5 −1
    5. Mode carte Ka Map System v2 — expérience immersive plein viewport
      …
      - MapSearch réécrit autour de KaMapShell : mobile edge-to-edge + bottom sheet
        de résultats à 3 crans, desktop split liste|carte redimensionnable (ratio
        persisté) avec carte quasi plein écran d un clic
      - Toolbar unifiée (zoom, 3D, dessiner, me localiser) au lieu des pilules
        flottantes ; « Rechercher dans cette zone » contextuel
      - Mode dessin temporaire avec CTA « N logements dans cette zone »
      - Fiche contextuelle v2 : photo, prix, favori, swipe/chevrons entre voisines
        (remplace le carrousel mobile)
      - Thème markers v2 : pilules off-white/encre premium, orange réservé au
        « sous le marché » et à la sélection ; clusters légers à anneau orange
        avec loyer moyen sous la bulle
      - Home : vue carte mémorisée dans l URL, feuille de filtres en modale
        au-dessus du mode carte (desktop), widget Ka Agent masqué en mode carte
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher · 4 files +441 −361
  7. Tue, Aug 25, 2026 2

    1. Simon-Pierre Boucher · 2 files
Menu

Theme