Files
dss/.dss/BROWSER_LOGGING_README.md
Digital Production Factory 276ed71f31 Initial commit: Clean DSS implementation
Migrated from design-system-swarm with fresh git history.
Old project history preserved in /home/overbits/apps/design-system-swarm

Core components:
- MCP Server (Python FastAPI with mcp 1.23.1)
- Claude Plugin (agents, commands, skills, strategies, hooks, core)
- DSS Backend (dss-mvp1 - token translation, Figma sync)
- Admin UI (Node.js/React)
- Server (Node.js/Express)
- Storybook integration (dss-mvp1/.storybook)

Self-contained configuration:
- All paths relative or use DSS_BASE_PATH=/home/overbits/dss
- PYTHONPATH configured for dss-mvp1 and dss-claude-plugin
- .env file with all configuration
- Claude plugin uses ${CLAUDE_PLUGIN_ROOT} for portability

Migration completed: $(date)
🤖 Clean migration with full functionality preserved
2025-12-09 18:45:48 -03:00

3.8 KiB

Browser Console Logging System

Overview

Production-ready browser console log forwarding system that captures all console output (log, info, warn, error, debug) from the admin-ui and streams it to the server for monitoring and debugging.

Architecture

Components

  1. Client-Side Forwarder (admin-ui/js/utils/console-forwarder.js)

    • Intercepts all console methods
    • Safe circular reference detection using WeakSet
    • Batching: 50 logs or 2-second intervals
    • Retry mechanism: Up to 3 retries with exponential backoff
    • SendBeacon API for reliable page unload logging
  2. Server-Side Logger (tools/api/browser_logger.py)

    • FastAPI router endpoint: POST /api/logs/browser
    • Rotating file handler: 10MB max, 5 backups
    • Log location: .dss/logs/browser-logs/browser.log
  3. Proxy Configuration (admin-ui/vite.config.js)

    • Vite proxy forwards /apihttp://localhost:8002
    • Allows HTTPS frontend to communicate with HTTP backend

Current Status

All components implemented and integrated API endpoint tested and functional (server.py:259) Logs directory created: .dss/logs/browser-logs/ Port configuration: Vite (3456), FastAPI (8002)

Testing

Manual API Test

```bash curl -X POST http://localhost:8002/api/logs/browser
-H "Content-Type: application/json"
-d '{"logs": [{"level": "info", "timestamp": "2025-12-08T15:00:00Z", "message": "Test", "data": []}]}' ```

Expected response: {"status":"ok","count":1}

View Logs

```bash

View all logs

./admin-ui/scripts/dss-logs.sh

View errors only

./admin-ui/scripts/dss-logs.sh error

View warnings and errors

./admin-ui/scripts/dss-logs.sh warn ```

Test Page

Open browser to: https://localhost:3456/test-console-forwarding.html

Optional: Chrome DevTools Protocol

For deep debugging, use the CDP script:

```bash

On server

./admin-ui/scripts/start-chrome-debug.sh

On local machine (SSH tunnel)

ssh -L 9222:localhost:9222 user@server-ip

Then open chrome://inspect in local browser

```

Files Created/Modified

  • admin-ui/js/utils/console-forwarder.js (NEW)
  • tools/api/browser_logger.py (NEW)
  • admin-ui/index.html (MODIFIED - loads forwarder)
  • admin-ui/vite.config.js (MODIFIED - proxy config)
  • tools/api/server.py (MODIFIED - router integration)
  • admin-ui/scripts/start-chrome-debug.sh (NEW)
  • admin-ui/scripts/dss-logs.sh (NEW)
  • admin-ui/test-console-forwarding.html (NEW - test page)

Safety Features

  1. Circular Reference Handling: WeakSet-based detection prevents JSON.stringify crashes
  2. Infinite Loop Prevention: No console.error in catch blocks of forwarder
  3. Batching: Reduces network overhead (2s or 50 logs)
  4. Retry Logic: Up to 3 retries with queue management
  5. Error Objects: Explicit serialization of Error instances (message, stack, name)
  6. Page Unload: SendBeacon ensures logs sent before navigation

Log Format

``` 2025-12-08 12:03:55,678 [INFO] [BROWSER] [2025-12-08T15:05:00Z] Test log message 2025-12-08 12:03:55,678 [ERROR] [BROWSER] [2025-12-08T15:05:01Z] Error description ```

Next Steps

To verify end-to-end functionality:

  1. Open https://localhost:3456/ in a browser
  2. Check console output in browser DevTools
  3. Verify logs appear in .dss/logs/browser-logs/browser.log

Troubleshooting

Logs not appearing

  • Check FastAPI server is running: lsof -i :8002
  • Check Vite proxy: curl -X POST https://localhost:3456/api/logs/browser -k
  • Check forwarder loaded: View source of https://localhost:3456/

Permission errors

  • Log directory uses project-local path (.dss/logs/)
  • No root/sudo required

References

  • Implementation plan: zen_generated.code (can be deleted)
  • Expert analysis: Gemini 3 Pro Preview validation