Benjamin Sutter
c75d3c8121
feat: F029 intelligence card system — premium AI-native CRE cards
...
Gold/Silver/Bronze FIFA-style score badges overlaid on location imagery.
List/grid view toggle on Results and Properties pages (persisted in
localStorage). IntelligenceMatchCard for match results grid view;
PropertyIntelligenceCard for property grid view with warm brown theme.
LocationPreview component with Google Maps link. 10 mock properties
enriched with Unsplash building images.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-18 13:25:27 +02:00
Benjamin Sutter
9e7a09f8a2
feat: F027 screen-level decision design — DecisionContextPanel + Properties + Results
...
- Add DecisionContextPanel (src/components/ui): compact decision-framing
strip with question, metric chips, expandable risks/missing data, actions.
Answers: Welche Entscheidung? Welche Daten helfen/fehlen? Welche Risiken?
Welche nächste Aktion?
- Properties.tsx: replace generic listing header with decision frame:
"Welche Objekte sind matchbereit und wo blockieren Datenlücken Matches?"
Surfaces: matchbereit count, critical gaps, low-confidence count, stale
data, missing field names, risk statements. Primary CTA → Datenpflege.
- Results.tsx: add decision frame above result feed:
"Welche Treffer lohnen sich für die Shortlist — welche tragen Risiken?"
Surfaces: strong-match count, result-type breakdown, data-gap count,
future-signal probabilistic risk warning. CTAs → Compare, refine search.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-17 13:56:12 +02:00
Benjamin Sutter
efc406ace9
feat: role-aware UX, market intelligence, score fix & layout scroll
...
- Role-based workspace access: Property Manager gets Supply+Demand,
Operations restricted to Super Admin + Reviewer only
- Root redirect routes each persona to their first workspace
- Match Center: replaced 3-panel with auto-sorted flat list + drawer
- AI Search: unified form with dual-action (Jetzt suchen / Als Suchprofil speichern)
- CompareTray hidden on non-Demand routes; Vergleichen removed from Supply
- LocationIntelligencePanel: city KPIs, rent trends, soft factors, comparables
- NegotiationInsightsPanel: price positioning, active demand, selling arguments
- scoreCalculator: cap hardMatchScore and softFactorScore to max 100
- Layout: add display:flex to overflow:hidden wrappers so inner scroll works
(MatchCenter drawer, MarketIntelligence, SourceMonitoring, SignalPipeline)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-17 00:58:10 +02:00
Benjamin Sutter
65130efca7
feat: F015 shortlist management
...
3-panel Shortlists page with left list, center detail, right decision brief panel. AddToShortlistDialog wired into result feed cards and match detail. Full DRAFT→REVIEW_READY→FINALIZED workflow, AI-generated decision brief draft, duplicate prevention, and compare-view integration.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-16 21:10:06 +02:00
Benjamin Sutter
2753d1717c
feat: F014 compare view — side-by-side decision table with AI summary
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-16 14:28:06 +02:00
Benjamin Sutter
7cf8d8ba72
feat: F012 match detail view
...
Full decision analysis page at /demand/results/:matchId:
- MatchDetailHeader: score, badges, CTA (compare/shortlist), back button
- ExecutiveSummaryPanel: 4-row summary (fit, top reason, tradeoff, next step)
- PropertyOverviewPanel: key facts grid; signal-aware for FUTURE_AVAILABILITY
- NeedAlignmentPanel: comparison table with fit indicators (MATCH/PARTIAL/NO_MATCH)
- ScoreBreakdownPanel: hard/soft scores + modifiers + total (sidebar)
- TradeoffPanel: severity-coded list with mitigation hints
- RiskPanel: risks sorted CRITICAL→LOW with category chips
- MissingInformationPanel: priority-grouped with per-item CTAs
- SourceProvenancePanel: source type, label, URL, freshness
- FutureAvailabilityContextPanel: mandatory disclaimer + signal metadata
- NextActionsPanel: engine-ranked actions + standard actions (sidebar)
- Details button on result cards now navigates to match detail
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-16 13:55:46 +02:00
Benjamin Sutter
307b450807
feat: F010 unified result feed
...
Replace monolithic Results.tsx with decomposed component architecture:
- 8 new components in src/components/results/ (ResultTypeBadge, ResultConfidenceSummary, FeedEmptyState, FeedSkeleton, ResultFeedHeader, ResultFilterBar, UnifiedResultCard, UnifiedResultFeed)
- Reuses existing useUnifiedResults hook and compareStore
- FUTURE_AVAILABILITY cards always display non-dismissable disclaimer
- Filter by result type + sort by score/area/rent
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-16 13:18:58 +02:00
Benjamin Sutter
93b8000d48
feat: F008 AI need builder — full spec compliance (editable criteria, grouped sections, needService.create)
...
- NeedInput: Reset button, Asset-Type Quick Select chips, 3 typed examples
- ExtractedFieldRow: inline edit mode (pencil → TextField, Enter/blur commits)
- CriteriaReviewPanel: 3 grouped sections (Hard Facts, Soft Factors, Must-haves) + AI Assumptions + Missing Information; all 14 criteria fields shown and editable; onCriteriaChange propagates typed edits to parent
- FollowUpPanel: Rückfragen neu generieren button triggers onReparse
- NeedCardPreview: Need Title input, Confidence Summary with progress bar, Missing Critical Fields alert, low-confidence draft label
- AISearch page: editedCriteria state (mutable copy of parse result), handleReparse via generateFollowUpQuestions, handleSave calls needService.create() with full CreateNeedInput mapping, low-confidence → status DRAFT
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-16 12:35:57 +02:00
Benjamin Sutter
73a6a167e0
feat: F008 AI need builder — smart parse, criteria review, follow-up & weighting
...
Domain: ParsedNeedCriteria, FollowUpQuestion, ParseNeedResult, NeedBuilderStep, WEIGHTING_KEYS/LABELS. Services: weightingService (asset-type profiles), aiService extended with parseNeed (keyword extraction mock, 1.4s delay) and generateFollowUpQuestions. Components: NeedBuilderProgress, NeedInput, ConfidenceFieldBadge, ExtractedFieldRow, CriteriaReviewPanel, FollowUpQuestionCard, FollowUpPanel, WeightingEditor, NeedCardPreview, NeedBuilderErrorState. Page: AINeedBuilderPage replaces AISearch with 4-step flow (input → review → weighting → save).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-16 12:21:49 +02:00
Benjamin Sutter
e20e0e9a2e
fix: resolve all MUI v9 TypeScript build errors
...
- Move system props (fontWeight, lineHeight, display, alignItems, etc.) into sx
- Fix Lucide icon color prop (no sx support)
- Merge duplicate sx attributes
- Remove unused variables (location, _needId, v)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-15 10:37:07 +02:00
Benjamin Sutter
39427c4835
Update AI search and compare pages
2026-05-15 00:49:11 +02:00
Benjamin Sutter
9e827c50f9
Initial commit
2026-05-15 00:48:18 +02:00