-
Notifications
You must be signed in to change notification settings - Fork 1
feat: disclose RankWeave ranking channel evidence (v2.12.17) #500
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
seonghobae
merged 7 commits into
worktree-fix-frontend-build-break
from
feat/rankweave-ranking-channel-evidence-v21212
Aug 23, 2026
Merged
Changes from all commits
Commits
Show all changes
7 commits
Select commit
Hold shift + click to select a range
c5a4358
feat: disclose RankWeave ranking channel evidence (v2.12.12)
seonghobae 487b5b4
fix(frontend): repair the inherited login/admin-panel build break
seonghobae 321eddc
Revert "fix(frontend): repair the inherited login/admin-panel build b…
seonghobae 6b9ceea
Merge remote-tracking branch 'origin/worktree-fix-frontend-build-brea…
seonghobae 32ef7de
docs: explain ranking evidence serialization
seonghobae 383535e
Merge remote-tracking branch 'origin/worktree-fix-frontend-build-brea…
seonghobae d11cdf3
fix(deps): resolve version-bump conflict with base branch
seonghobae File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Some comments aren't visible on the classic Files Changed page.
There are no files selected for viewing
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
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
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,11 @@ | ||
| # 2.12.17 — RankWeave ranking channel evidence | ||
|
|
||
| Rankings now shows why a fused hit landed. | ||
|
|
||
| - `GET /api/rankings` attaches owned-channel evidence: 1-based | ||
| newest-first and title-overlap ranks plus Cormack RRF contribution | ||
| `weight / (η + rank)` with η = 60. | ||
| - A channel the post is missing from is omitted. RankWeave extra | ||
| fields are ignored. No fused score or theta is invented. | ||
| - The Rankings list discloses that evidence under each hit. Copy | ||
| states this is not a calibrated score. Click still opens the post. |
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
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
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
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,67 @@ | ||
| # ADR 0167 — Disclose RankWeave ranking channel evidence | ||
|
|
||
| **Decision status:** Accepted | ||
| **Date:** 2026-08-23 | ||
|
|
||
| ## Context | ||
|
|
||
| ADR 0024 already fuses ABAC-visible posts through RankWeave weighted | ||
| reciprocal-rank fusion (Cormack et al., 2009, η = 60; Samuel et al., | ||
| 2025, unequal weights). `GET /api/rankings` returned only `post_id`, | ||
| `post_title`, and 1-based `fused_rank`. A reader could open the hit | ||
| but could not see which owned channel ranked it, or how much that | ||
| rank contributed. | ||
|
|
||
| Event Lineage channel evidence (ADR 0124 on #387) explains | ||
| reconstructed parent→child edges from persisted convex-fusion | ||
| scores. Rankings is a different surface: two rank-only channels | ||
| (`temporal`, `lexical`) fused in-process at GET time. There is no | ||
| persisted ranking table and no TEPP theta. RankWeave extra fields | ||
| must not be trusted; a missing channel stays missing. | ||
|
|
||
| This ADR does not replace reconstruction fusion, leftover pairs, | ||
| TEPP receipts, Allen interval labels, or Event Lineage isolation | ||
| reasons. | ||
|
|
||
| ## Decision | ||
|
|
||
| 1. Compute ranking channel evidence from LineageWeave-owned rank | ||
| lists, never from RankWeave payload extras. For each fused hit | ||
| and each channel with a positive weight, take the 1-based rank | ||
| of that `post_id` in the ordered id list. Skip a channel the | ||
| post is absent from. Do not invent a rank. | ||
| 2. Contribution is Cormack weighted RRF: | ||
| `weight / (η + rank)` with η = 60. Sort by contribution | ||
| descending, then `signal_code`. `rank` on the evidence row is | ||
| that 1-based evidence order. `channel_rank` is the 1-based | ||
| position in that channel. | ||
| 3. Labels: `temporal` = **Newest first**, `lexical` = **Title | ||
| overlap**. The payload never includes a fused score or a theta. | ||
| 4. Rankings lists the evidence under each accepted hit as an | ||
| accessible sibling list, not hover-only. Copy states that | ||
| RankWeave fused newest-first and title-overlap ranks, and that | ||
| this is not a calibrated score. Click still opens that post. | ||
| 5. Unavailable RankWeave stays empty (`rankweave_not_available`). | ||
| Hidden posts remain omitted from every channel. | ||
|
|
||
| ## Consequences | ||
|
|
||
| Buyers can see why a Rankings hit landed without treating RRF as | ||
| measurement. A later channel or weight change recomputes evidence | ||
| on the next GET; nothing is persisted. Event Lineage evidence | ||
| remains the reconstruct/convex path. | ||
|
|
||
| ## References | ||
|
|
||
| Cormack, G. V., Clarke, C. L. A., & Buettcher, S. (2009). Reciprocal | ||
| rank fusion outperforms Condorcet and individual rank learning | ||
| methods. In *Proceedings of the 32nd international ACM SIGIR | ||
| conference on Research and development in information retrieval* | ||
| (pp. 758–759). ACM. https://doi.org/10.1145/1571941.1572114 | ||
|
|
||
| Samuel, D., MacAvaney, S., Yates, A., Zhang, E., Zhang, S., | ||
| Macdonald, C., & Ounis, I. (2025). *Weighted reciprocal rank fusion | ||
| for multi-channel retrieval* [Preprint]. | ||
|
|
||
| ADR 0024 (RankWeave fusion fail-closed) | ||
| ADR 0124 (Event Lineage channel evidence; separate surface) |
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
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
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
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
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
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
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
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.