Skip to content

Add FT.ALIASLIST search command support - #518

Merged
mgravell merged 7 commits into
masterfrom
im/8_10-ft-alias-list
Jul 28, 2026
Merged

mgravell merged 7 commits into
masterfrom
im/8_10-ft-alias-list

Conversation

@uglide

@uglide uglide commented Jul 14, 2026 •

Copy link
Copy Markdown
Contributor

Add support for the FT.ALIASLIST command (Query Engine 8.10), which lists all aliases associated with a given index.

  • Add ALIASLIST constant and SearchCommandBuilder.AliasList(index)
  • Expose AliasList / AliasListAsync on ISearchCommands and ISearchCommandsAsync (returning RedisResult[], matching _List/TagVals)
  • Register the new public API surface in PublicAPI.Unshipped.txt
  • Add sync and async integration tests (guarded to Redis 8.10+)

Note

Low Risk
Additive public API and thin command wiring with no changes to existing alias or search behavior; main caveat is server version requirement (8.10) for the new command.

Overview
Adds client support for FT.ALIASLIST (Query Engine 8.10+), so callers can list all aliases bound to a search index name.

AliasList / AliasListAsync are exposed on the search command interfaces and implementations, wired through SearchCommandBuilder.AliasList and a new FT.ALIASLIST literal. Results are returned as RedisResult[], consistent with TagVals and _List. The new surface is registered in PublicAPI.Unshipped.txt.

Integration tests cover empty lists, add/remove alias flows, and server errors for missing indexes (Redis 8.10+). Existing alias tests reuse shared helpers that skip on legacy cluster CROSSSLOT failures.

Reviewed by Cursor Bugbot for commit c7ba0ca. Bugbot is set up for automated code reviews on this repo. Configure here.

uglide added 2 commits July 14, 2026 17:26
Add support for the FT.ALIASLIST command (Query Engine 8.10), which
lists all aliases associated with a given index.

- Add ALIASLIST constant and SearchCommandBuilder.AliasList(index)
- Expose AliasList / AliasListAsync on ISearchCommands and
  ISearchCommandsAsync (returning RedisResult[], matching _List/TagVals)
- Register the new public API surface in PublicAPI.Unshipped.txt
- Add sync and async integration tests (guarded to Redis 8.10+)

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit d536e0d. Configure here.

Comment thread tests/NRedisStack.Tests/Search/SearchTests.cs
@mgravell
mgravell merged commit 37f7662 into master Jul 28, 2026
23 checks passed
@mgravell
mgravell deleted the im/8_10-ft-alias-list branch July 28, 2026 11:49
uglide added a commit that referenced this pull request Oct 9, 2026
* Add an extend-commands-api agent skill (supervised and unattended)

NRedisStack had no agent instructions for adding commands. Add
.agents/skills/extend-commands-api/SKILL.md, with .claude/skills symlinked to
it as in Lettuce, modelled on the Jedis and Lettuce skills of the same name
and grounded in this repo's conventions:
- the module layout: interfaces with <seealso> docs, sync classes inheriting
  async, <Module>CommandBuilder returning SerializedCommand with a
  CommandCategory, and the Literals classes
- PublicAPI.Unshipped.txt, and Experiments for preview features
- tests: EndpointsFixture with AllEnvironments / StandaloneOnly,
  CreateKeyName for multi-key commands on cluster, SkipIfRedisTheory gating,
  and REDIS_VERSION
- dotnet format, plus FT.ALIASLIST (#518) as the worked example

Supervised (default) follows plan mode and approval. Unattended mode, used
only on `Mode: unattended` or CLIENT_SKILL_MODE=unattended, takes the HLD and
the endpoints from the automation. It runs the new theories against standalone
and cluster via REDIS_ENDPOINTS_CONFIG_PATH and reports counts per topology.

* Describe the password-protected unattended servers

The automation's standalone and cluster now require passwords. endpoints.json
carries them per entry, EndpointConfig.CreateConnection applies them, and
the cluster probe authenticates.
uglide added a commit that referenced this pull request Oct 9, 2026
…ll (stacked on #574) (#575)

* Add an extend-commands-api agent skill (supervised and unattended)

NRedisStack had no agent instructions for adding commands. Add
.agents/skills/extend-commands-api/SKILL.md, with .claude/skills symlinked to
it as in Lettuce, modelled on the Jedis and Lettuce skills of the same name
and grounded in this repo's conventions:
- the module layout: interfaces with <seealso> docs, sync classes inheriting
  async, <Module>CommandBuilder returning SerializedCommand with a
  CommandCategory, and the Literals classes
- PublicAPI.Unshipped.txt, and Experiments for preview features
- tests: EndpointsFixture with AllEnvironments / StandaloneOnly,
  CreateKeyName for multi-key commands on cluster, SkipIfRedisTheory gating,
  and REDIS_VERSION
- dotnet format, plus FT.ALIASLIST (#518) as the worked example

Supervised (default) follows plan mode and approval. Unattended mode, used
only on `Mode: unattended` or CLIENT_SKILL_MODE=unattended, takes the HLD and
the endpoints from the automation. It runs the new theories against standalone
and cluster via REDIS_ENDPOINTS_CONFIG_PATH and reports counts per topology.

* Describe the password-protected unattended servers

The automation's standalone and cluster now require passwords. endpoints.json
carries them per entry, EndpointConfig.CreateConnection applies them, and
the cluster probe authenticates.

* docs(agents): add create-implementation-plan-for-redis-api-change skill

* docs(agents): address Codex review on the planning skill

- folder-to-class stem mapping for CuckooFilter (Cuckoo*) and CountMinSketch (Cms*)
- TimeSeries split test classes need both the sync and the async target
- add rows may name files not yet on master; decision_class: none for no-change plans;
  supervised runs default to ./PLAN.md; agent guidance is procedure, not data
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants