You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
id: design: personalized search ranking for notes (from #5677) #5836
Follow-on design ticket from #5677 — its decomposition sketch names this as a separate design, and the parent's acceptance requires these tickets to be filed and linked. Filed in the 2026-11-04 gap pass (WS-F) so the design work exists and can be prioritised on its own merits; implementation timing is a separate decision, possibly months out.
What this design must settle
Own-edit-first ranking, explainability of ranking, and graffiti demotion without erasure.
Context from the parent
The parent design fixes the note↔board reference model, the merge model, the sovereignty rule, and the approval flow for notes, message boards, and multiplayer editing. The parent issue carries the surrounding decisions this ticket must not re-decide; where this ticket's answer would change a parent decision, record that explicitly rather than silently forking it.
Decision record expected
Close this design with a recorded decision (on this issue or in a doc/ record linked from it): the chosen shape, the alternatives rejected and why, and the invariants implementation must hold. If the design splits further, file the splits and link them here rather than growing this issue.
Relations
Parent: #5677. Programme: epic #2056. Filed by WS-F (2026-11-04 ID design gap & expansion pass).
Fresh verification:#5836 is OPEN, has no linked PR, and still lacks the decision record required by its body. It is partially superseded, not fully handled. Current GitHub main is 00a294a; this checkout's main is 8ad60f1. The nine-commit delta contains no pkgs/id changes, so the ID evidence below applies at current main. Parent #5677 remains OPEN and parked.
Existing overlap: doc/2026-10-30T13-25-00Z_design_friendly_name_references.md (lines 62–79) and pkgs/id/src/references.rs (lines 1–14, 222–238, 483–506) already specify and PoC-implement viewer-relative ranking for typed @/# reference resolution, including visibility filtering, match tiers and deterministic tie-breaks. That module explicitly says it is not production search. By contrast, pkgs/id/src/search.rs (lines 1–14, 163–183) is generic tag search: deterministic ID ordering, no full-text search, and no personalized ranking. Thus #5836 should not duplicate the reference-autocomplete design; general note-search ranking remains unhandled.
Scoped path: keep #5836 open as a design ticket for personalized general note search. Clarify that search surface against reference autocomplete, then decide own-edit-first behavior and whether it may cross existing match tiers; define its weight versus most-correct marks, recency and graph proximity; specify per-result explanations and graffiti demotion/filtering without erasing attribution/history. Preserve visibility-before-ranking and deterministic tie-breaks. Record the selected shape, rejected alternatives and invariants; do not silently reopen the parent’s reference, merge, sovereignty or approval decisions.
Ordering / blockers: finalize the parent #5677’s shared decisions first, then #5831’s foundational graph model/navigation API, then #5833’s fork-lineage and mark-most-correct semantics, then finalize #5836. The parent and #5833 are OPEN and parked. These are design-sequencing blockers, not grounds to close the issue; implementation timing remains separate.
Activity
developing-today commentedon Nov 5, 2026
CODE-1519
developing-today commentedon Nov 5, 2026
🤖 Agent note · handed off
developing-today commentedon Nov 5, 2026
🤖 Agent note · state: handed off
developing-today commentedon Nov 5, 2026
🤖 Agent note · handed off
dezren39 commentedon Nov 5, 2026
🤖 Agent note · handed off
opencode, so this task is handed off; the laptop claimant launches the bound opencode session which drives it to its terminal state.dezren39 commentedon Nov 5, 2026
🤖 Agent note · handed off
dezren39 commentedon Nov 5, 2026
🤖 Agent note · triage complete
Triage findings (2026-11-05)
Fresh verification: #5836 is OPEN, has no linked PR, and still lacks the decision record required by its body. It is partially superseded, not fully handled. Current GitHub main is 00a294a; this checkout's main is 8ad60f1. The nine-commit delta contains no pkgs/id changes, so the ID evidence below applies at current main. Parent #5677 remains OPEN and parked.
Existing overlap: doc/2026-10-30T13-25-00Z_design_friendly_name_references.md (lines 62–79) and pkgs/id/src/references.rs (lines 1–14, 222–238, 483–506) already specify and PoC-implement viewer-relative ranking for typed @/# reference resolution, including visibility filtering, match tiers and deterministic tie-breaks. That module explicitly says it is not production search. By contrast, pkgs/id/src/search.rs (lines 1–14, 163–183) is generic tag search: deterministic ID ordering, no full-text search, and no personalized ranking. Thus #5836 should not duplicate the reference-autocomplete design; general note-search ranking remains unhandled.
Scoped path: keep #5836 open as a design ticket for personalized general note search. Clarify that search surface against reference autocomplete, then decide own-edit-first behavior and whether it may cross existing match tiers; define its weight versus most-correct marks, recency and graph proximity; specify per-result explanations and graffiti demotion/filtering without erasing attribution/history. Preserve visibility-before-ranking and deterministic tie-breaks. Record the selected shape, rejected alternatives and invariants; do not silently reopen the parent’s reference, merge, sovereignty or approval decisions.
Ordering / blockers: finalize the parent #5677’s shared decisions first, then #5831’s foundational graph model/navigation API, then #5833’s fork-lineage and mark-most-correct semantics, then finalize #5836. The parent and #5833 are OPEN and parked. These are design-sequencing blockers, not grounds to close the issue; implementation timing remains separate.