Commit History

Cap author bios at 500 chars; use Wikipedia exsentences=4; block AbeBooks boilerplate OG descriptions
425348b

AuthorBot Cursor commited on

Reject boilerplate descriptions in sanitizer; prefer Wikipedia over OL name-search for author bios (fixes wrong-person disambiguation)
0e4f502

AuthorBot Cursor commited on

Parse title and author from AbeBooks listing pages, reject boilerplate description.
20c914c

AuthorBot Cursor commited on

Add Wikipedia author-bio fallback for reliable About the Author.
91ce1b6

AuthorBot Cursor commited on

Add ThriftBooks parser with Book Overview, author-page bio, and iTunes fallback.
85d202c

AuthorBot Cursor commited on

Reject JSON-LD leaks, invalid years, and foreign-language genres in book scraper.
38569eb

AuthorBot Cursor commited on

Fill B&N description and genre via iTunes when page scrape is blocked.
520c144

AuthorBot Cursor commited on

Fix B&N slug parsing and ISBN fallbacks when HTML or catalog APIs fail.
45623c0

AuthorBot Cursor commited on

Trigger Hugging Face Space rebuild for latest book URL scraper.
581ea78

AuthorBot Cursor commited on

Ship B&N scraper refinements, platform backtest results, and project docs.
ab760e4

AuthorBot Cursor commited on

Fix Barnes and Noble book import for Shopify storefront pages.
b46d77b

AuthorBot Cursor commited on

Harden book URL import across top platforms and swap Bookshop for WorldCat in UI.
0e7f062

AuthorBot Cursor commited on

Improve multi-platform book URL import with ranked catalog matching.
e61653c

AuthorBot Cursor commited on

Fix: Make Amazon author URL extraction more resilient to capture follow-the-author-card links
0af2346

AuthorBot commited on

Fix: Add Amazon data-testid pattern for modern Author Central biography extraction
bcec7d2

AuthorBot commited on

Fix: Add Amazon Author profile link extraction and secondary fetch to get biography if missing from book page
0a2a450

AuthorBot commited on

Fix: Amazon description and bio extraction by stripping scripts and parsing JSON blobs
4c05f9c

AuthorBot commited on

Fix: bypass Redis cache on preview (force_refresh) so improved Amazon scraper runs fresh
83c6e17

AuthorBot commited on

Fix Amazon: title/author/description/bio now fetched from page DOM instead of misleading OG meta tags
c35198e

AuthorBot commited on

Fix URL input bottom padding
b7d06c8

AuthorBot commited on

Redesign Upload Book section with modern UI
c176970

AuthorBot commited on

fix: correct DATA_API base URL in superadmin.html to prevent duplicate /super path
532c56a

AuthorBot commited on

fix: correct API base URL from /api/v1 to /api in all frontend files
cd58283

AuthorBot commited on

feat: universal genre fallback via OL Search + Google Books
1ee2d89

AuthorBot commited on

fix: cover+genre now actually persist in DB
0e3a8bd

AuthorBot commited on

feat: full cover+genre extraction from all platforms - platform HTML parsers + DB fields
8ef8ff2

AuthorBot commited on

feat: rich shimmer skeleton loading animation for books table
1eaf1e0

AuthorBot commited on

fix: 3 bugs β€” stalled false positive, unknown platform crash, genre/processing UI
f0dfbdf

AuthorBot commited on

fix: SyntaxError in books.py β€” close preview return dict before import-url decorator
8a6b72c

AuthorBot commited on

feat: URL import now auto-indexes scraped metadata instantly β€” no file upload needed
ba24df7

AuthorBot commited on

fix: indexing-stalled false positive, genre not saved, book table UI
a04f534

AuthorBot commited on

feat: replace Upload Book UI with full URL-import-first flow in real admin SPA
c4bd806

AuthorBot commited on

feat: full admin SPA + superadmin persistent login fix
5d1ab94

AuthorBot commited on

