Skip to content

id: design: personalized search ranking for notes (from #5677) #5836

Open

Description

@dezren39

Summary

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).

Activity

  1. added
    app/idPackage/app: id (pkgs/ or apps/ in this repo)
    on Nov 5, 2026
  2. developing-today commented on Nov 5, 2026

    @developing-today
    Contributor
  3. added
    queue/queuedHas a queued task in the Supabase agent queue
    task/triageQueue packet kind: verify, reproduce, and route this item
    on Nov 5, 2026
  4. added
    work/assignedQueue worker lifecycle state
    queue/claimedQueue worker lifecycle state
    and removed
    queue/queuedHas a queued task in the Supabase agent queue
    on Nov 5, 2026
  5. developing-today commented on Nov 5, 2026

    @developing-today
    Contributor

    🤖 Agent note · handed off

  6. added
    queue/parkedQueue task is parked (waiting on CI, time, or an event)
    status/parkedDeliberately paused with a recorded resume condition
    and removed
    queue/claimedQueue worker lifecycle state
    on Nov 5, 2026
  7. developing-today commented on Nov 5, 2026

    @developing-today
    Contributor

    🤖 Agent note · state: handed off

  8. developing-today commented on Nov 5, 2026

    @developing-today
    Contributor

    🤖 Agent note · handed off

  9. dezren39 commented on Nov 5, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · handed off

  10. added
    queue/claimedQueue worker lifecycle state
    and removed
    status/parkedDeliberately paused with a recorded resume condition
    queue/parkedQueue task is parked (waiting on CI, time, or an event)
    on Nov 5, 2026
  11. dezren39 commented on Nov 5, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · handed off

  12. dezren39 commented on Nov 5, 2026

    @dezren39
    MemberAuthor

    🤖 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.

  13. added
    status/triagedTriaged and routed (see agent note)
    and removed
    queue/claimedQueue worker lifecycle state
    work/assignedQueue worker lifecycle state
    on Nov 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

app/idPackage/app: id (pkgs/ or apps/ in this repo)status/triagedTriaged and routed (see agent note)status/waiting-dependencyWaiting on a dependencytask/triageQueue packet kind: verify, reproduce, and route this item

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions