Conversation
…king when knowledge_base_url set (#152) Closes #150. When a project sets `knowledge_base_url`, oddkit_search and oddkit_preflight now default to overlay_first ranking — overlay (canon) docs surface above baseline docs in BM25 results, with score order preserved within each tier. Callers can override via the new `result_grouping: "merged" | "overlay_first" | "grouped"` parameter. - Conditional default: knowledge_base_url unset → "merged" (no behavior change); set → "overlay_first". - "grouped" mode adds explicit overlay_hits/baseline_hits arrays (search) and start_here_overlay/start_here_baseline (preflight) for callers that want to render tiers separately. - Candidate-pool widening (50 BM25 candidates when grouping active, partition, slice to 5) ensures overlay docs at BM25 position 6+ are visible. - Worker (workers/src/orchestrate.ts) and Node CLI (src/core/actions.js, src/tasks/preflight.js) at parity. Telemetry blob9 records caller-specified value. - Validated by independent Sonnet 4.6 read-only dispatch per release-validation-gate Rule 2; Cursor Bugbot success per Rule 1. Companion docs in klappy/klappy.dev#154.
…eline (E0008.5) (#153) Implements canon klappy://canon/constraints/core-governance-baseline §Search-Corpus Boundary (klappy/klappy.dev #155 + #156). When knowledge_base_url is set, the search corpus now defaults to overlay + required-baseline-only. Callers opt in to the legacy merged corpus via include_full_baseline: true. When knowledge_base_url is unset, the parameter is a no-op. Affected: oddkit_search, oddkit_catalog, oddkit_preflight (and the unified oddkit action). Other tools unchanged — they read governance via the per-file resolver, not the search index. RV-gate (klappy://canon/constraints/release-validation-gate, tier 1) cleared: - Cursor Bugbot: completed/success (one autofix landed and verified, 8e88a9f) - Independent Sonnet 4.6 read-only validator: APPROVE_WITH_NOTES (full DOLCHE in PR #153 comment) - Smoke against preview URL: 260 passed, 0 failed - Typecheck: 0 errors - Workers Builds, Creed Freshness, Version Sync, Test CF Preview: all green Version bump 0.26.0 → 0.27.0.
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
oddkit | 1a1f093 | Commit Preview URL Branch Preview URL |
Apr 29 2026, 03:33 PM |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Promote 0.27.0 to prod
Promotes
main(1a1f093) toprod. Brings two PRs forward:feat(kb-scope): default-scope search corpus to overlay + required-baseline (E0008.5)— the Search-Corpus Boundary implementation, paired with canon klappy/klappy.dev feat(encode): governance_uris plural, (letter,facet) dedup, Open in fallback, governance_extended self-teaching surface (E0008.4 Phase 2) #155 (contract) and #156 (observability framing refit).feat(search,preflight): result_grouping parameter— already in flight before feat(kb-scope): default-scope search corpus to overlay + required-baseline (E0008.5) #153 landed; promoted together.Pre-promotion gate (already cleared)
cloudflare-production.test.shagainsthttps://main-oddkit.klappy.workers.dev: 41 passed, 0 failedcanon-tool-envelope.smoke.mjsagainst the same staging URL: 260 passed, 0 failed (12 new E0008.5 assertions all green)8e88a9f)mainHEAD: successBehavior change consumers should know about
When
knowledge_base_urlis set, the search corpus now defaults to overlay + required-baseline only rather than overlay + the full baseline. Callers who want the prior behavior passinclude_full_baseline: truetooddkit_search,oddkit_catalog, oroddkit_preflight. Whenknowledge_base_urlis unset, behavior is unchanged.Authority: klappy://canon/constraints/core-governance-baseline §"Search-Corpus Boundary" (klappy/klappy.dev #155, with framing refit in #156, both merged 2026-04-29).
Receipts (preview, just before this PR)
include_full_baseline:true)release-validation-gatein negative-control top hitsWhy a PR vs. fast-forward push
scripts/promote.shhalts with "Manual resolution required" because historical promotions used PR-merge commits (visible ingit log origin/main..origin/prod). The content ofprodis exactly main's428b676ancestor — no real divergence — but the merge graph is non-fast-forward. Resolving in-pattern (PR-merge) keeps the audit trail consistent with the historical record.Note
Medium Risk
Changes search/preflight ranking and default indexed corpus when
knowledge_base_urlis provided, which can alter returned results and downstream expectations. Telemetry schema also changes (blob9 repurposed), requiring consumers/queries to tolerate the new field.Overview
Search & preflight now support
result_grouping(merged/overlay_first/grouped) with a conditional default ofoverlay_firstwhenknowledge_base_url/baseline override is set; in grouped mode responses also include split arrays (overlay_hits/baseline_hits,start_here_overlay/start_here_baseline). To avoid truncation bugs when grouping is enabled, both Worker and Node CLI widen the BM25 candidate pool (50) before partitioning and then cap returned results.Introduces the E0008.5 Search-Corpus Boundary in the Worker: when
knowledge_base_urlis set, indexing/search/catalog/preflight default to overlay + a required-baseline allowlist (shipped asworkers/baseline/MANIFEST.json), withinclude_full_baseline=trueto opt back into the legacy merged corpus. Debug/envelopes surface the effectivesearch_scopeand baseline counts, telemetry recordsresult_groupingin blob9, and tests are expanded to cover both behaviors; versions bump to0.27.0.Reviewed by Cursor Bugbot for commit 1a1f093. Bugbot is set up for automated code reviews on this repo. Configure here.