Commit Graph

1342 Commits

Author SHA1 Message Date
a2ca231e6e feat(messages): add message upload service for file attachments 2026-03-11 17:35:31 +01:00
02ebc7db00 feat(messages): add MessageAttachment model 2026-03-11 17:35:27 +01:00
301606823b feat(messages): add message_attachments migration 2026-03-11 17:35:02 +01:00
446ee1c94a feat(messages): add email notification and in-app notification for replies 2026-03-11 17:33:02 +01:00
c926290a72 feat(messages): use branded email template for message notifications 2026-03-11 17:30:20 +01:00
ce4d659279 feat(messages): add recipient profile preview card on compose form 2026-03-11 17:30:10 +01:00
d64447627a feat(email): add branded message notification email builder 2026-03-11 17:28:50 +01:00
36a7fbc5ea feat(messages): extend user query with company data for recipient preview 2026-03-11 17:28:45 +01:00
a83ca05257 feat(messages): add read receipt indicators in sent box 2026-03-11 17:26:01 +01:00
f21fec134b feat(messages): add email notification hint on compose form 2026-03-11 17:25:43 +01:00
95848daa5c feat(messages): add conditional post-send flash with email notification info 2026-03-11 17:25:04 +01:00
e3980f046f docs: add messaging enhancements implementation plan
19 tasks across 7 chunks covering 6 features:
flash messages, form hints, read receipts,
recipient preview, branded email, file attachments.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 17:18:39 +01:00
ea7e021452 docs: add messaging enhancements design spec
Six incremental improvements: flash confirmation, form hint, recipient
preview, read receipts, branded email, file attachments.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 17:04:10 +01:00
0f8a2d7863 feat: replace recipient dropdown with autocomplete search in compose message
Some checks are pending
NordaBiz Tests / Unit & Integration Tests (push) Waiting to run
NordaBiz Tests / E2E Tests (Playwright) (push) Blocked by required conditions
NordaBiz Tests / Smoke Tests (Production) (push) Blocked by required conditions
NordaBiz Tests / Send Failure Notification (push) Blocked by required conditions
Replace plain <select> dropdown with typeahead autocomplete that filters
users from first character typed. Supports Polish diacritics (NFD
normalization), keyboard navigation, and visual selected-recipient chip.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 16:49:07 +01:00
d6d142feb2 feat: add Privacy Policy and Terms of Service pages
Some checks are pending
NordaBiz Tests / Unit & Integration Tests (push) Waiting to run
NordaBiz Tests / E2E Tests (Playwright) (push) Blocked by required conditions
NordaBiz Tests / Smoke Tests (Production) (push) Blocked by required conditions
NordaBiz Tests / Send Failure Notification (push) Blocked by required conditions
Required for Google OAuth verification to remove "unverified app" warning.
Adds /polityka-prywatnosci and /regulamin routes with Polish legal content,
footer links, and sitemap entries.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 10:55:57 +01:00
6b9b8467b6 fix: add openid email scopes to Google OAuth for account identification
Some checks are pending
NordaBiz Tests / Unit & Integration Tests (push) Waiting to run
NordaBiz Tests / E2E Tests (Playwright) (push) Blocked by required conditions
NordaBiz Tests / Smoke Tests (Production) (push) Blocked by required conditions
NordaBiz Tests / Send Failure Notification (push) Blocked by required conditions
Without email scope, userinfo endpoint returns 401 and account email
cannot be captured during OAuth flow. Added openid+email to both GBP
and Search Console scopes.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 08:26:49 +01:00
555cb99c86 feat: capture and display Google account email for OAuth connections
Some checks are pending
NordaBiz Tests / Unit & Integration Tests (push) Waiting to run
NordaBiz Tests / E2E Tests (Playwright) (push) Blocked by required conditions
NordaBiz Tests / Smoke Tests (Production) (push) Blocked by required conditions
NordaBiz Tests / Send Failure Notification (push) Blocked by required conditions
After token exchange, fetches Google userinfo to save the email and
name of the Google account used for authorization. Displays this info
on the GBP audit page so users know which account to reconnect with.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 07:32:43 +01:00
997009d88c fix: move GBP connection status to top of page with action buttons
Some checks are pending
NordaBiz Tests / Unit & Integration Tests (push) Waiting to run
NordaBiz Tests / E2E Tests (Playwright) (push) Blocked by required conditions
NordaBiz Tests / Smoke Tests (Production) (push) Blocked by required conditions
NordaBiz Tests / Send Failure Notification (push) Blocked by required conditions
Moved the OAuth connection status banner from the middle of the page
to directly below the header for immediate visibility. Added direct
link buttons to /konto/integracje for each state: "Zarządzaj" (active),
"Połącz ponownie" (expired), "Połącz konto" (not connected).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 07:29:06 +01:00
c03a2ad055 feat: add GBP OAuth connection status display to audit page
Some checks are pending
NordaBiz Tests / Unit & Integration Tests (push) Waiting to run
NordaBiz Tests / E2E Tests (Playwright) (push) Blocked by required conditions
NordaBiz Tests / Smoke Tests (Production) (push) Blocked by required conditions
NordaBiz Tests / Send Failure Notification (push) Blocked by required conditions
Shows whether the company has an active Google Business Profile
console connection, with clear status indicators (connected/expired/
not connected) and guidance on how to reconnect via Konto → Integracje.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 07:21:36 +01:00
6732f5da74 fix: improve GBP field cards readability
Some checks are pending
NordaBiz Tests / Unit & Integration Tests (push) Waiting to run
NordaBiz Tests / E2E Tests (Playwright) (push) Blocked by required conditions
NordaBiz Tests / Smoke Tests (Production) (push) Blocked by required conditions
NordaBiz Tests / Send Failure Notification (push) Blocked by required conditions
- Translate English day names to Polish abbreviations (Mon→Pon, etc.)
- Show all 7 days in grid layout instead of 5 + "..."
- Remove technical scoring breakdown formula from reviews card
- Add "zdjęć w profilu" suffix to photos count
- Show categories as styled badges
- Truncate long descriptions at 120 chars

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 07:10:27 +01:00
bca73f0b4f fix: rating distribution histogram showing zeros due to JSONB string keys
Some checks are pending
NordaBiz Tests / Unit & Integration Tests (push) Waiting to run
NordaBiz Tests / E2E Tests (Playwright) (push) Blocked by required conditions
NordaBiz Tests / Smoke Tests (Production) (push) Blocked by required conditions
NordaBiz Tests / Send Failure Notification (push) Blocked by required conditions
JSONB stores dict keys as strings ("5") but template looked up integer keys (5).
Now checks both int and string key variants.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 07:09:16 +01:00
1e5e492dce fix: display hidden GBP data and fix reviews/photos rendering bugs
Some checks are pending
NordaBiz Tests / Unit & Integration Tests (push) Waiting to run
NordaBiz Tests / E2E Tests (Playwright) (push) Blocked by required conditions
NordaBiz Tests / Smoke Tests (Production) (push) Blocked by required conditions
NordaBiz Tests / Send Failure Notification (push) Blocked by required conditions
- Fix google_reviews_data bug: data is dict with 'reviews' key, not a list
  (was always hidden by 'is not mapping' guard)
