Repository navigation
Conversation
- Namespace setup with presets, custom schema and live preview - Sortable session list with truncation, partial and oversize notices - Session detail with timeline, tool calls, raw toggle and export Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Start with one element when MEMORY USAGE exceeds the cap - Grow later windows from the average element size - Page streams by id instead of one fixed-size XRANGE Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Scan up to 10 pages per primary instead of one - Return exhausted so the page can say when the search was partial Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Open a dedicated reader connection with CLIENT NO-TOUCH ON - Fall back to the shared connection if the reader cannot connect Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configuration
You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
jamby77
left a comment
There was a problem hiding this comment.
I checked the new ReDoS validator, the NO-TOUCH reader lifecycle (standalone, the cluster 'myself' node, the fallback, release), list/zset/stream byte-cap paging, preview SCAN paging, server-side Pro gating, export, and connection/namespace state resets. Paging, connection cleanup and gating hold up. The validator still accepts a regex that backtracks for a very long time, and two smaller UI issues are listed below.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Reject any repeated group that repeats or alternates inside - Hide a preview once the inputs change or a later preview fails - Suggest a session regex with the required named group - Show hashes with a base64 field in full in raw view Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
jamby77
left a comment
There was a problem hiding this comment.
Re-checked the stack at 5f47de2. All seven earlier findings are fixed:
- non-text content blocks and Anthropic/LlamaIndex tool calls (e82dca8);
- matched-key cap in
keysForSession(253dea0); - byte-sized HSCAN windows (0b65436);
- the three bounded-repeat ReDoS patterns, the placeholder, and the stale preview (5f47de2).
I ran the validator in Node: those three patterns are now rejected, and the presets' own regexes plus ^chat:(?<session>[^:]+)$ still pass. One gap is left in the same guard:
- Compile custom session regexes with V8's linear-time engine and reject patterns it cannot run (lookarounds, backreferences, large nested repeats) - Report a preview as non-exhaustive when a cluster primary was unreachable - Keep truncation and failed-node warnings visible when no session matched Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Count {m,n} as n, {m,} as m+1 and */+/? as 1, multiplying nested repeats
- Reject session regexes whose repeats expand past 64 characters
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 04255a9. Configure here.

Summary
Last of three stacked PRs for the Session Explorer. This PR adds the Session Explorer page and a gated end-to-end test against seeded library data. It also carries the fixes from a whole-branch review, some of which touch API code from the earlier PRs.
Stack: fixtures → api → web
Changes
/session-explorerpage with a sidebar entry:session-explorer.e2e-spec.ts: seeds every library, boots the API against 6380 and checks each preset end to end. It is skipped unlessRUN_SESSION_EXPLORER_E2E=true.CLIENT NO-TOUCH ON, so viewing a session doesn't reset key idle times (best effort on servers before 7.2);Checklist
roborev review --branchor/roborev-review-branchin Claude Code (internal)🤖 Generated with Claude Code
Note
Medium Risk
Touches Valkey read paths (NO-TOUCH connections, SCAN/paging, adaptive fetches) and user-supplied session regex validation; mis-counting or regex edge cases could affect preview completeness or reject valid custom schemas.
Overview
Adds a Session Explorer UI at
/session-explorer(sidebar entry): namespace create/edit with live preview and custom schema fields, sortable session list with optional oversize badges, merged message timeline with tool calls, per-key structured/raw views, incomplete-session warnings, and JSON export via a newsessionExplorerApi+ React Query hooks.API hardening and behavior (carried with this stack): custom
sessionRegexvalidation now blocks catastrophic backtracking (nested/alternation repeats, >3 unbounded repeats, repeat expansion budget, lookarounds/backreferences) and matches keys with Node’s linear regex flag; keys over 512 chars skip regex. Preview SCANs up to 10 pages per primary and returnsexhaustedwhen the search was partial or a node failed. Valkey reads use duplicated connections withCLIENT NO-TOUCH ON; list/zset/hash/stream reads use byte-cap–aware fetch windows and paged streams. SessionfailedNodesis deduplicated across scan vs read (max, not sum).Adds gated
session-explorer.e2e-spec.ts(fixture seed + HTTP checks per preset) and expands unit tests for regex safety, primary nodes, reader paging, and web components.Reviewed by Cursor Bugbot for commit 04255a9. Bugbot is set up for automated code reviews on this repo. Configure here.