Open
Conversation
Previously DELETE /apps/:id required the app's own API key. Now admins can also delete apps using the X-Admin-Key header, consistent with other admin operations. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add unified overview page showing all apps with error trends and health status
- Add enhanced app detail page with 7-day stats chart (Chart.js)
- Add advanced filtering: date range picker, request ID, context field filters
- Add server-side search and context filtering to Durable Object
- Modularize dashboard into separate files for maintainability
- Integrate Alpine.js for declarative client-side state management
- Add SVG sparklines and trend indicators for quick status overview
New file structure:
src/dashboard/
index.ts - Main router
auth.ts - Session management
styles.ts - Shared styles
types.ts - Dashboard types
pages/ - Login, overview, app-detail
api/ - Overview aggregation endpoint
components/ - Layout, charts utilities
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Replaced by modular src/dashboard/ directory. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
…tilities (#4) * refactor: remove dead code and extract shared utilities - Delete unused src/services/stats.ts (legacy KV-based stats, replaced by DO SQLite) - Extract getAppDO and countByLevel to src/utils.ts - countByLevel now uses Map for O(n) instead of O(n²) array scanning Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * refactor: consolidate duplicated code and remove unused functions Dashboard: - Extract getAppList, getAppName, getHealthUrls to shared helpers.ts - Fix type safety: replace `any` with proper Context type Result utilities: - Add wrapError() for consistent error handling in catch blocks - Remove unused exports: isOk, isErr, getErrorStatus, ErrorStatusMap Registry service: - Use wrapError() instead of inline error handling (6 occurrences) - Remove unused validateApiKey and regenerateApiKey functions Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * chore: remove unused dashboard code - Remove unused loadingSpinner component from layout.ts - Remove unused appOptions variable from header function - Remove unused types: SavedFilter, FilterState, HealthSummary - Remove unused HealthCheck import from types.ts Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Add BrandConfig type and getBrandConfig() that reads BRAND_* environment variables with automatic accent color derivation and CDN URL composition. Replace static CSS with buildBrandCss(config) generated from BrandConfig. Thread brand config through router middleware and all page functions. Includes comprehensive tests for brand config defaults, env overrides, hex color validation, and accent fallback behavior. Cherry-picked from #10 with conflict resolution to preserve upstream wrangler.jsonc (no fork-specific environments). Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
The health-urls endpoint only accepted per-app API keys, preventing admin users from configuring health check URLs. Switch to requireApiKeyOrAdmin middleware to match the pattern used by other app management endpoints. Ported from #11. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Reconciles diverged histories. All 6 upstream commits were already ported via cherry-picks and sync PRs — this merge aligns the commit graph. Conflicts in dashboard files resolved by keeping the fork's versions (which include AIBTC branding and configurability on top of the same base changes). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Deploying with
|
| Status | Name | Latest Commit | Updated (UTC) |
|---|---|---|---|
| ✅ Deployment successful! View logs |
worker-logs-production | 3db3146 | Feb 28 2026, 08:16 AM |
Author
|
Sync status update (2026-03-02T20:27Z):
Note: spark0btc GitHub account is permanently restricted (confirmed 2026-03-02). Spark cannot review or merge this PR via GitHub. Action needed: @whoabuddy please merge this PR directly. The branch contains conflict resolutions that preserve AIBTC branding and theme customizations on top of upstream improvements. 🤖 Arc (task #702) |
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
Merge upstream whoabuddy/worker-logs to align fork with upstream progress while preserving deployment-specific customizations.
What's included:
Conflict resolution:
All conflicts were in dashboard configuration. Decisions made to keep aibtcdev's versions, which include AIBTC branding and theme customizations built on top of the same upstream base.
Context
Worker-logs repos evolve independently per deployment (task #302):
This merge ensures aibtcdev stays current with upstream improvements while maintaining fork-specific customizations.
🤖 Prepared by Arc (task #516, #517) — ready for review and merge by Spark