- Add rating distribution bar chart from Places API review data
- Display google_photos_metadata table (author, dimensions, owner photos)
- Add audit diagnostics footer (source, version, errors)
- Show owner_response_time and keywords on individual GBP reviews
- Add Polish translations for Google Places business types (40+ types)
- Use primary_type_display for human-readable category names

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 07:05:34 +01:00
67c071cf1c fix: remove duplicate opening hours section from GBP audit page
Some checks are pending
NordaBiz Tests / Unit & Integration Tests (push) Waiting to run
NordaBiz Tests / E2E Tests (Playwright) (push) Blocked by required conditions
NordaBiz Tests / Smoke Tests (Production) (push) Blocked by required conditions
NordaBiz Tests / Send Failure Notification (push) Blocked by required conditions
Hours are already displayed in the fields status grid with scoring.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 06:54:01 +01:00
d7f28b7159 fix: replace HTML entities with Unicode chars to prevent Jinja2 escaping
Some checks are pending
NordaBiz Tests / Unit & Integration Tests (push) Waiting to run
NordaBiz Tests / E2E Tests (Playwright) (push) Blocked by required conditions
NordaBiz Tests / Smoke Tests (Production) (push) Blocked by required conditions
NordaBiz Tests / Send Failure Notification (push) Blocked by required conditions
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 06:51:54 +01:00
1fbc9bcb8b feat: add detail button to GBP audit dashboard matching SEO dashboard pattern
Some checks are pending
NordaBiz Tests / Unit & Integration Tests (push) Waiting to run
NordaBiz Tests / E2E Tests (Playwright) (push) Blocked by required conditions
NordaBiz Tests / Smoke Tests (Production) (push) Blocked by required conditions
NordaBiz Tests / Send Failure Notification (push) Blocked by required conditions
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 06:47:00 +01:00
cbb48f2726 feat: enrich GBP audit detail page with comprehensive data display
Some checks are pending
NordaBiz Tests / Unit & Integration Tests (push) Waiting to run
NordaBiz Tests / E2E Tests (Playwright) (push) Blocked by required conditions
NordaBiz Tests / Smoke Tests (Production) (push) Blocked by required conditions
NordaBiz Tests / Send Failure Notification (push) Blocked by required conditions
Add opening hours, business status, Google types, website URL, Place ID,
rating/reviews/photos summary, website tracking indicators, Google attributes,
Places API reviews, smart recommendations engine, and benchmarks comparison
with other Norda Biznes members.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 06:42:43 +01:00
9bb9085810 fix: remove broken now() call in domain expiry template
Some checks are pending
NordaBiz Tests / Unit & Integration Tests (push) Waiting to run
NordaBiz Tests / E2E Tests (Playwright) (push) Blocked by required conditions
NordaBiz Tests / Smoke Tests (Production) (push) Blocked by required conditions
NordaBiz Tests / Send Failure Notification (push) Blocked by required conditions
Jinja2 doesn't have now() available - removed date comparison that
caused TypeError.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 06:15:42 +01:00
b818423669 fix: use direct RDAP servers instead of rdap.org (blocked by Cloudflare)
Some checks are pending
NordaBiz Tests / Unit & Integration Tests (push) Waiting to run
NordaBiz Tests / E2E Tests (Playwright) (push) Blocked by required conditions
NordaBiz Tests / Smoke Tests (Production) (push) Blocked by required conditions
NordaBiz Tests / Send Failure Notification (push) Blocked by required conditions
Maps TLD to native RDAP server: .pl → rdap.dns.pl, .com/.net → Verisign,
.eu → rdap.eu, .de → denic.de. Adds User-Agent header.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 06:14:00 +01:00
3690b4d77e feat: add performance metrics, category benchmarks, and WHOIS domain info
Some checks are pending
NordaBiz Tests / Unit & Integration Tests (push) Waiting to run
NordaBiz Tests / E2E Tests (Playwright) (push) Blocked by required conditions
NordaBiz Tests / Smoke Tests (Production) (push) Blocked by required conditions
NordaBiz Tests / Send Failure Notification (push) Blocked by required conditions
- Speed Index, Time to Interactive, Total Blocking Time from PageSpeed
- Benchmark table: company vs category avg vs all-members avg with arrows
- WHOIS via RDAP: domain registration, expiry, last change, registrar

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 06:09:22 +01:00
04bbf5db18 fix: show OG image link on load failure + add no-referrer policy
Some checks are pending
NordaBiz Tests / Unit & Integration Tests (push) Waiting to run
NordaBiz Tests / E2E Tests (Playwright) (push) Blocked by required conditions
NordaBiz Tests / Smoke Tests (Production) (push) Blocked by required conditions
NordaBiz Tests / Send Failure Notification (push) Blocked by required conditions
When OG image fails to load (hotlink protection, CORS), shows
clickable URL instead of just "Obrazek niedostepny". Adds
referrerpolicy=no-referrer to bypass referer-based hotlink blocking.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 06:02:24 +01:00
fc04604098 fix: guard all JSONB list fields against dict type in SEO detail
Some checks are pending
NordaBiz Tests / Unit & Integration Tests (push) Waiting to run
NordaBiz Tests / E2E Tests (Playwright) (push) Blocked by required conditions
NordaBiz Tests / Smoke Tests (Production) (push) Blocked by required conditions
NordaBiz Tests / Send Failure Notification (push) Blocked by required conditions
Adds 'is not mapping' checks for gsc_top_queries, gsc_top_pages,
and gbp_search_keywords to prevent KeyError on slicing.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 05:59:48 +01:00
d4046f4a65 fix: handle google_reviews_data as dict instead of list
Some checks are pending
NordaBiz Tests / Unit & Integration Tests (push) Waiting to run
NordaBiz Tests / E2E Tests (Playwright) (push) Blocked by required conditions
NordaBiz Tests / Smoke Tests (Production) (push) Blocked by required conditions
NordaBiz Tests / Send Failure Notification (push) Blocked by required conditions
Adds mapping check before slicing to prevent KeyError when
google_reviews_data is a dict instead of a list.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 05:57:10 +01:00
c079bb0f02 feat: improve audit stepper with simulated progress and persistent results
Some checks are pending
NordaBiz Tests / Unit & Integration Tests (push) Waiting to run
NordaBiz Tests / E2E Tests (Playwright) (push) Blocked by required conditions
NordaBiz Tests / Smoke Tests (Production) (push) Blocked by required conditions
NordaBiz Tests / Send Failure Notification (push) Blocked by required conditions
- 7 granular steps instead of 4 (connect, pagespeed, onpage, technical,
  GSC, save, done) - steps advance on timers during API call
