# Changelog of Facebook Posts Scraper (`netdesignr/facebook-posts-scraper`) Actor

- **URL**: https://apify.com/netdesignr/facebook-posts-scraper/changelog.md
- **Full Actor documentation**: https://apify.com/netdesignr/facebook-posts-scraper.md

## Changelog

### 0.3.18 - 2026-05-29

#### Changed

- Added an emergency cloud-only profitability freeze until the scheduled Apify pricing correction becomes active.

### 0.3.17 - 2026-05-29

#### Changed

- Added `residentialProxyFallbackMode` and disabled automatic Apify Residential proxy retries by default to prevent hidden proxy spend on empty runs.

### 0.3.16 - 2026-04-20

#### Fixed

- Parsed authenticated Apify proxy URLs into Playwright's `server` / `username` / `password` fields so residential proxy retries no longer fail with `ERR_INVALID_AUTH_CREDENTIALS`.
- Allowed logged-out `login_redirect` and `login_required` surfaces to retry once through the residential fallback instead of treating them as permanently unavailable after the first attempt.

### 0.3.15 - 2026-04-18

#### Fixed

- Forced dev dependencies to install in the Docker builder stage so Apify cloud rebuilds always have TypeScript available during image compilation.

### 0.3.14 - 2026-04-18

#### Fixed

- Launched the bundled Chrome channel explicitly so Apify cloud builds do not fail looking for Playwright's missing Chromium headless shell binary.
- Added regression coverage for the browser launch configuration used in Apify cloud runs.

### 0.3.13 - 2026-04-18

#### Fixed

- Reclassified minimal logged-out login shells on target paths as unavailable public surfaces instead of hard runtime failures.
- Added regression coverage for the Facebook QA case where a target stays on-path but only renders a login prompt and no usable post feed.

### 0.3.12 - 2026-03-26

#### Changed

- Reworked the README output section into a more scannable Store-friendly overview of the post data, media, and diagnostics the actor returns.

### 0.3.11 - 2026-03-26

#### Fixed

- Added legacy `targets` input compatibility so older API callers do not fail with "No valid Facebook targets provided".
- Normalized `mbasic.facebook.com`, `m.facebook.com`, and `mobile.facebook.com` inputs onto `www.facebook.com` before scraping the public surface.

### 0.3.10 - 2026-03-25

#### Fixed

- Relaxed public post container detection so logged-out public pages with modern Facebook post cards still emit posts.
- Removed brittle text-only unavailable-surface matching that could misclassify usable public pages with login prompts.

### 0.3.6 - 2026-03-23

#### Fixed

- Added surface diagnostics logging when zero posts are found, distinguishing login walls from genuinely empty pages.
- Improved empty-run classification after residential proxy fallback retry.

### 0.3.5 - 2026-03-23

#### Fixed

- Marked runs as failed when every Facebook target errors out, instead of reporting them as successful empty runs.
- Clarified `emptyRunPolicy` docs so it only applies to reachable public surfaces that genuinely return zero posts.

### 0.3.4 - 2026-03-22

#### Fixed

- Passed the Facebook surface readiness timeout to Playwright using the correct `page.waitForFunction(fn, arg, options)` signature.
- Prevented Apify cloud runs from silently falling back to Playwright's default 30 second wait, which was still triggering empty-run retries for some public pages.

### 0.3.3 - 2026-03-22

#### Fixed

- Recovered gracefully when Facebook's public page shell is usable but readiness probing times out.
- Added regression coverage for readiness timeout recovery during navigation.

### 0.3.2 - 2026-03-21

#### Fixed

- Added support for absolute Facebook timestamps (e.g. "March 15, 2026") alongside relative time labels.
- Aligned Apify actor version format for consistent Store builds.

### 0.3.1 - 2026-03-21

#### Fixed

- Hardened Facebook page navigation so logged-out scraping can recover when `domcontentloaded` stalls in cloud runs.
- Relaxed source metadata readiness checks to avoid failing healthy targets that render the page shell before the header finishes loading.

### 0.3.0 - 2026-03-18

#### Changed

- Bumped the actor release version for the public Store launch.
- Cleaned the public README to remove internal development-only instructions.
- Replaced client-specific examples with neutral output samples and stable public demo inputs.
- Updated the live Store sample input and publication metadata to support a safer first-run experience.

### 0.2.0 - 2026-03-18

#### Added

- Marketplace-ready README with stronger SEO copy, API examples, FAQ, use cases, and pricing guidance.
- Production launch guide with Store metadata, pricing recommendations, monetization setup notes, and publish checklist.
- Additional dataset views for engagement analysis and source metadata review.

#### Changed

- Improved input schema copy for better Apify Store UX and clearer public-surface expectations.
- Refined actor dataset descriptions and view labels for a more production-ready Store presentation.

### 0.1.0 - 2026-03-18

#### Added

- Initial NetDesignr Facebook Posts Scraper package.
- Logged-out Playwright extraction for public Facebook pages, profiles, and public groups when accessible.
- Extraction modes: `fast`, `balanced`, and `full`.
- Optional keyword filtering, top comment previews, and best-effort video/transcript enrichment.
- Runtime input sanitization, proxy support, retries, partial-failure handling, and `RUN_META` persistence.
- Actor metadata, input schema, output schema, README, and tests.
