Skip to content

v3.2.0_sync

Choose a tag to compare

@axwfae axwfae released this 24 Aug 15:15
· 604 commits to master since this release
390ec3c

DonSeTch v3.2.0_sync

The search-legibility release: signals the merge already computed now reach the text channel, where every client can read them.

Changed

  • Snippets are 200 chars, cut on a word boundary. 120 ended mid-word almost every time — sequence transduc, All You Nee, the attention on a live query. The cost was not lost context but a wasted web_fetch to learn what the snippet nearly said. The cut trims back rather than extending, so output stays bounded by the budget; if the character past the window is whitespace the window already ends cleanly and is kept whole; backing off is abandoned when it would cost more than a fifth of the budget, since a long URL or an unbroken CJK run would otherwise strip the snippet to nothing. The ellipsis is appended only when text was actually dropped, so it never promises content that does not exist. Trailing marks that join clauses (, ; : 、 , 「 《 【) are removed before it; sentence terminators (. ! ? 。!?, shared codepoints across Chinese and Japanese) stay, because a cut landing after one means the snippet ended on a complete sentence. (dondai44423#40, @Mart-Bogdan)
  • Each result names the engines behind it, with its blended score: engines: bing, ddg · score: 0.83. Which indexes agreed is what separates two equally plausible results — independent engines converging usually means canonical, a lone vertical hit often means tangential — and it was previously visible only in structuredContent. Names rather than a count: consensus there is sources.len(), which double-counts an engine that returned the URL at two ranks, while ranking counts index families. Deduped names are the honest version, and say which source. (dondai44423#40, @Mart-Bogdan)

Fixed

  • Whitespace in titles and snippets is collapsed at merge. HTML-scraped engines normalized already; JSON-sourced hits did not — MDN summaries, BYOK provider snippets (Exa returns raw page text) and GitHub descriptions arrived with embedded newlines, breaking the three-space indent of the markdown list. Normalizing once in rank::merge, the single point every source flows through, also fixes the "longest snippet wins" and "shortest clean title wins" comparisons, which previously ranked on whitespace count: a newline-padded short snippet could beat a genuinely longer one. (dondai44423#40, @Mart-Bogdan)
  • Clippy only ever linted Linux, and only lib and bins. The ~32 #[cfg(windows)] sites — all of ghost/proc.rs — were never compiled by the lint pass, and neither were the 50 #[cfg(test)] modules or tests/*.rs, which the default lib+bins pass skips. Clippy now runs on Windows as well, with --all-targets. macOS stays out deliberately: its only exclusive site is one target_os = "macos" block, everything else being unix (shared with Linux) or not(linux_like) (shared with Windows), so Linux+Windows already covers it.
  • rust-toolchain.toml pins the local toolchain to 1.98, matching the CI/release pin. v3.0.0 pinned the CI side to end local-vs-CI clippy drift, but nothing pinned the contributor's side, so a local clippy of a different version reports a different lint set — findings that CI does not have, and misses that it does.

Full Changelog: v2.5.0_sync...v3.2.0_sync