- Results stay visible until user clicks "Ukryj" or "Odswiez strone"
- No more auto-reload that hides results
- Error results also stay visible with hide button

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 05:54:25 +01:00
9fa364bfeb feat: replace custom progress with stepper + modals matching dashboard UX
Some checks are pending
NordaBiz Tests / Unit & Integration Tests (push) Waiting to run
NordaBiz Tests / E2E Tests (Playwright) (push) Blocked by required conditions
NordaBiz Tests / Smoke Tests (Production) (push) Blocked by required conditions
NordaBiz Tests / Send Failure Notification (push) Blocked by required conditions
Uses vertical stepper with checkmarks (connect → analyze → save → done),
confirmation modal before audit, info modal for results. Matches the
pattern used in admin_seo_dashboard.html.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 05:50:35 +01:00
51cddebd1f feat: replace system alerts with progress bar for SEO audit
Some checks are pending
NordaBiz Tests / Unit & Integration Tests (push) Waiting to run
NordaBiz Tests / E2E Tests (Playwright) (push) Blocked by required conditions
NordaBiz Tests / Smoke Tests (Production) (push) Blocked by required conditions
NordaBiz Tests / Send Failure Notification (push) Blocked by required conditions
Removes browser alert/confirm dialogs. Adds inline progress bar with
spinner, percentage, status messages and log entries. Auto-reloads
page after successful audit.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 05:46:26 +01:00
89cb997487 feat: add remaining SEO audit fields - OG preview, meta keywords, diagnostics
Some checks are pending
NordaBiz Tests / Unit & Integration Tests (push) Waiting to run
NordaBiz Tests / E2E Tests (Playwright) (push) Blocked by required conditions
NordaBiz Tests / Smoke Tests (Production) (push) Blocked by required conditions
NordaBiz Tests / Send Failure Notification (push) Blocked by required conditions
Adds: H3 count, hreflang, meta keywords, canonical URL, noindex reason,
Open Graph Facebook preview (image + title + description), portfolio,
live chat detection, Google website URL, Google business categories,
audit diagnostics section (source, version, errors).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 05:33:10 +01:00
4839ac251a feat: add hosting company details and server location via IP geolocation
Some checks are pending
NordaBiz Tests / Unit & Integration Tests (push) Waiting to run
NordaBiz Tests / E2E Tests (Playwright) (push) Blocked by required conditions
NordaBiz Tests / Smoke Tests (Production) (push) Blocked by required conditions
NordaBiz Tests / Send Failure Notification (push) Blocked by required conditions
Uses ip-api.com to look up ISP name, organization, city, region,
country and AS number for the hosting IP address.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 05:15:49 +01:00
e38071c321 fix: parse Google opening hours JSONB for readable display
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 05:14:34 +01:00
d7a96e9c37 feat: add remaining data sections to SEO detail view
Some checks are pending
NordaBiz Tests / Unit & Integration Tests (push) Waiting to run
NordaBiz Tests / E2E Tests (Playwright) (push) Blocked by required conditions
NordaBiz Tests / Smoke Tests (Production) (push) Blocked by required conditions
NordaBiz Tests / Send Failure Notification (push) Blocked by required conditions
- Google reviews with text and star ratings (top 5)
- Opening hours from Google Business Profile
- GBP search keywords (how people find this business in Maps)
- GSC top pages (most popular subpages in Google)
- Infrastructure: server IP, software, generator, frameworks,
  HTTP status code, last modification date

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 05:10:46 +01:00
8f96e82161 feat: add complete data sections to SEO detail view
Some checks are pending
NordaBiz Tests / Unit & Integration Tests (push) Waiting to run
NordaBiz Tests / E2E Tests (Playwright) (push) Blocked by required conditions
NordaBiz Tests / Smoke Tests (Production) (push) Blocked by required conditions
NordaBiz Tests / Send Failure Notification (push) Blocked by required conditions
- Content & keywords: word count, content richness, H1 text, AI summary,
  detected services, keywords, structured data types, broken links
