Add column sorting and per-column filters to dashboard#2
Open
rocklambros wants to merge 5 commits into
Open
Conversation
Every column header is now clickable to cycle through ascending, descending, and no-sort states. A filter row below the header provides per-column text filtering. Both work alongside the existing toolbar filters (action checkboxes, stage dropdown, search). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
All events in the store have action=allow, but the allow checkbox was unchecked by default, causing every event to be filtered out and the dashboard to appear empty. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Root cause: the history API capped at 500 events and the frontend requested exactly 500. When the most recent 500+ events are all "allow" (with allow unchecked by default), the non-allow events (blocked, redacted, detected) fell outside that window and never reached the browser — even though stats reflected the full store. Fix: raise the API max to 10,000 (matching the store ring buffer size) and request all events from the frontend. Also reverts the incorrect allow-checkbox-checked change from the prior commit. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The history API previously returned the N most recent events regardless of filters, then the frontend filtered client-side. When the most recent events were all one action type, other action types never reached the browser despite existing in the store. Now the API accepts multi-value `actions`, `stage`, `start_ts`, and `end_ts` query parameters and filters before applying the limit. The frontend re-fetches when these toolbar filters change, keeping search and column filters as fast client-side post-filters. Also restores the datetime range picker and date+time column display from the dashboard-datetime-filter branch. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The history API now accepts multi-value `actions`, `stage`, `start_ts`, and `end_ts` query parameters. Filters are applied before the limit slice so the 500-event window always contains matching results. The frontend re-fetches when toolbar filters change; search and column filters remain client-side. Also adds seed-dashboard.py to generate 100 synthetic events covering all action types (block, redact, detect, allow) with varied tools, sessions, stages, and timestamps across 30 days. Restores datetime range picker and date+time column display. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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
Test plan
🤖 Generated with Claude Code