feat(vscode): governance visualization, detail panels, and browser executive dashboard#738
Open
MythologIQ wants to merge 11 commits intomicrosoft:mainfrom
Open
feat(vscode): governance visualization, detail panels, and browser executive dashboard#738MythologIQ wants to merge 11 commits intomicrosoft:mainfrom
MythologIQ wants to merge 11 commits intomicrosoft:mainfrom
Conversation
Add GovernanceServer with REST API and browser experience, mock backends for policy/SLO/topology data, export system with HTML report generation, observability metrics exporter, and service layer for provider factory and live client integration. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Replace 8-view sidebar with unified 3-slot React panel system. Add GovernanceStore with event bus, priority engine, scanning mode, and attention toggle. Add SLO Dashboard, Topology Graph, and Governance Hub detail panels with D3.js force graph and Chart.js sparklines. Bundle CDN dependencies locally in assets/vendor/. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add diagnostic provider with governance-specific rules, code actions for quick fixes, integration rule definitions, and completion provider. Add governance-aware status bar with real-time indicators. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Move VS Code extension from packages/agent-os/extensions/vscode/ to packages/agent-os-vscode/ as a standalone sibling package (aligns with upstream PR microsoft#546). Integrate upstream security fixes: CSP nonces on all legacy panels, prototype pollution protection in WorkflowDesigner, ReDoS-safe regex in PolicyEngine, token-in-SecretStorage for SSO. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add HELP.md user guide, SECURITY.md policy, update CHANGELOG.md and README.md. Add 37 test files covering mock backends, language providers, webview components, governance store, and sidebar subsystems. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Replace DOM-based esc() with string-based replacement that escapes all five HTML-significant characters (& < > " '), consistent with ReportGenerator.ts and escapeHtml utility. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- WebSocket auth: move session token from URL query string to Sec-WebSocket-Protocol subprotocol header. Query strings can leak into proxy logs and browser history; subprotocol headers are not logged by default. Client sends ['governance-v1', token], server validates via handleProtocols callback. - Rate limiter: add TTL eviction to prevent unbounded Map growth. Stale entries are pruned on each checkRateLimit() call. - Python path: add null byte rejection to prevent POSIX path truncation attacks. spawn() already uses array args (no shell), so metachar regex is defense-in-depth only. - CSP style-src: document why 'unsafe-inline' is required (VS Code injects theme CSS variables as inline styles at runtime, outside extension control). Cannot use style nonces/hashes for platform-injected styles. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Correct handleProtocols comment: ws library does NOT reject connections when false is returned; real auth is in the connection handler - Update serverHelpers.ts comment: token now via subprotocol, not query - Update HELP.md: reflect subprotocol auth and TTL eviction - Add null byte rejection test for isValidPythonPath - Add CSP security comments to all 4 legacy webview panels Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- GovernanceStore: constrain panelType from string to DetailPanelType
union ('slo'|'topology'|'audit'|'policy'|'hub') for compile-time
safety on detail subscriptions and fetcher dispatch
- MetricsExporter: validate endpoint URL on construction and
setEndpoint(). Reject non-URL strings and non-http(s) protocols
with console.warn. push() silently no-ops when endpoint is empty.
4 new tests for validation behavior.
- Sidebar keyboard navigation: Arrow Up/Down moves focus between
panel slots. Slots have tabIndex, role="region", aria-label, and
focus-visible ring. Keybindings registered in package.json
(ctrl+shift+down/up when sidebar focused).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…urity hardening Add 5 dedicated detail webview panels (Kernel Debugger, Memory Browser, Safety Stats, Audit Log, Active Policies) so all 8 sidebar panels now open their own full-panel React views instead of falling back to the Governance Hub. Redesign the browser dashboard as an executive governance experience: - Single-screen grid layout with all panels visible simultaneously - 6 premium themes (Corporate Slate, Midnight Blue, Onyx, Azure Mist, High Contrast Dark, High Contrast Light) persisted via localStorage - Policy editor with 5 governance templates (Strict Security, SOC 2, GDPR, Development, Rate Limiting), validation, test scenarios, and file download/import - Real-time filtering on Audit Log (by severity) and Policies (by action) - SLO trend arrows showing delta between updates - Full data broadcast (SLO, topology, audit, policies) over WebSocket Security hardening: - Fix CSP mismatch between HTTP header and HTML meta tag (blob: for downloads) - Escape all data values in browser innerHTML with esc() including numerics - Sanitize CSS class attribute injection via regex whitelist - Fix pre-existing XSS in CMVK results panel (escHtml on external API data) Sidebar fixes: - Panel settings modal now fully opaque (was 5% transparent) - Browser launch button added to sidebar header - PROMOTE_COMMANDS correctly routes all 8 panels Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Take our governance visualization features (detail panels, browser dashboard, security hardening) over upstream's base version. Bump version to 3.1.0 to follow upstream's 3.0.2 scheme. Remove package-lock.json per upstream convention. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
16 tasks
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
Complete governance visualization system for the Agent OS VS Code extension. Builds a React/Tailwind webview panel system with 8 dedicated detail panels, a 3-slot configurable sidebar, and a browser-based executive governance dashboard with theming, policy editor, and real-time data.
10 commits | 183 files changed | +21,568 / -871 lines
What's Included
1. Governance Visualization Infrastructure
2. React/Tailwind Webview Panel System
3. Browser Executive Dashboard
Single-screen grid layout served via local HTTP server (127.0.0.1 only):
4. Language Intelligence
5. Security Hardening
6. Testing and Documentation
Architecture
Test plan
Generated with Claude Code