Skip to content

Releases: hieu-lee/facebook-cli

v0.1.8

Choose a tag to compare

@github-actions github-actions released this 30 Oct 02:51

What's Changed

  • fix: click only visible buttons in the Messenger restore prompt by @serrebidev in #2
  • fix: fill Lexical editors when the caret is inside a paragraph by @serrebidev in #4
  • fix: include original authors in shared feed posts by @serrebidev in #7
  • fix: reveal hidden feed permalinks by focusing the timestamp link by @serrebidev in #1
  • fix: read home feed in batches and recover stalled loading by @serrebidev in #3
  • fix: expand complete post text before reading feed cards by @serrebidev in #5
  • fix: omit collapse controls from expanded post text by @serrebidev in #6
  • feat: add groups command listing the groups you have joined by @serrebidev in #8

New Contributors

Full Changelog: v0.1.7...v0.1.8

v0.1.7

Choose a tag to compare

@github-actions github-actions released this 29 Oct 22:41

Full Changelog: v0.1.6...v0.1.7

v0.1.6

Choose a tag to compare

@github-actions github-actions released this 29 Oct 22:38

Full Changelog: v0.1.5...v0.1.6

v0.1.5

Choose a tag to compare

@github-actions github-actions released this 25 Oct 23:40
v0.1.5
b23cc62

Reliable publication after audience changes

Facebook can retain the old audience pane and its Done control inside the composer. The CLI now selects the unique visible Post/Đăng/Publier button instead of the last labelled control, waits for its effective enabled state, settles hover preparation, and revalidates the same target between input events before publication. Hidden/collapsed controls, inherited disabled state, retained Done buttons, and changed targets fail closed.

Creation still uses a single publish action and verifies the actual create-story response, author, exact permalink, and rendered post content. It never automatically retries an uncertain publication.

This release also includes the v0.1.4 agent workflow improvements: compact warm named browser pages, trusted click/fill/key/scroll/upload, targeted eval/CDP, safer Messenger drafts and PIN prompts, and verified post refs. Ordinary snapshots omit form/editor values; explicit eval/CDP/screenshots can expose private data.

Validation and builds

  • 37 real Chrome + CLI E2E scenarios, including retained audience controls, unrelated trailing controls, hover/input mutation rejection, and publish labels in English, Vietnamese and French.
  • Opt-in live Only-me lifecycle: create, verify body/privacy, view, move to Trash and confirm absence.
  • Linux, macOS and Windows CI gates all five platform archives; SHA256SUMS covers every archive.

Browser primitives provide reach beyond the dedicated commands, not a promise that every Facebook feature is individually tested. Login, 2FA or a Messenger encryption PIN can still require human input. Strict ref/fill guards can refuse changed selection; explicit lower-level browser primitives remain available. Facebook can change its UI/protocol.

v0.1.4

Choose a tag to compare

@github-actions github-actions released this 25 Oct 23:00
v0.1.4
c75a5f6

Seamless agent workflows

  • Keep the compact high-level Facebook/Messenger commands, with reliable profile-post extraction, verified post receipts, directly reusable refs, and scoped deletion.
  • Continue past optional Messenger history-restore prompts through Facebook's own controls; explicitly unlock encrypted history when a PIN is required.
  • Use fb page NAME for browser workflows without a dedicated command: bounded/filterable snapshots, trusted click/fill/key/scroll/upload, screenshot, targeted JavaScript, and raw page-session CDP. Named pages stay warm and separate from the command pool.
  • Reject stale, renamed, covered, disabled and unsupported fill targets. Never replay uncertain mutations. A dispatch ok is not a save receipt: read the resulting state back.
  • Tie post receipts to the actual create-story response and verify the exact resulting URL/content. Delayed old posts cannot be mistaken for newly created posts.

Validation and builds

Real-Chrome fixture E2E runs in CI on Linux, macOS and Windows. It exercises the real CLI with intercepted traffic and no real credentials. The opt-in live acceptance script creates one unique Only-me post, verifies privacy/content, and moves it to Trash with failure cleanup.

The release publishes five platform archives plus SHA256SUMS only after verification and every build succeed.

Browser-level primitives provide reach beyond the dedicated commands; every individual Facebook feature is not separately tested. Human login, 2FA, and a Messenger encryption PIN can still be required. Facebook may change its UI/protocol. Explicit eval/CDP/screenshots can expose private data; handle them accordingly.

Ordinary snapshots omit all native form values and text-editor contents, regardless of labels (including effective contenteditable modes). Use targeted explicit eval/CDP to read values. Messenger inserts a whole multiline draft in one input operation and verifies the exact draft and focus before submission, refusing changed drafts instead of sending partial text.

v0.1.3

Choose a tag to compare

@github-actions github-actions released this 25 Oct 10:17
send: attach any file (--file), one message per file

Files go through Messenger's own file input (images are still pasted so
they arrive as photos), streamed in 3MB base64 chunks, max 25MB each.
Every file and the text is submitted and confirmed as its own new
outgoing message below the newest one seen before sending, so another
message (or re-mounted history) can no longer confirm a send that did
not happen. Enter is retried while the attachment still sits in the
composer. `unsend` skips the empty rows left by earlier unsends.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

v0.1.2

Choose a tag to compare

@github-actions github-actions released this 25 Oct 02:29
Windows: start the daemon with CreateProcessW and no inherited handles

std::process::Command always inherits every inheritable parent handle, so
the daemon kept the caller's pipes open and `fb` never "finished" for
whoever read its output (e.g. an LLM tool capturing stdout). Spawn it
with bInheritHandles = FALSE; it opens its own log.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

v0.1.1

Choose a tag to compare

@github-actions github-actions released this 25 Oct 02:16
Fix Windows: daemon no longer inherits the client's stdout pipe

CreateProcess hands a child every inheritable handle of its parent, so a
detached daemon kept `fb status | cat` open until it exited. Clear the
inherit flag on the client's std handles around the spawn.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

v0.1.0

Choose a tag to compare

@github-actions github-actions released this 25 Oct 02:08
Initial release: fb, a Facebook + Messenger CLI for LLMs

Rust CLI that drives a hidden headless Chrome (dedicated profile, session
imported once from the user's own Chrome) through a long-lived daemon.
Feed, profiles, friends, search, notifications, posts, comments, reactions,
Messenger read/send/unsend (images, E2EE unlock), concurrent batch mode.
Linux, macOS and Windows (incl. WSL relay to Windows Chrome).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>