pub const AGENT_SURFACE_ALIAS_ARRAYS: &[(&str, &str, &[&str])];Expand description
GAP-SG-142: derived result arrays suppressed once the agent-native surface reshapes their canonical source.
Each entry is (subcommand, canonical member, members that merely restate it): list clones items into memories, graph export clones nodes
into entities, recall publishes results as the concatenation of
direct_matches and graph_matches, and related clones results into
related_memories.
The subcommand is part of the key because “derived” is a property of one
command’s envelope, not of a member name. results means a concatenation in
recall and a clone in related, and in hybrid-search it means neither:
there graph_expansion skips every id already present in results, so
results and graph_matches are DISJOINT and carry different types
(HybridSearchItem against RecallItem). Matching on the member name alone
deleted a set no other member restated — and one that
docs/schemas/hybrid-search.schema.json lists under required, so the
suppression produced an envelope invalid against this project’s own schema.
hybrid-search is absent from this table by construction, which is what
keeps that from happening again.
Suppression only removes members that are actually present, so a declared member the envelope never carried is a silent no-op and is never reported as removed.
The surface reshapes exactly one array per envelope, so leaving a genuinely
derived member in place shipped the unfiltered, unsorted, unprojected copy
right next to the shaped one — the redundancy the projection exists to
remove, and a meta record (sort, output_count) that contradicted half the
payload. Those are therefore dropped whenever a knob is set.
Without any knob the surface is a no-op and nothing is removed, so the public v1.0.66 alias contract stays intact byte for byte for every existing caller.