This website requires JavaScript.
63909c8caf
feat: Marktchancen — source links, KI-Kontaktdaten, portfolio match, Anschreiben
Benjamin Sutter and Claude Sonnet 4.6
2026-05-24 23:32:42 +02:00
d8ff380d6e
feat: merge Markt-Leads + Markt Intelligence → Marktchancen
Benjamin Sutter and Claude Sonnet 4.6
2026-05-24 23:22:18 +02:00
81d66d24a9
feat: hide Marktsignale tab on Inserate detail drawer — direct listings have no market signal data
Benjamin Sutter and Claude Sonnet 4.6
2026-05-24 23:14:29 +02:00
e597e81ff5
feat: hide Matchability tab on Inserate detail drawer
Benjamin Sutter and Claude Sonnet 4.6
2026-05-24 23:13:50 +02:00
d2af8664f4
fix: KPI card counts match feed — exclusive buckets + filter reset on click
Benjamin Sutter and Claude Sonnet 4.6
2026-05-24 23:12:08 +02:00
cd220ed282
feat: Suchabo inline contact flow — chip opens need detail + OfferWizard
Benjamin Sutter and Claude Sonnet 4.6
2026-05-24 23:08:41 +02:00
a9ee53f185
feat: Inserate — edit drawer + Suchabo match count per listing
Benjamin Sutter and Claude Sonnet 4.6
2026-05-24 22:54:06 +02:00
fe8444c1d3
feat: add 6 mock direct listings (sourceType DIRECT) for Inserate page
Benjamin Sutter and Claude Sonnet 4.6
2026-05-24 22:47:12 +02:00
453f2b1982
refactor: merge nav — rename to Inserate, remove Neues Inserat sidebar entry
Benjamin Sutter and Claude Sonnet 4.6
2026-05-24 22:45:14 +02:00
d804d1c923
feat: Reminder Manager UX — timeline-first grouped layout
Benjamin Sutter and Claude Sonnet 4.6
2026-05-24 22:42:37 +02:00
a9e038a64f
feat: Marktsignale KPI panel with adjustable radius (5/10/15/20 km)
Benjamin Sutter and Claude Sonnet 4.6
2026-05-24 22:28:04 +02:00
61a26d00a7
feat: Mietvertrag-Mock für 50 % der Objekte (URL + Bezeichnung)
Benjamin Sutter and Claude Sonnet 4.6
2026-05-24 22:19:37 +02:00
f2edc3b2ef
feat: Mietvertrag hinterlegen pro Objekt (Link + Bezeichnung)
Benjamin Sutter and Claude Sonnet 4.6
2026-05-24 22:18:02 +02:00
e95490eb72
feat: Grundriss-Feature, Listenansicht mit Bildern, Gewerbe-Label, Image-Pool
Benjamin Sutter and Claude Sonnet 4.6
2026-05-24 22:12:43 +02:00
3ab6eeccf2
fix: demand Anfragen page shows own sent inquiries (demand perspective)
Benjamin Sutter and Claude Sonnet 4.6
2026-05-24 18:07:59 +02:00
128d28af8d
feat: in-memory inquiry flow — send from card, pipeline, and detail
Benjamin Sutter and Claude Sonnet 4.6
2026-05-24 18:00:46 +02:00
9df5d285f5
fix: remove hidden score modifiers + fix Zürich auto-inference false positive
Benjamin Sutter and Claude Sonnet 4.6
2026-05-24 17:33:55 +02:00
609a3634bd
feat: remove EXTERNAL_MARKET result type entirely
Benjamin Sutter and Claude Sonnet 4.6
2026-05-24 17:28:42 +02:00
11de05025c
fix: merge EXTERNAL_MARKET into Verifiziertes Objekt
Benjamin Sutter and Claude Sonnet 4.6
2026-05-24 17:18:33 +02:00
99c26b5464
feat: Decision Intelligence simplification pass
Benjamin Sutter and Claude Sonnet 4.6
2026-05-24 17:09:12 +02:00
58a0a05eff
test: integration coverage for stores, services, MockAIService, and hooks
Benjamin Sutter and Claude Sonnet 4.6
2026-05-24 16:55:02 +02:00
e1f4beb898
refactor: architecture compliance pass — DS tokens, hook boundary, god component split, AI hardening
Benjamin Sutter and Claude Sonnet 4.6
2026-05-24 16:10:39 +02:00
e36c5bc979
refactor(arch): eliminate direct service calls in components — route all through hooks
Benjamin Sutter and Claude Sonnet 4.6
2026-05-24 14:56:32 +02:00
f487435a94
fix: correct rent unit labels and monthly/annual calculation consistency
Benjamin Sutter and Claude Sonnet 4.6
2026-05-24 14:35:20 +02:00
d4171fe9b5
feat(ai): observability tracing + improved prompt templates
Benjamin Sutter and Claude Sonnet 4.6
2026-05-24 14:18:42 +02:00
7934da7669
feat: design token system — DS_TEXT/DS_SURFACE/DS_BORDER + 237 hex migrations
Benjamin Sutter and Claude Sonnet 4.6
2026-05-24 14:05:52 +02:00
e62391af66
feat: Zod AI validation, AIProvenance governance, fix tests (154 green)
Benjamin Sutter and Claude Sonnet 4.6
2026-05-24 13:44:46 +02:00
8f1db31683
refactor: GenericBadge + Provider-Isolation
Benjamin Sutter and Claude Sonnet 4.6
2026-05-24 13:13:34 +02:00
7f090a48ff
refactor: replace hardcoded hex colors with design tokens across priority components
Benjamin Sutter and Claude Sonnet 4.6
2026-05-24 13:02:01 +02:00
c972392b78
feat: OpenRouter-ready AI service — all 11 methods implemented
Benjamin Sutter and Claude Sonnet 4.6
2026-05-24 12:43:51 +02:00
723f553939
refactor: move PipelineItems from Zustand to Provider→Service→React Query
Benjamin Sutter and Claude Sonnet 4.6
2026-05-24 12:32:57 +02:00
0582031930
test: Vitest test infrastructure + 52 unit tests for matching engine
Benjamin Sutter and Claude Sonnet 4.6
2026-05-24 02:33:12 +02:00
713ef3ec08
docs: engineering governance — CLAUDE.md, ARCHITECTURE.md, CODE_REVIEW_CHECKLIST.md
Benjamin Sutter and Claude Sonnet 4.6
2026-05-24 02:10:30 +02:00
ad84fe8289
fix: rename compareUtils.ts → compareUtils.tsx (contains JSX)
Benjamin Sutter and Claude Sonnet 4.6
2026-05-24 01:54:46 +02:00
ce67da73b3
perf: memoize expensive list computations + memo on grid/list items
Benjamin Sutter and Claude Sonnet 4.6
2026-05-24 01:53:03 +02:00
86bdf142b4
refactor: consolidate duplicated UI score/color/badge logic into lib/
Benjamin Sutter and Claude Sonnet 4.6
2026-05-24 01:47:08 +02:00
5d53f35dea
refactor(state): clean layoutStore, add selectors, centralise STALE constants
Benjamin Sutter and Claude Sonnet 4.6
2026-05-24 01:30:44 +02:00
eedee83b49
refactor: extract SignalSourcesSection from FutureAvailabilityContextPanel (314 → 227 lines)
Benjamin Sutter and Claude Sonnet 4.6
2026-05-24 01:18:49 +02:00
01c0f8b06f
refactor: extract helpers from 3 match-detail/match-card components
Benjamin Sutter and Claude Sonnet 4.6
2026-05-24 01:16:32 +02:00
c6055f0611
refactor: extract CompareTableBody from Compare.tsx (441 → 147 lines)
Benjamin Sutter and Claude Sonnet 4.6
2026-05-24 01:13:59 +02:00
a3fc213916
refactor: extract helpers from ReminderDetailDrawer + OfferCreationWizard
Benjamin Sutter and Claude Sonnet 4.6
2026-05-24 01:10:31 +02:00
ee71ecc881
refactor: extract sub-components from PropertyMarketSignalsTab + NegotiationInsightsPanel
Benjamin Sutter and Claude Sonnet 4.6
2026-05-24 01:08:45 +02:00
f0988b7250
refactor: extract constants + mapper from NewListing.tsx (526 → 442 lines)
Benjamin Sutter and Claude Sonnet 4.6
2026-05-24 01:05:57 +02:00
0bacd188d6
refactor: split AppShell, match-detail panels, extract useCompareData
Benjamin Sutter and Claude Sonnet 4.6
2026-05-24 01:00:38 +02:00
ae82d0e6a0
refactor: split PropertyDetail, Anfragen, AISearch god components
Benjamin Sutter and Claude Sonnet 4.6
2026-05-24 00:55:55 +02:00
4d4ea6d2ff
refactor: split PropertyDetailView (998→192 lines) and MatchDetail (464→236 lines)
Benjamin Sutter and Claude Sonnet 4.6
2026-05-24 00:48:13 +02:00
6515acb7f0
feat: unified error handling + AI service modularisation
Benjamin Sutter and Claude Sonnet 4.6
2026-05-24 00:32:01 +02:00
efc72b720e
fix: P0 stabilisation — score modifiers, logout cache clear, provider isolation, mutation error feedback
Benjamin Sutter and Claude Sonnet 4.6
2026-05-24 00:13:14 +02:00
22c195b4a5
refactor: split large page components + taxonomy/HeatBadge/FutureAvailability improvements
Benjamin Sutter and Claude Sonnet 4.6
2026-05-23 23:36:03 +02:00
72e4f08900
fix: Compare→Pipeline flow, pipeline card navigation, remove floating AI button
Benjamin Sutter and Claude Sonnet 4.6
2026-05-22 22:11:29 +02:00
6a6ff7f2e2
feat: Pipeline↔Anfragen integration + Compare→Pipeline + KI stage detection
Benjamin Sutter and Claude Sonnet 4.6
2026-05-22 21:42:21 +02:00
a002597f5b
feat: drag & drop for Pipeline Kanban columns (@dnd-kit)
Benjamin Sutter and Claude Sonnet 4.6
2026-05-22 21:34:00 +02:00
de00f758e9
feat: merge Merkliste into Pipeline (SAVED stage) + Anfragen chat page
Benjamin Sutter and Claude Sonnet 4.6
2026-05-22 21:31:30 +02:00
76f9927c7c
fix: UX polish — score formula, role badges, compare view, page titles
Benjamin Sutter and Claude Sonnet 4.6
2026-05-22 21:05:36 +02:00
9f7062d137
feat: UC-A/B/C demo — 50 mock properties, district scoring, gold/silver cards visible
Benjamin Sutter and Claude Sonnet 4.6
2026-05-22 20:31:30 +02:00
98b4a1146b
feat: soft factor enrichment from Swiss location intelligence
Benjamin Sutter and Claude Sonnet 4.6
2026-05-22 11:04:51 +02:00
f82194ea7f
fix: always show all 9 soft factors in score breakdown
Benjamin Sutter and Claude Sonnet 4.6
2026-05-22 10:21:35 +02:00
030d861ed5
fix: restore WEIGHTING_KEYS import in WeightingEditor
Benjamin Sutter
2026-05-22 10:16:36 +02:00
0de48a14d7
feat: split WeightingEditor into Harte / Weiche Kriterien sections
Benjamin Sutter and Claude Sonnet 4.6
2026-05-22 10:13:46 +02:00
9f877614c1
fix: soft factor scores use 0-1 scale matching the scoring engine
Benjamin Sutter and Claude Sonnet 4.6
2026-05-22 10:11:18 +02:00
955da564a0
fix: invalidate properties cache after listing creation
Benjamin Sutter and Claude Sonnet 4.6
2026-05-21 21:22:34 +02:00
c9324e9cc8
feat: expand NewListing with AI, soft factors, hard facts, images + MyListings manager
Benjamin Sutter and Claude Sonnet 4.6
2026-05-21 21:19:45 +02:00
0dac528f98
fix: remove Quelle & Herkunft panel from demand MatchDetail
Benjamin Sutter and Claude Sonnet 4.6
2026-05-21 21:12:33 +02:00
67d3d06a53
feat: Inserat erstellen — direct listing flow for units and standalone
Benjamin Sutter and Claude Sonnet 4.6
2026-05-21 21:10:41 +02:00
531c88cfb6
fix: weighting sliders in 2-column grid layout
Benjamin Sutter and Claude Sonnet 4.6
2026-05-21 20:59:09 +02:00
ba910806d6
feat: expose all 13 scoring criteria as weighting sliders
Benjamin Sutter and Claude Sonnet 4.6
2026-05-21 20:58:01 +02:00
113274cfc7
fix: remove need selector chip strip from results page
Benjamin Sutter and Claude Sonnet 4.6
2026-05-21 20:51:59 +02:00
d8cce96bd8
fix: hide 'Neue Suche' entries from need selector chips
Benjamin Sutter and Claude Sonnet 4.6
2026-05-21 20:50:22 +02:00
11ecd5d900
fix: need selector on results page + retail budget parsing
Benjamin Sutter and Claude Sonnet 4.6
2026-05-21 20:47:14 +02:00
27c53f3af1
feat: score transparency on all cards + budget parser fix
Benjamin Sutter and Claude Sonnet 4.6
2026-05-21 20:41:46 +02:00
34a4dcfb29
feat: unit-first architecture — floor + street as primary card title
Benjamin Sutter and Claude Sonnet 4.6
2026-05-21 11:19:13 +02:00
a39c6ed200
fix: property-level scoring for multi-unit properties + multi-unit chip
Benjamin Sutter and Claude Sonnet 4.6
2026-05-21 00:30:03 +02:00
e2ec1b1dc9
feat: add 'Zur Einheit →' CTA on all VERIFIED_PORTFOLIO cards
Benjamin Sutter and Claude Sonnet 4.6
2026-05-21 00:17:20 +02:00
69b96f293a
refactor: remove Schattenmarkt from all user-visible UI strings
Benjamin Sutter and Claude Sonnet 4.6
2026-05-21 00:11:35 +02:00
99e99d66c5
feat: unit-level matching architecture — match against Einheiten, not Objekte
Benjamin Sutter and Claude Sonnet 4.6
2026-05-20 20:03:54 +02:00
d902feb6c0
feat: Objekt→Einheit architecture — unit-level pre-market, property detail page, click-through from cards
Benjamin Sutter and Claude Sonnet 4.6
2026-05-20 19:47:59 +02:00
66aabde1dc
fix: synthetic scoring — budget unit mismatch + PRE-MARKET VERIFIED in demand feed
Benjamin Sutter and Claude Sonnet 4.6
2026-05-20 19:29:06 +02:00
dd2eb9be3f
feat: add prop-037 + match-063/064 — PRE-MARKET VERIFIED for Bern Retail search
Benjamin Sutter and Claude Sonnet 4.6
2026-05-20 18:18:12 +02:00
d2d2f5f1bb
feat: enable Pre-Market Matching on 7 more portfolio properties — 10 active signals total
Benjamin Sutter and Claude Sonnet 4.6
2026-05-20 17:59:07 +02:00
8f7372157c
feat: Pre-Market Intelligence UX rework — institutional positioning
Benjamin Sutter and Claude Sonnet 4.6
2026-05-20 17:50:37 +02:00
67c0701bfe
fix: remove EXPANSION fake properties and their matches from mock data
Benjamin Sutter and Claude Sonnet 4.6
2026-05-20 16:10:23 +02:00
0dc04a14c5
fix: MarketLeads zeigt 0 Leads — Provider liest live aus Mock-Daten
Benjamin Sutter and Claude Sonnet 4.6
2026-05-20 16:02:32 +02:00
b0ad6643ff
feat: Future Availability — Logiktrennung Supply/Demand + Markt-Leads
Benjamin Sutter and Claude Sonnet 4.6
2026-05-20 15:56:29 +02:00
5fe15bac62
feat: Future Availability Intelligence — rebrand & card redesign
Benjamin Sutter and Claude Sonnet 4.6
2026-05-20 13:06:16 +02:00
d5a4862a28
feat: redesign Schattenmarkt card & detail view for explainability
Benjamin Sutter and Claude Sonnet 4.6
2026-05-20 12:39:12 +02:00
9f391d17cb
feat: Reminder Manager + Schattenmarkt-Freigabe + mock data overhaul
Benjamin Sutter and Claude Sonnet 4.6
2026-05-20 11:52:24 +02:00
0663757cde
fix: Schattenmarkt bypass source filter + bump external/maison match scores for all tiers
Benjamin Sutter and Claude Sonnet 4.6
2026-05-19 23:10:41 +02:00
3756675b6f
feat: add Maison Work source type, rename ExternalMarket to Direktinserat, hide own portfolio from demand search by default
Benjamin Sutter and Claude Sonnet 4.6
2026-05-19 23:02:05 +02:00
a521155bb2
feat: mix Schattenmarkt into result tiers, add filter toggle
Benjamin Sutter and Claude Sonnet 4.6
2026-05-19 22:36:27 +02:00
b6f65f4763
feat: hide workspace switcher when user has only 1 workspace
Benjamin Sutter and Claude Sonnet 4.6
2026-05-19 20:41:40 +02:00
86051c6f01
feat: workspace tabs as side-by-side segmented control in sidebar
Benjamin Sutter and Claude Sonnet 4.6
2026-05-19 20:40:12 +02:00
315733a423
feat: reduce demo role switcher to Verwaltung + Bürosuche only
Benjamin Sutter and Claude Sonnet 4.6
2026-05-19 20:37:20 +02:00
a36a827564
feat: reduce demo login to Verwaltung + Bürosuche only
Benjamin Sutter and Claude Sonnet 4.6
2026-05-19 20:35:55 +02:00
d15a13e485
feat: remove Administration workspace — keep only Verwaltung + Suche
Benjamin Sutter and Claude Sonnet 4.6
2026-05-19 20:32:41 +02:00
d22e72f945
feat: move Markt Intelligence from Administration to Verwaltung (under Datenpflege)
Benjamin Sutter
2026-05-19 20:28:36 +02:00
f0e58f5f7a
feat: unit-level matching — each floor lettable independently or as bundle
Benjamin Sutter and Claude Sonnet 4.6
2026-05-19 20:24:17 +02:00
7cda66f98a
fix: convert strings with Swiss apostrophes (3'000, 2'500, 1'500) to template literals
Benjamin Sutter
2026-05-19 20:09:54 +02:00
18a7f146b0
fix: replace smart quotes with ASCII quotes in mock data files
Benjamin Sutter
2026-05-19 20:01:29 +02:00
13553f60a0
fix: close spec gaps — delete InquiryStatusBadge, extend match reasons, full field keys
Benjamin Sutter and Claude Sonnet 4.6
2026-05-19 19:57:16 +02:00
b4d398270f
feat: Anfragencenter Parts A–E — read/unread, prep wizard, offer flow, report preview
Benjamin Sutter and Claude Sonnet 4.6
2026-05-19 19:20:13 +02:00