Repository navigation
feat(playground): add real-time event filter and search bar (fixes #774) - #792
Merged
SHAURYASANYAL3 merged 1 commit intoOct 28, 2026
Conversation
Contributor
🧪 PR Test Results
Python 3.12 · commit 7b71028 |
SHAURYASANYAL3
approved these changes
Oct 28, 2026
SHAURYASANYAL3
left a comment
Collaborator
There was a problem hiding this comment.
NSoC '26 Maintainer Verification & Level 1 Approval 🚀
Outstanding work @JaiPrakashVI!
- Interface Implementation: Clean vanilla JS event filter in
panopti/playground.htmlwith zero external dependencies and matching cyberpunk color palette. - Frontend Integration: Type-safe React state management (
filterMode,searchQuery) with memoized streaming computation in Next.js (agentwatch-landing/app/playground/page.tsx). - Responsive Layout: Verified mobile viewport wrapping and touch controls on screens < 600px.
- CI / Quality Gate: 100% green pass (12/12 checks passing) across all matrix tests, linters, and frontend build checks.
- Accreditation: Scored for NSoC '26 (Level 1,
soc26).
Merging into main! 🛡️
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.
📌 Description
This pull request enhances the interactive web playground by adding real-time search and event filtering for the cryptographic audit console stream across both implementations:
panopti/playground.html)agentwatch-landing/app/playground/page.tsx)Key Additions & Changes:
[All],[Vetoes Only], and[Approved Only]filter toggles with cyberpunk-themed active state indicators (neon cyan--accent, danger--danger, and success--success).✕) button.Showing X / Y events) and an informative fallback message (⚡ No audit events matching current filter or search criteria.) when no logs match the active query.< 600px.panopti/playground.html.filterMode,searchQuery) and memoized stream computation (useMemo) with Tailwind CSS in Next.js.Fixes #774
🏛️ Architectural Plane & Classification
Which architectural plane does this change target? (
docs/v3/V3_ARCHITECTURE.md)🧪 Verification & Evidence of Testing
1. Test Summary
A total of 19 distinct manual and automated verification test cases were conducted across both environments:
Scenario Interceptions (5 test cases):
DROP TABLE users;) -> Emits[VETO]with red highlight.retry_count: 8) -> Emits[VETO].0xAttacker) -> Emits[VETO].fetch_catalog) -> Emits[ALLOW]with green highlight.[INIT]).Filter Modes (3 test cases):
6.
[All]mode -> Displays complete stream (INIT,VETO,ALLOW).7.
[Vetoes Only]mode -> Filters exclusively for blocked invariant breaches (VETO).8.
[Approved Only]mode -> Filters exclusively for verified tool executions (ALLOW).Search & Substring Queries (6 test cases):
9. Exact tool name query:
"execute_sql"-> Correctly isolates SQL events.10. Partial keyword query:
"Invariant"-> Matches invariant violation descriptions.11. Parameter query:
"retry_count"-> Matches parameter text.12. Case-insensitivity test:
"veto","VETO","Veto"-> Yields identical filtered results.13. Non-matching query:
"nonexistent_tool"-> Triggers empty state fallback.14. Clear button (
✕) -> Resets search query and restores stream view instantly.Combined Multi-Condition & Dynamic Behavior (3 test cases):
15. Active filter
Vetoes Only+ search"transfer_funds"-> Correctly isolates single vetoed mutation.16. Dynamic interception with active filter -> Newly intercepted events immediately inherit filter rules.
17. Empty state fallback -> Correctly displays when combined conditions yield 0 results.
Responsive Layout (2 test cases):
18. Desktop viewport (> 900px) -> Inline toolbar alignment.
19. Mobile viewport (< 600px) -> Controls stack gracefully into full-width touch targets.
2. Evidence of Automated Verification Commands
Next.js Production Build & TypeScript Typecheck
cd agentwatch-landing npm run build