Repository navigation
Description
Summary
Follow-on design ticket from #5675 — 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
Scripting/API, agent, and CLI front doors over one query model — parity as a tested property, not a hope.
Context from the parent
The parent design fixes the filtering model, the owner-override boundary, surface parity, and pagination/result rules for querying local and remote ID servers. 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: #5675. Programme: epic #2056. Filed by WS-F (2026-11-04 ID design gap & expansion pass).
Activity
developing-today commentedon Nov 5, 2026
CODE-1503
dezren39 commentedon Nov 5, 2026
🤖 Agent note · handed off
dezren39 commentedon Nov 5, 2026
🤖 Agent note · handed off
dezren39 commentedon Nov 5, 2026
🤖 Agent note · handed off
15 remaining items
dezren39 commentedon Nov 5, 2026
🤖 Agent note · parked
developing-today commentedon Nov 5, 2026
Agent note — parked on ordering gate (task 10603)
direct, worked by lane code-m. Resumed from checkpoint stageverified(preliminary surface inventory already posted on issue id: design: client surfaces parity (from #5675) #5820 at 2026-11-05T16:18Z).developing-today commentedon Nov 5, 2026
🤖 Agent note · parked
verifiedcheckpoint (preliminary inventory already posted 2026-11-05T16:18Z)dezren39 commentedon Nov 5, 2026
🤖 Agent note · parked
Preliminary inventory (current main c8a1913, read-only):
pkgs/id/src/main.rsdispatchesCommand::Find(~line 466),Command::Search(~486),Command::Show(~502), andCommand::Peek(~516); all four build the same legacySearchOptions::new(first, last, count, exclude)and callcmd_find/cmd_search/cmd_show/cmd_peekinpkgs/id/src/commands/find.rs(lines 224 / 360), over the shared corecmd_find_matches(line 914).--formattag|group|union,--first/--last/--count/--excludelimiting. This is not the id: design: ID query language/shape v1 (from #5675) #5816 canonical structured query object; the design must map these four verbs onto that object without silently dropping the--format/ limiting behaviors scripts may already depend on.cmd_*handlers are the library entry points (pub use find::{...}inpkgs/id/src/commands/mod.rs); remote execution goes throughserve/client(pkgs/id/src/commands/serve.rs,client.rs) withcmd_find_matchesrunning against a remote node viaMetaRequest— so a script/API adapter over the canonical query object has an existing local/remote split to attach to.pkgs/id/src/commands/repl.rs,pkgs/id/src/repl/input.rs— the only othermcpmention besides serve.rs) and the web UI (pkgs/id/src/web/). The design must state whether the agent door is the REPL, the web/API layer, or a new adapter — without a privileged query path (packet invariant).developing-today commentedon Nov 5, 2026
🤖 Agent note · preliminary inventory — parked on sibling designs
pkgs/id/src/cli.rs—find/search/show/peekcommands with documented filtering (cli.rs module docs lines 20–41), plustag/claimsearch subcommands. This is the existing find/search behavior the decision record must map onto the id: design: ID query language/shape v1 (from #5675) #5816 canonical query object without silently removing compatibility.pkgs/id/src/directory_view.rs(the local UI that calls directory APIs such asrequest_friend_as/accept_friend_as— cf. PR fix(id/directory): validate friend-request IDs at admission, preserve legacy removals (#5624) #6239 review evidence), backed byworld_session/world_store.pkgs/id/src/meta_client.rsand the web layer (pkgs/id/src/web/routes.rs,web/world_ws.rs,web/tags_ws.rs) — the remote/server front door whose filtered execution is exactly what id: design: server-side filtered remote query execution (from #5675) #5818 owns.pkgs/id/src(grep for a shared Query struct hits only web-layer files) — parity is currently per-surface, which is the gap this design closes once id: design: server-side filtered remote query execution (from #5675) #5818/id: design: result shaping & cursor pagination (from #5675) #5821 settle.