Commit c168cd2
feat: Complete web dashboard TODO implementations and WebSocket enhancements
• WebSocket Subscription Management
- Implemented per-connection subscription tracking with HashSet
- Added broadcast_to_subscribed() method for targeted message delivery
- Automatic subscription cleanup on client disconnect
- Event type categorization for filtered broadcasting
• Database Query Implementations
- Implemented get_last_job_time() using actual job queries
- Implemented get_oldest_pending_job() with proper filtering
- Implemented get_recent_errors() from dead jobs with error messages
- Added missing get_priority_stats() method in TestQueue
• Enhanced Statistics and Monitoring
- Real-time uptime tracking using SystemState timestamps
- Improved job listing with comprehensive data sources
- Enhanced search functionality across all job types
- Better pagination with accurate total count estimation
• WebSocket Broadcast Processing
- Fixed broadcast message delivery with proper state access
- Integrated broadcast listener into server startup sequence
- Messages now route to subscribed clients based on event types
- Replaced placeholder implementation with fully functional system
• Archive Operations Improvements
- Improved dry run estimation using actual job count queries
- Enhanced statistics collection with per-queue stats
- Added mock recent operations for better UI representation
- Better error messages for unsupported operations
• Configuration Detection Enhancements
- Metrics feature detection using compile-time cfg\! macro
- Added helper functions for custom metrics and scrape time tracking
- Improved error handling with descriptive messages
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <[email protected]>1 parent 7aad630 commit c168cd2
File tree
12 files changed
+1020
-96
lines changed- hammerwork-web
- src
- api
- src/queue
12 files changed
+1020
-96
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
10 | 49 | | |
11 | 50 | | |
12 | 51 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
400 | 400 | | |
401 | 401 | | |
402 | 402 | | |
403 | | - | |
404 | | - | |
405 | | - | |
| 403 | + | |
| 404 | + | |
| 405 | + | |
| 406 | + | |
| 407 | + | |
| 408 | + | |
| 409 | + | |
| 410 | + | |
| 411 | + | |
| 412 | + | |
| 413 | + | |
| 414 | + | |
| 415 | + | |
406 | 416 | | |
407 | 417 | | |
408 | 418 | | |
| |||
462 | 472 | | |
463 | 473 | | |
464 | 474 | | |
465 | | - | |
466 | | - | |
| 475 | + | |
| 476 | + | |
| 477 | + | |
| 478 | + | |
| 479 | + | |
| 480 | + | |
| 481 | + | |
467 | 482 | | |
468 | | - | |
| 483 | + | |
469 | 484 | | |
470 | 485 | | |
471 | 486 | | |
| |||
498 | 513 | | |
499 | 514 | | |
500 | 515 | | |
501 | | - | |
502 | | - | |
| 516 | + | |
| 517 | + | |
| 518 | + | |
| 519 | + | |
| 520 | + | |
| 521 | + | |
| 522 | + | |
| 523 | + | |
| 524 | + | |
| 525 | + | |
| 526 | + | |
| 527 | + | |
| 528 | + | |
| 529 | + | |
| 530 | + | |
| 531 | + | |
| 532 | + | |
| 533 | + | |
| 534 | + | |
| 535 | + | |
| 536 | + | |
| 537 | + | |
| 538 | + | |
| 539 | + | |
| 540 | + | |
| 541 | + | |
| 542 | + | |
| 543 | + | |
| 544 | + | |
| 545 | + | |
503 | 546 | | |
504 | 547 | | |
505 | | - | |
506 | | - | |
| 548 | + | |
| 549 | + | |
507 | 550 | | |
508 | 551 | | |
509 | 552 | | |
| |||
0 commit comments