fix: resolve Pyrefly unknown-name errors in book.py
63bcf93

AuthorBot commited on

feat: scraper v3 - API-first, never-blocked architecture
3adf398

AuthorBot commited on

feat: deep book metadata extraction - author bio, genre, ratings, pages
2bfc0e2

AuthorBot commited on

feat: book URL import - 10 platforms, 3-step UI, scraper service
2a566aa

AuthorBot commited on

feat: show IP address in sessions + persistent login until logout - Add ip_address field to ChatSession model (VARCHAR 45, handles IPv4+IPv6) - Store real client IP at session/init time via get_real_ip() - Expose ip_address in /sessions list and /sessions/{id}/transcript responses - DB migration: ip_address column added to chat_sessions - Bump REFRESH_TOKEN_EXPIRE_DAYS from 7 to 30 days (stay logged in 1 month) - Fix auth-client.js: refreshAccessToken only clears session on 401/403, not on network/5xx errors (HF cold-start safe) - Fix restoreSession: keeps session alive when refresh fails transiently, only clears on explicit auth rejection
cb1aefd

AuthorBot commited on

fix: geo lookup now works on HF Spaces without MaxMind DB - Add ip-api.com async HTTP fallback when GeoLite2 mmdb is not present - 3-tier resolution: Redis cache (24h) -> MaxMind (offline) -> ip-api.com (free, no key) - Cache key uses SHA-256 hash of IP (raw IP never stored) - Pass redis into get_geo_info from both chat.py and visitor_tracker.py - Fixes country showing as dash on all sessions
f65c89c

AuthorBot commited on

feat: proper visitor analytics system - New Visitor model (visitor_uid + fingerprint fallback, first_seen/last_seen/page_views, geo, device) - VisitorRepository with upsert + analytics queries - visitor_tracker.py: record_visitor() upserts on every session/init - session/init accepts visitor_uid in request body (HF-Spaces iframe-safe, no cookies) - 4 new analytics endpoints: /visitors /geo /devices /sessions/stats - geo.py: region extraction + X-Real-IP support - DB migration: visitor_uid column on chat_sessions - ARCHITECTURE.md updated
3ae7860

AuthorBot commited on

fix: 5 critical storage bugs + 3 SQLite/SSE bugs -- tracker.py: db.flush() after add() so chat messages/analytics are persisted -- chat.py: flush->commit for durable ChatSession row -- settings.py: fix session mismatch in all PUT routes (widget-config, profile, personality, notifications, password) - setattr on cross-session user was discarded; now uses UPDATE stmt on route db -- aggregator.py: replace PostgreSQL-only gen_random_uuid() with uuid4() param for SQLite -- ingest.py: fix SSE channel name mismatch subscriber vs publisher -- superadmin_service.py: fix naive/aware datetime TypeError in extend_subscription
784dc0e

AuthorBot commited on

fix: Audit pass β€” critical bug fix + lazy import cleanup (qa/books/schemas_router)
1afebcd

AuthorBot commited on

feat: Phase 10 β€” Analytics endpoints (unanswered/books/heatmap)
957bf15

AuthorBot commited on

test: Phase 9 β€” 55 tests all passing (23 new in Suite F)
eb5ec7a

AuthorBot commited on

feat: Phase 7 β€” Polling streaming (stream-start + poll endpoints)
94944e2

AuthorBot commited on

fix: keep run_backup as lazy import (celery not in local dev env)
3e81f51

AuthorBot commited on

refactor: Phase 6A+6B β€” top-level imports and Pydantic schema upgrades
88872f0

AuthorBot commited on

feat: Phases 2B + 3B β€” semantic Q&A and vector store fixes
75a3a40

AuthorBot commited on

Docs: update ARCHITECTURE.md change log for Phases 1-5
dbb0430

AuthorBot commited on

feat: Phases 1-5 production improvements + 8 bug fixes
ef8fd29

AuthorBot commited on