docs: sync command-reference + managing-dragonfly to Dragonfly v1.39.0#537
Merged
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Code Review by Qodo
1. ft.hybrid.md links to redis.io
|
romange
approved these changes
Jun 10, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Syncs the command-reference and managing-dragonfly docs from Dragonfly v1.38.0 to v1.39.0 using the in-repo docsync tooling (
flags_sync+docs_sync), then takes the story one step further: every machine-generated change was replayed against a live v1.39.0 Docker container and the C++ source, and corrected wherever the tool was wrong. A brand-new page documents the Dragonfly-specificFT.HYBRIDcommand, and the sync harness itself was patched so quoted example values are no longer mangled — the root cause of the example corruption repaired here.Every changed file is traceable to a bullet below.
Reviewer focus — start here:
FT.HYBRIDpage (docs/command-reference/search/ft.hybrid.md, 245 lines) — a Dragonfly-specific command, so there is no upstream reference to diff against. Please scrutinize the syntax, theCOMBINE RRF/LINEARsemantics, theKNN/RANGEmutual exclusion, and theRANGEcannot-combine-with-FILTERconstraint.New documentation
search/ft.hybrid.md(new, 245 lines) — full reference for Dragonfly's hybrid full-text (SEARCH) + vector (VSIM/KNN/RANGE) search:COMBINE RRF(default) andCOMBINE LINEARrank fusion,YIELD_SCORE_AS(settable independently for the text, vector, and combined scores),LOAD,LIMIT,PARAMS, the four-field map reply, and three worked examples (default RRF, per-pipeline score yielding, weighted linear) whose output was captured from a live v1.39.0 container.compatibility.md— adds anFT.HYBRIDrow to the Search family, markedFully supported.FT.HYBRIDadded fromft.search.md,ft.aggregate.md.Verified & corrected sync output
search/ft.aggregate.md— documentsADDSCORES(adds__score, defaults to the BM25STD scorer) andSCORER(BM25STD/TFIDF/TFIDF.DOCNORM); correctsWITHSCORESto note it is accepted forFT.SEARCHcompatibility but silently ignored byFT.AGGREGATE(useADDSCORESto expose__score).search/ft.search.md— documentsWITHSCORES(default scorerBM25STD) andSCORER scorer_name(BM25STD/TFIDF/TFIDF.DOCNORM), the score's position in the reply, and the query operators~term(optional),w'glob*'(glob on TEXT/TAG), and"phrase"~N(slop); plus two scored-search examples.search/ft.create.md— clarifies that JSON field identifiers may be a JSONPath expression ($.title) or a bare field name (title), with a new bare-name example.server-management/bgsave.md— corrects the syntax toBGSAVE [SCHEDULE] [RDB|DF] ..., documentsSCHEDULEas a no-op (concurrent saves still rejected, not queued); corrects the Return to a plainOK(not the Redis-styleBackground saving started/Background saving scheduledstrings); fixes an "Equvalent" typo.server-management/client-list.md— documents theCLIENT LIST [TYPE <type>] [ID <client-id> ...]filters and notes thatTYPEandIDare mutually exclusive (one filter per call).scripting.md— documents the Lua sandbox restrictions and corrects therawset/setmetatable/getmetatabledescription: the protected versions guard the global environment (_G); they do not prevent a script from reassigning/shadowing those names. Also notesload()is text-mode-only anddragonfly.randstr()validates its size argument.tiering.md— notes data tiering now covers list nodes and mutable hash commands, experimentally, and replaces the retiredtiered_storage_write_depthflag withtiered_max_pending_stash_bytes.cluster-mode.md— updates the debug tip from--logtostdoutto--logtostderr(the former was removed in v1.39.0).monitoring.md— adds a Replication Metrics section noting the/metricsendpoint also exposes replication role, connected replicas, and lag.Fixed examples
hashes/hsetex.md— rewrites the example blocks the sync harness had corrupted into self-contained, verified v1.39.0 sequences: unquoted argument values, correct TTLs (FIELDTTLnow30/60), and the new-fields-added return semantics forNXandKEEPTTL.generic/restore.md— replaces the corruptedRESTOREexample with a realSET→DUMP→DEL→RESTORE→GETround-trip in a plain fence, plus a note that the payload is tied to the server's RDB version; keeps the verified "listpack/intset payloads are deeply validated on restore" prose.Flag reference updates
flags.mdre-synced viaflags_syncto v1.39.0:--container_iteration_yield_interval_usec,--tiered_max_pending_stash_bytes,--listpack_max_bytes,--listpack_max_field_len,--s3_use_helio_client,--serialization_tagged_chunks,--cluster_coordinator_connect_timeout_ms,--cluster_coordinator_response_timeout_ms,--logbuflevel,--logbufsecs,--enable_memcache_io_loop_v2,--enable_resp_io_loop_v2,--journal_omit_redundant_writes,--use_oah_set.--tiered_storage_write_depth,--logtostdout,--experimental_io_loop_v2.--max_log_size1800→200,--rdb_sbf_chunkedfalse→true.Tooling
tools/docsync/docs_sync.py— fixes the example tokenizer with a newtokenize_invocation()helper that usesshlex.splitso quoted values are unquoted the way redis-cli would (e.g."alice"→aliceinstead of being stored with literal quotes), with a fallback to a plain whitespace split on invalid shell syntax (unbalanced quotes). Wired into bothverify_invocations()andverify_and_substitute_examples(). This is the root-cause fix for the kind of example corruption repaired inhsetex.mdandrestore.md.Verification
yarn buildpasses.FT.HYBRID,HSETEX,RESTORE, scoring) were run against a live Dragonfly v1.39.0 Docker container and the captured output is what appears in the docs.WITHSCORESsilently ignored byFT.AGGREGATE,BGSAVEreturns plainOK, the Lua sandbox guards_G,CLIENT LIST TYPE/IDmutually exclusive, hash tiering experimental, theFT.HYBRIDreply shape) were checked against the v1.39.0 C++ source.Notes for reviewers
bgsave.mdReturn correction (Background saving started→ plainOK) is a pre-existing fix — it is not produced by the v1.38 → v1.39 sync.FT.HYBRIDFully supportedentry incompatibility.mdis a curated judgement, not a tool-generated value.