# Changelog of BookTok Trend Intelligence & Goodreads Enrichment (`thescrapelab/booktok-trend-intelligence`) Actor

- **URL**: https://apify.com/thescrapelab/booktok-trend-intelligence/changelog.md
- **Full Actor documentation**: https://apify.com/thescrapelab/booktok-trend-intelligence.md

## Changelog

### Unreleased

- Reduced the Console form to workflow, books/topics, search depth, and Goodreads enrichment; all specialist controls remain available to existing JSON/API integrations.
- Removed schema defaults from preset override fields so Quick, Balanced, and Deep now apply their documented limits in Console runs.
- Allowed the documented `minimumMatchConfidence: 0` API value and aligned the omitted upstream-charge default with the Console's safe $0.15 budget.
- Allowed `maxUpstreamChargeUsd: 0`; paid upstream sources are now skipped cleanly instead of rejecting the input or starting an unfunded child run.
- Derived each child-run deadline from the platform timeout, preserving a cleanup margin while allowing Balanced and Deep presets to use their documented timeout windows.
- Replaced silent fallback or truncation of malformed API input with specific validation messages for missing targets, invalid list types, blank entries, excessive lengths, fractional limits, invalid booleans, and impossible calendar dates.

### 1.4.0

- Fixed Apify Console dataset loading by removing string-valued `clean` parameters from output URL templates; dataset views now open through the platform's supported default links.
- Added simple pay-per-event billing for completed `book_trend` results while keeping optional video evidence and diagnostics free of an additional Actor event charge.
- Added preflight and delivery safeguards for the user's maximum run charge so low-budget runs stop cleanly or return a clearly marked partial result.
- Documented the introductory $0.01 per completed book result price, its August 3, 2026 activation, and the separate upstream Actor costs.
- Updated the transitive ZIP dependency to its patched release after deployment auditing identified the vulnerable older version.
- Increased the Balanced preset's child-run timeout from 600 to 720 seconds after a multi-topic discovery stress run produced all requested items but crossed the old timeout boundary.
- Split discovery topics into independent, bounded-concurrency child runs after live A/B testing showed the upstream Actor handles keywords sequentially. Named-book searches remain batched.
- Rate-limited Open Library requests to its documented anonymous-client allowance and added one bounded retry for transient timeouts, network errors, rate limits, and server failures.
- Filtered generic creator, genre, and BookTok hashtags out of discovery catalog lookups, and now emit discovered books only when at least one collected video supports the match. Rejected candidates remain available in diagnostics.
- Prioritized explicit caption titles and added extraction for numbered lists, quoted titles, "called" phrases, review phrases, and sparkle-delimited BookTok lists before considering hashtags.
- Interleaved discovery candidates across requested topics so one caption-heavy topic cannot consume every book slot before the others are considered.
- Applied `maxBooks` after evidence matching and ranking so early catalog-resolvable noise cannot crowd out later supported titles; evidence and unmatched diagnostics now follow the final retained ranking.
- Preserved structured caption identities during catalog enrichment and added compact hashtag matching, preventing catalog edition suffixes or concatenated hashtags from hiding valid video evidence.
- Parse structured caption candidates before querying and scoring book catalogs, improving title/author resolution while retaining the explicit caption identity in client output.
- Excluded common stopwords from fuzzy title overlap so titles such as `Mind of My Mind` cannot match unrelated captions merely through phrases like "of my".
- Attribute a list-style video to every confidently mentioned book rather than only the single best match, while keeping summary video counts unique.
- Require stronger confidence for secondary matches in multi-book videos, preventing shared title words from multiplying one video across unrelated books.
- Enforce normalized word boundaries for title and author phrases so names ending in numbers or short tokens cannot match longer prefixes.
- Retain numeric and Roman-numeral tokens during matching, distinguishing sequels and similarly prefixed titles such as `Title 1` and `Title 10`.

### 1.3.0

- Reduced the Console's optional section from eleven advanced controls to three practical client options.
- Kept maximum books, the source spending cap, and unmatched-video diagnostics visible.
- Hid exact per-search limits, matching internals, fallback behavior, source timeouts, and strict failure handling from the form while preserving every field for backward-compatible JSON/API input.

### 1.2.0

- Added one `targets` list for books, ISBNs, or discovery topics so new users no longer need mode-specific input fields.
- Added Quick, Balanced, and Deep search presets while keeping every previous limit field as a backward-compatible advanced override.
- Reordered and simplified the Output tab so compact book-level results open first, with full raw data and diagnostics still available.
- Reduced the default dataset views to the most useful client-facing columns and simplified all Console and API examples.

### 1.1.0

- Reduced the default parent memory from 512 MB to 256 MB after cloud and maximum-contract load testing showed a large safety margin.
- Increased the parent timeout ceiling to 3,600 seconds so bounded multi-book workloads can finish and still write partial diagnostics after a slow child run.
- Added bounded TikTok batching with up to three concurrent child runs, while preserving every child run ID in output provenance.
- Fixed pay-per-event pricing detection for the current Apify `pricingInfos` response and divided the configured charge ceiling across batch runs.
- Added regression coverage for batching, concurrency, charge allocation, and multi-run provenance.

### 1.0.0

- Added watchlist, discovery, and comparison workflows.
- Added bounded TikTok collection through a low-permission upstream Actor.
- Added Goodreads enrichment with confidence-based title and author matching.
- Added ISBN-to-title BookTok search resolution and ISBN-based Goodreads retry for ambiguous autocomplete results.
- Added Open Library discovery and fallback resolution.
- Added transparent trend scoring, representative video evidence, and source provenance.
- Added explicit missing-metric completeness warnings and disabled cross-run TikTok continuation state.
- Added resilient partial-output behavior, strict mode, input safety limits, and client-ready output schemas.
