{
  "slug": "bw-guides",
  "name": "BW Guides",
  "version": "0.3.4",
  "download_url": "https://plugins.bowden.works/wp-content/uploads/plugin-updates/bw-guides-0.3.4.zip",
  "download_hash": "sha256:c16c880620efc89d17b9b71e7e62a402f14c434bbe63f6ced7403a6d77b87128",
  "download_size": 218643,
  "requires": "6.0",
  "tested": "",
  "requires_php": "7.4",
  "last_updated": "2026-07-27",
  "homepage": "https://plugins.bowden.works/bw-guides/",
  "author": "Bowden Works",
  "description": "Documentation and guides for your website, delivered and updated by Bowden Works.",
  "changelog": "## [0.3.4] - 2026-07-27\n\n### Fixed\n- Section search no longer returns an empty state for a naturally-phrased\n  question. Matching required **every** word of the query to appear, so one word\n  that exists nowhere discarded every other signal — and the longer and more\n  natural the question, the more likely it failed. Asking *\"how do I write a news\n  story for the school blog\"* found nothing, while \"news story\" found plenty.\n  When the all-words pass finds nothing at all, a second pass now ranks sections\n  by the **proportion** of query words they match, requiring a clear majority so\n  the result stays \"the closest answers\" rather than \"anything related\". Precise\n  short queries are unaffected — they never reach the fallback.\n- The fallback needed a stricter word matcher than the exact pass. Substring\n  matching is safe when every word must match, but when counting proportionally\n  it lets `at` match \"th**at**\" and \"cre**at**e\", which floated unrelated\n  sections over the threshold. Words shorter than five characters must now match\n  whole, and tokens under three characters are ignored — and, importantly, are no\n  longer counted in the total either. Counting a token that can never match made\n  some queries require an impossible score: *\"where did the editor go\"* reduces to\n  `did`/`editor`/`go`, of which two can never match, so it needed 2 of 3."
}
