This release fixes issues for SREs watching stability and regressions.
✓ No known CVEs patched in this version
Topics
Affected surfaces
ReleasePort's take
Light signalThe release fixes a bug in the redirect path containment check that incorrectly dropped possessors when truncated forms matched.
Why it matters: Addresses Z1.1 (HIGH) severity issue where the pre-redirect-path containment check was too lenient; relevant for deployments using query redirection logic.
Summary
AI summaryFixed possessive query redirection that incorrectly dropped the possessor when a truncated form matched.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| Bugfix | Medium |
Fix subset rule for possessive promotion in redirect path containment check. Fix subset rule for possessive promotion in redirect path containment check. Source: llm_adapter@2026-05-23 Confidence: low |
— |
| Bugfix | Medium |
Tighten possessive promotion rule to require pre-redirect path tokens be a subset of topic tokens. Tighten possessive promotion rule to require pre-redirect path tokens be a subset of topic tokens. Source: granite4.1:30b@2026-05-23-audit Confidence: low |
— |
Full changelog
Post-b7 sweep packaged from PR #176. Live-MCP verification against
v2.0.0b7 confirmed all prior fixes land cleanly EXCEPT the b6 Z1
fix for Darwin's evolution: it still returned Evolution at
cert=0.85, the silent-wrong-answer the user originally flagged.
Z1.1 (HIGH) — Pre-redirect-path containment check too lenient
The post-b6 Z1 filter rejected match_type="redirect" rows whose
pre-redirect path tokens didn't contain any of the topic's
possessor tokens. That correctly caught the
Plato's republic philosophy → Czech_philosophy case (the
pre-path didn't contain plato at all).
But the post-b7 live probe surfaced a sibling shape: 2-token
possessive queries where the user typed a TRUNCATED form of a
longer canonical redirect. libzim's suggestion-search returns a
redirect entry whose pre-path includes the possessor AND extra
tokens not in the topic; the redirect walks to a canonical that
loses the possessor entirely.
Live repro: tell me about Darwin's evolution →
Evolution. libzim returns a redirect entry like
Darwin's_Theory_of_Evolution (pre-path tokens: {darwin, s, theory, of, evolution}). The b6 containment check accepts
because darwin IS in the pre-path — but the user's topic
{darwin, s, evolution} doesn't contain theory / of,
signalling that the user typed an abbreviated form. The resolved
canonical (Evolution) drops the possessor.
Fix — subset rule
Tighten accept_possessive_promotion in title_promotion from
"any possessor token in pre-path" to "pre-path tokens ⊆ topic
tokens":
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About cameronrye/openzim-mcp
Modern, secure MCP server for accessing ZIM format knowledge bases offline. Enables AI models to search and navigate Wikipedia, educational content, and other compressed knowledge archives with smart retrieval, caching, and comprehensive API.
Related context
Related tools
Earlier breaking changes
- v2.0.0a15 _attribute_sections falls back to first section when no section brackets located passage
- v2.0.0a13 canonical‑splice gate tightened to require exact path equality, fixing H2/H3 surface end‑to‑end behavior across all shapes.
- v2.0.0a11 Exposed `content_offset` as top-level `zim_query` parameter, validated >=0, threaded through options.
- v2.0.0a10 `get article M/<key>` now returns ZIM metadata entry rather than aliased C-namespace article body.
- v2.0.0a10 `metadata for <file>` returns concise metadata strings instead of full article bodies for new-scheme archives.
Beta — feedback welcome: [email protected]