- CrUX real user metrics: LCP, FCP, INP, CLS, TTFB with thresholds
- Google Search Console: clicks, impressions, CTR, position, top queries
- GBP details: address, photos, posts, review response rate, Maps link
- GBP statistics: search/maps impressions, phone/web clicks, directions
- Technical extras: SSL expiry, redirect URL, hosting, site author

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 05:03:51 +01:00
b44722fd2c feat: add detailed SEO audit view per company with recommendations
Some checks are pending
NordaBiz Tests / Unit & Integration Tests (push) Waiting to run
NordaBiz Tests / E2E Tests (Playwright) (push) Blocked by required conditions
NordaBiz Tests / Smoke Tests (Production) (push) Blocked by required conditions
NordaBiz Tests / Send Failure Notification (push) Blocked by required conditions
- New /admin/seo/<id> detail page with full audit breakdown
- 4 score cards with visual rings and Polish descriptions
- Recommendations section: critical/warning/info issues with actionable text
- SEO checklist: meta tags, sitemap, robots, structured data, OG tags
- Technical details: SSL, mobile, CWV metrics, security headers
- Google Business Profile section when available
- Add "Szczegoly" button in company table (replaces profile link)
- Add visible column descriptions above table (not hidden tooltips)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 04:54:58 +01:00
bc7b206741 feat: improve SEO dashboard with problem tags and better UX
Some checks are pending
NordaBiz Tests / Unit & Integration Tests (push) Waiting to run
NordaBiz Tests / E2E Tests (Playwright) (push) Blocked by required conditions
NordaBiz Tests / Smoke Tests (Production) (push) Blocked by required conditions
NordaBiz Tests / Send Failure Notification (push) Blocked by required conditions
- Add "Problemy" column showing actionable issues per company
  (Slabe SEO, Wolna strona, Niska dostepnosc, Brak standardow)
