Skip to content

DOC-7027 Document StackExchange.Redis smart client handoffs (3.3.0) - #4047

Merged
andy-stark-redis merged 3 commits into
mainfrom
DOC-7027-se-redis-maintenance-notifications
Sep 18, 2026
Merged

andy-stark-redis merged 3 commits into
mainfrom
DOC-7027-se-redis-maintenance-notifications

Conversation

@andy-stark-redis

@andy-stark-redis andy-stark-redis commented Sep 18, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Documents the server-native maintenance notifications ("smart client handoffs" / hitless) feature StackExchange.Redis shipped in 3.3.0 (PR #3191), adding it to the cross-client SCH matrix at content/develop/clients/sch.md and a new "Connect using Smart client handoffs (SCH)" section on content/develop/clients/dotnet/connect.md.
  • Verified the shipped API directly against the 3.3.0 source rather than trusting the PR description, which surfaced two things worth knowing before merge:
    • The PR body claims the Redis Cloud/Enterprise/AMR provider profiles "turn it on where it is supported." The actual provider source has those MaintenanceNotifications overrides commented out — every profile inherits Disabled. Documented the real behavior: readers must set maintNotifications explicitly regardless of provider.
    • The new PushMaintenanceEvent type (marked [Experimental]/SER010) derives from the existing ServerMaintenanceEvent base class and is raised through the same ConnectionMultiplexer.ServerMaintenanceEvent event already documented on produsage.md for Azure's maintenance notifications. Added a disambiguation note there and a type-check example on the new SCH section so readers don't conflate the two.
  • This ticket was originally parked on a since-superseded commit (3d9b3a6c, from the four-PR series that started 2026-09-01). That series never shipped as those commits — it was reimplemented as PR update for redisvl 0.17.0 #3191. Updated the ticket's pickup-trigger note accordingly.

Test plan

  • hugo build is clean — no new warnings on the touched pages.
  • Reviewer sanity-check: the SCH parameter table and code example against a real 3.3.0 connection, if a Cloud/Enterprise environment is handy.

Closes DOC-7027.

🤖 Generated with Claude Code


Note

Low Risk
Documentation-only updates with no runtime, auth, or data-handling changes.

Overview
Documents Smart client handoffs (SCH) for StackExchange.Redis v3.3.0, aligning .NET with the other client libraries already covered in the SCH overview.

A new Connect using Smart client handoffs (SCH) section on the .NET connect page explains enabling SCH via maintNotifications / MaintenanceNotifications, lists SCH-related ConfigurationOptions, and covers the experimental API (SER010), event handling via ServerMaintenanceEvent (including PushMaintenanceEvent vs provider-specific notifications), and MaintenanceType on connection/timeout exceptions. It also states that provider profiles (amr, rediscloud, enterprise) do not turn SCH on—clients must set it explicitly.

The cross-client sch.md page adds StackExchange.Redis to the support matrix (v3.3.0 for basic and OSS Cluster) and links the new section. produsage.md notes that the existing server notification event path also carries SCH and points readers to type-check event args.

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

3.3.0 shipped the maintenance-notifications feature as PR #3191, which
superseded the original 4-PR series this ticket was pinned to (that series'
commits diverged; #3191 reimplemented it). Verified the shipped API
directly against the 3.3.0 source rather than the PR description, which
paid off twice:

- The PR body claims the Redis Cloud/Enterprise/AMR provider profiles
  "turn it on where it is supported." The actual provider source has those
  MaintenanceNotifications overrides commented out — every profile inherits
  Disabled. Documented the real behavior; readers must set
  `maintNotifications` explicitly regardless of provider.
- `PushMaintenanceEvent` (the new, [Experimental]/SER010 type) turns out to
  derive from the existing `ServerMaintenanceEvent` base class and is raised
  through the *same* `ConnectionMultiplexer.ServerMaintenanceEvent` event
  already documented on produsage.md for Azure's maintenance notifications.
  Same event, two possible event-args types. Added a disambiguation note on
  produsage.md and a type-check example on the new connect.md section so
  readers don't conflate the two.

Added the SCH section to dotnet/connect.md (config keys, parameter table,
event handling), a StackExchange.Redis row to the cross-client sch.md
matrix (with a note that this client's support is still [Experimental],
unlike the other rows), and cross-links both ways.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Sep 18, 2026 •

Copy link
Copy Markdown
Contributor

DOC-7027

@github-actions

github-actions Bot commented Sep 18, 2026 •

Copy link
Copy Markdown
Contributor

🧠 Redis Memory

Found 7 related items from repository history:

Memory updated at c07397f

@dwdougherty dwdougherty left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

LGTM.

@andy-stark-redis

Copy link
Copy Markdown
Contributor Author

Thanks @dwdougherty !

@andy-stark-redis
andy-stark-redis merged commit 1ed4321 into main Sep 18, 2026
99 checks passed
@andy-stark-redis
andy-stark-redis deleted the DOC-7027-se-redis-maintenance-notifications branch September 18, 2026 15:06
andy-stark-redis added a commit that referenced this pull request Sep 18, 2026
…okup

Removes `.claude/state/assess-comments.coverage.md`, the hand-maintained
coverage ledger `/docs:assess-comments` self-updated on every run. It was a
single shared file every branch's run wrote to, so it repeatedly collided on
merges (documented twice in its own worked-examples log before removal), and
it hand-duplicated experience that `/reflect` + `/finalize` squash messages
already carry durably.

Adds step 3a: treats the Redis repo memory bot's PR comment as a live
pointer into project history instead of a ledger substitute. Live-tested
against two real PRs (#4047, then this PR's own #4050) before landing: repo
memory's *rendered* comment only echoes each related item's title, but the
same comment carries a hidden `<!-- redis-repo-memory-data -->` base64 blob
with a per-item relevance `score` and a ~500-char `bodySummary` preview,
already fetched at zero extra network cost. For commit-typed items the
preview is a genuine (if truncated) slice of the real `/reflect`+`/finalize`
message — confirmed on #4047's own squash commit and again on this PR's,
where the closest match (score 0.265) repo memory surfaced was the very
ledger-update commit this PR deletes, correctly ranked well above four
same-score, off-topic DOC-6909 commits. Only a high-scoring item's full
squash message is worth the extra `git log`/`gh api` round-trip for
citation.

Folded the ledger's durable, cross-PR bugbot calibration axes (async
dispatch order, npm transitive-dep hoisting, list-vs-item endpoint shape,
trusting a stale PR description) into a static reference block in step 7,
since those aren't tied to any one PR and repo memory's per-PR retrieval
won't automatically resurface them as a general rule.

Learned: repo memory's rendered comment only echoes titles; the real score + a truncated content preview live in the hidden redis-repo-memory-data base64 blob, decodable for free from the comment already fetched in step 2
Constraint: assess-comments must not regain a self-updating shared-state file — that design repeatedly collided across branches on merge, which is why the ledger was removed
Gaps: never exercised step 7/9's precedent-citing behavior against a real contested finding — both test PRs (#4047, #4050) had zero bugbot/human findings to reconcile
Ticket: DOC-7085
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

clients Client library docs

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants