Commit 0cb89f8
authored
feat: Enhanced logs dashboard with multi-pane view, notifications, and browser launch (#68)
* fix: update go.mod and go.sum dependencies
* Enhance service detection and logging for multi-service architecture
- Updated service runtime detection tests to mark common ports (3000, 5000, 8000, 8080) as used to prevent conflicts and interactive prompts.
- Introduced a new DashboardConfig struct in AzureYaml to support dashboard configuration in azure.yaml.
- Added a simulated cache service with logging for Redis-style operations, including memory usage tracking and connection errors.
- Implemented a simulated database service with SQL query logging, including slow query detection and connection management.
- Created a worker service to simulate background job processing with logging for job status and queue depth.
- Updated fullstack-test project to include new services (cache, database, worker) with detailed logging patterns and configurations.
- Adjusted ports for hooks-platform-test and hooks-test to avoid conflicts with existing services.
- Added README documentation for the fullstack-test project, detailing service configurations, expected outputs, and testing scenarios.
* feat: enhance logging and service management with improved safety and race condition handling
* feat: centralize log utilities and enhance logging functionality across components
* feat: implement OS notification manager for service state changes and enhance logging with clickable dashboard links
* Improve log pane functionality and notifications
* feat: add log filtering capabilities to suppress noisy log messages
- Introduced LogFilter and related functionality to filter log messages based on regex patterns.
- Enhanced logs command with new flags for excluding patterns and disabling built-in filters.
- Updated log buffer to utilize the log filter for managing log entries.
- Integrated log filtering configuration into azure.yaml for project and service levels.
- Added comprehensive tests for log filtering functionality and its integration with existing logging mechanisms.
* feat: Implement dashboard browser launch feature with configuration and cross-platform support
- Added automatic dashboard browser launch on `azd app run`
- Introduced `--browser=<target>` and `--no-browser` flags
- Integrated VS Code Simple Browser detection
- Configurable via `azure.yaml` and `azd config`
- Enhanced error handling and async launch capabilities
- Comprehensive documentation and tests included
---
feat: Add light/dark mode switcher with accessibility compliance
- Implemented theme toggle with moon/sun icon
- Added local storage persistence for theme selection
- Ensured WCAG 2.1 AA compliance and keyboard navigation support
- Completed design and implementation tasks with QA validation
---
feat: Enhance log pane with visual improvements and dynamic behavior
- Introduced status-based header coloring for logs
- Implemented dynamic space redistribution on pane collapse/expand
- Ensured compatibility with light and dark modes
- Achieved WCAG AA contrast compliance
---
feat: Complete process state notifications system for Azure CLI
- Developed backend monitoring and notification preferences
- Implemented OS notifications for Windows, macOS, and Linux
- Created CLI commands for managing notifications
- Achieved comprehensive test coverage and E2E testing
---
chore: Review and improve test coverage for dashboard components
- Increased overall test coverage from 91.84% to 98.52%
- Added unit tests and Playwright E2E tests for dashboard features
- Documented testing procedures and results
---
fix: Integrate notifications command into azd app command structure
- Registered notifications command with main app command
- Updated command file structure for consistency
- Ensured proper functionality through testing
---
test: Add E2E tests for notifications pipeline and handlers
- Implemented tests for notification flow, OS notification handling, and database persistence
- Verified event broadcasting through WebSocket handler
- Ensured severity mapping and conversion logic are functioning correctly
* feat: Add useLogStream hook for streaming logs with WebSocket support and initial log fetching
* fix: Improve type assertion for localStorage retrieval in LogsMultiPaneView and clean up variable formatting in logs.go and logfilter_test.go
* Implement browser target resolution and validation tests
- Added TestResolveBrowserTarget to validate browser target resolution logic based on flags and project configuration.
- Introduced TestValidateBrowserFlag to ensure proper validation of browser flags.
- Created TestBrowserFlagPriority to verify the priority of browser flags over project configurations.
- Refactored service operation handling in server.go to use a new serviceOperationHandler for start, stop, and restart operations.
- Added atomic file writing utilities in fileutil.go for JSON data to ensure data integrity during writes.
- Introduced constants for file permissions and dashboard configuration in constants.go.
- Simplified pattern loading and saving logic in logs_config.go by utilizing new helper functions.
* feat: Enhance browser launch with context support and add validation for log patterns and overrides
* feat: Add URL validation in Launch function and enhance tests for URL schemes
* feat(logs): add optional port display in LogsPane component
fix(tests): update ServiceStatusCard tests to reflect status label changes from Info to Running
refactor(ServiceStatusCard): change Info status to Running and update related logic
fix(go.mod): replace gorilla/websocket with coder/websocket for improved functionality
fix(tests): update WebSocket tests to use coder/websocket and improve context handling
fix(config): change directory permissions for config and notification preferences to be more restrictive
feat(dashboard): implement request body size limit to prevent DoS attacks in logs configuration
fix(dashboard): escape user-controllable values in fallback handler to prevent XSS vulnerabilities
refactor(websocket): improve WebSocket handling with nhooyr/websocket and add origin validation
feat(notifications): add sanitization for AppleScript strings to prevent command injection attacks
* refactor(websocket): update health monitor and client references for coder/websocket
* feat: Implement code review fixes including security hardening, context propagation, and memory management improvements
* test(notify): add type assertion for darwinNotifier in Send_ScriptFormat test
* refactor: Improve button accessibility and update service status indicators in ServiceStatusCard1 parent bebd097 commit 0cb89f8
File tree
203 files changed
+29382
-642
lines changed- cli
- dashboard
- e2e
- src
- components
- ui
- hooks
- lib
- test
- design/components
- docs
- archive
- commands
- dev
- features
- research
- specs
- code-review-fixes
- dashboard-browser-launch
- light-dark-mode
- log-pane-enhancements
- logs-dashboard
- process-notifications
- src
- cmd/app
- commands
- internal
- browser
- config
- constants
- dashboard
- fileutil
- installer
- logging
- monitor
- notifications
- notify
- onboarding
- output
- pathutil
- portmanager
- registry
- runner
- security
- service
- tests/projects
- aspire-test/TestAppHost
- fullstack-test
- .azure
- cache
- database
- worker
- hooks-platform-test
- hooks-test
- schemas/v1.1
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
203 files changed
+29382
-642
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
16 | 20 | | |
17 | 21 | | |
18 | 22 | | |
| |||
107 | 111 | | |
108 | 112 | | |
109 | 113 | | |
110 | | - | |
111 | | - | |
112 | | - | |
113 | | - | |
114 | | - | |
115 | | - | |
116 | | - | |
117 | | - | |
118 | | - | |
119 | | - | |
120 | | - | |
121 | | - | |
122 | | - | |
| 114 | + | |
123 | 115 | | |
124 | 116 | | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
157 | 157 | | |
158 | 158 | | |
159 | 159 | | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
160 | 199 | | |
161 | 200 | | |
162 | 201 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
125 | 125 | | |
126 | 126 | | |
127 | 127 | | |
128 | | - | |
| 128 | + | |
129 | 129 | | |
130 | | - | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
131 | 142 | | |
132 | 143 | | |
133 | 144 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
95 | 95 | | |
96 | 96 | | |
97 | 97 | | |
98 | | - | |
| 98 | + | |
99 | 99 | | |
100 | 100 | | |
101 | 101 | | |
| |||
186 | 186 | | |
187 | 187 | | |
188 | 188 | | |
189 | | - | |
| 189 | + | |
190 | 190 | | |
191 | 191 | | |
192 | 192 | | |
193 | 193 | | |
194 | | - | |
| 194 | + | |
195 | 195 | | |
196 | | - | |
197 | | - | |
| 196 | + | |
| 197 | + | |
198 | 198 | | |
199 | 199 | | |
200 | 200 | | |
| |||
220 | 220 | | |
221 | 221 | | |
222 | 222 | | |
223 | | - | |
224 | | - | |
| 223 | + | |
| 224 | + | |
225 | 225 | | |
226 | 226 | | |
227 | 227 | | |
| |||
0 commit comments