github h4ckf0r0day/obscura v0.1.3

latest release: v0.1.4
4 hours ago

What's new

Reliability

  • V8 fatal crash fixed: process no longer aborts under concurrent CDP work with Fetch.enable (Check failed: heap->isolate() == Isolate::TryGetCurrent()). (#36, closes #19)
  • CDP fast-path for Puppeteer connect: Target.getBrowserContexts no longer waits behind the JS engine queue. (#120, partial #62)

Stealth & networking

  • Stealth build fixed on macOS arm64 + Rust 1.95: wreq's prefix-symbols feature gated to Linux/Android only. (#106, closes #39)
  • Stealth build fixed on macOS 26 (Tahoe): Cargo config sets CXXFLAGS/SDKROOT so boring-sys can find libc++ headers. (#138, closes #136)
  • --proxy works in stealth mode: stealth HTTP client now receives the proxy URL. (#141)
  • --proxy plumbed through fetch and scrape: global flag now applies to all CLI commands. (#88)

CDP compatibility

  • Rust CDP clients work: Target.sendMessageToTarget implemented; chromiumoxide and headless_chrome can connect. (#83, closes #26)
  • Descriptive error for Page.printToPDF: explains PDF isn't supported with workaround pointer. (#112, closes #53)

CLI improvements

  • --dump markdown: clean markdown output from rendered pages. (#78, closes #54)
  • --dump text strips nav/header/footer/aside: returns article content, not menus. (#82, closes #55)
  • fetch --output <file>: write results to file. (#95)
  • fetch --quiet suppresses JS console errors: was leaking through to stderr. (#74, closes #56)
  • scrape --quiet: suppress progress messages. (#91)
  • obscura scrape works on Windows: was looking for obscura-worker instead of obscura-worker.exe. (#140)

Build & release

  • Zero build warnings: from 18 on v0.1.2 to 0. (#126, closes #101)
  • Intel macOS build cross-compiles from arm64 runner: no more slow macos-13 queue.

Docs & ecosystem

  • AI agent skill file: skills/obscura/SKILL.md for Claude Code, Cursor, etc. (#34)
  • Arch Linux AUR install: yay -S obscura-browser. (#134)

Known issues

  • #107: Playwright's page.title() / page.content() fail wire validation on certain pages with expected string, got object. Workaround in the issue. Under investigation.

Closed issues

#19, #26, #39, #53, #54, #55, #56, #101, #108, #136, #140

Don't miss a new obscura release

NewReleases is sending notifications on new releases.