github karust/openserp v0.8.3

latest releases: v0.8.12, v0.8.6, v0.8.4...
one month ago

OpenSERP v0.8.3

Full diff: v0.7.15...v0.8.3

Added

  • Added URL content extraction via GET /extract and POST /extract.
    • Supports json, markdown, text, and ndjson responses.
    • Supports extraction modes: auto, fast, and rendered.
    • Includes page metadata such as title, description, headings, links, canonical URL, Open Graph tags, schema.org data, and extraction metadata.
  • Added search result enrichment with extracted page content using:
    • extract=true
    • extract_top
    • extract_mode
    • min_runes
  • Added Markdown/text rendering for extracted result content.
  • Added llms.txt / llms-full.txt probing for root URL extraction when enabled.
  • Added SSRF-style request protection for extraction: private, loopback, link-local, multicast, and CGNAT targets are blocked by default.
  • Added JavaScript and Python usage examples for quickstart, search, SEO, AI, content extraction, and image workflows.
  • Added documentation links for official SDKs and integrations: JS/TS SDK, Python package, MCP server, and n8n node.
  • Added contributor onboarding docs:
    • docs/ADDING_AN_ENGINE.md
    • docs/GOOD_FIRST_ISSUES.md
    • expanded docs/CONTRIBUTING.md
  • Added GitHub issue templates and pull request template.
  • Added Makefile targets for build, test, integration tests, lint, run, and fmt.
  • Added Docker image workflow for validation and multi-arch publishing.
  • Added GitHub release workflow for building and uploading release binaries.

Changed

  • Bumped CLI version to 0.8.3.
  • Bumped OpenAPI spec version to 2.2.0.
  • Default search limit is now 10.
  • Small/default limits now parse only the first SERP page; pagination is used for larger limits when supported by the engine.
  • features now defaults to true, enabling SERP feature extraction unless explicitly disabled.
  • Docker usage docs now use the prebuilt karust/openserp:latest image.
  • CI now pins golangci-lint and uses the repository lint config.

Fixed

  • Fixed default search limit behavior across Google, Baidu, Bing, DuckDuckGo, Ecosia, and Yandex.
  • Fixed Google result parsing by matching organic selectors more carefully across different SERP layouts.
  • Hardened Google answer-box parsing to avoid panics on short answer text.
  • Fixed Baidu empty-result handling: pages that never hydrate now return ErrSearchTimeout instead of a successful empty result.
  • Centralized engine panic recovery in the resilient search layer.
  • Fixed request deadlines so the server timeout is derived from the retry budget instead of cutting retries short.
  • Fixed rate limiter behavior by reusing configured limiters instead of creating new ones per call.
  • Improved circuit breaker behavior so context cancellations and deadline errors are not recorded as engine failures.
  • Hardened extraction timeouts and batch enrichment behavior so slow or failed extraction targets do not turn the whole search request into a 500.
  • Stabilized integration tests and deduplicated engine smoke-test setup.

Don't miss a new openserp release

NewReleases is sending notifications on new releases.