- Add tooltips to column headers explaining each metric
- Sort by worst scores first (companies needing help on top)
- Unaudited companies always at bottom regardless of sort
- Replace "medium" stat card with total companies count
- Remove API button from header (admin doesn't need raw JSON)
- Add problem/warn/ok/na tag styling

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 04:47:23 +01:00
d8ee8fe7e4 refactor: remove debug panel entirely
Some checks are pending
NordaBiz Tests / Unit & Integration Tests (push) Waiting to run
NordaBiz Tests / E2E Tests (Playwright) (push) Blocked by required conditions
NordaBiz Tests / Smoke Tests (Production) (push) Blocked by required conditions
NordaBiz Tests / Send Failure Notification (push) Blocked by required conditions
Remove in-memory log viewer (DebugLogHandler, 5 routes, template,
menu links, endpoint aliases). Logs available via journalctl on server.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 04:32:12 +01:00
954cd02975 fix: convert Decimal to float for PLN cost calculation in template
Some checks are pending
NordaBiz Tests / Unit & Integration Tests (push) Waiting to run
NordaBiz Tests / E2E Tests (Playwright) (push) Blocked by required conditions
NordaBiz Tests / Smoke Tests (Production) (push) Blocked by required conditions
NordaBiz Tests / Send Failure Notification (push) Blocked by required conditions
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 04:24:25 +01:00
c9d133cf90 refactor: simplify AI monitoring dashboard with PLN costs
Some checks are pending
NordaBiz Tests / Unit & Integration Tests (push) Waiting to run
NordaBiz Tests / E2E Tests (Playwright) (push) Blocked by required conditions
NordaBiz Tests / Smoke Tests (Production) (push) Blocked by required conditions
NordaBiz Tests / Send Failure Notification (push) Blocked by required conditions
Replace complex dashboard (11 stat cards, token stats, model breakdown,
recent logs, advanced filters) with clean 3-card PLN cost view,
usage by type, user ranking, company ranking, and daily history.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 04:22:27 +01:00
42e42c5fa0 feat: simplify Chat tab - topic categories and cleaner feedback view
Some checks are pending
NordaBiz Tests / Unit & Integration Tests (push) Waiting to run
NordaBiz Tests / E2E Tests (Playwright) (push) Blocked by required conditions
NordaBiz Tests / Smoke Tests (Production) (push) Blocked by required conditions
NordaBiz Tests / Send Failure Notification (push) Blocked by required conditions
Replace anonymized metadata ("45 chars") with real topic categories
(O firmach, Szukanie kontaktu, O wydarzeniach, etc). Remove empty
conversion stats, UTM sources, avg message length. Keep feedback
with ratings in compact two-column layout.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 04:05:15 +01:00
cdd31b77a8 feat: simplify Problems tab - focus on members needing help
Some checks are pending
NordaBiz Tests / Unit & Integration Tests (push) Waiting to run
NordaBiz Tests / E2E Tests (Playwright) (push) Blocked by required conditions
NordaBiz Tests / Smoke Tests (Production) (push) Blocked by required conditions
NordaBiz Tests / Send Failure Notification (push) Blocked by required conditions
Replace complex Problem Score tables and remediation metrics with
two clear sections: "Members needing help" (actionable alerts with
buttons) and "Technical problems" (collapsed, for developer).
Removes ~200 lines of unused scoring/remediation code.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 03:57:08 +01:00
289b8d6f31 feat: remove Paths tab, move session length distribution to Overview
Some checks are pending
NordaBiz Tests / Unit & Integration Tests (push) Waiting to run
NordaBiz Tests / E2E Tests (Playwright) (push) Blocked by required conditions
NordaBiz Tests / Smoke Tests (Production) (push) Blocked by required conditions
NordaBiz Tests / Send Failure Notification (push) Blocked by required conditions
Paths tab (entry/exit pages, transitions, drop-off) provided little
actionable value for association admin. Session length distribution
moved to Overview as compact card layout. Menu: 6 tabs -> 5.
Old /paths URL redirects to /overview.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 03:50:47 +01:00
7a83719647 fix: cap session duration to 60min in engagement scoring
Some checks are pending
NordaBiz Tests / Unit & Integration Tests (push) Waiting to run
NordaBiz Tests / E2E Tests (Playwright) (push) Blocked by required conditions
NordaBiz Tests / Smoke Tests (Production) (push) Blocked by required conditions
NordaBiz Tests / Send Failure Notification (push) Blocked by required conditions
Zombie sessions (browser tab left open for days) were inflating
duration-based scores. LEAST(duration_seconds, 3600) per session
ensures only active time counts toward engagement.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 21:09:06 +01:00
a583ae3386 feat: add detailed tooltip to engagement activity bar
Some checks are pending
NordaBiz Tests / Unit & Integration Tests (push) Waiting to run
NordaBiz Tests / E2E Tests (Playwright) (push) Blocked by required conditions
NordaBiz Tests / Smoke Tests (Production) (push) Blocked by required conditions
NordaBiz Tests / Send Failure Notification (push) Blocked by required conditions
Hovering over the activity bar shows breakdown: sessions, pages,
clicks, time, conversions, searches with weights and final score.
Column header explains what the metric measures.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 21:03:12 +01:00