Files
dss/.dss/browser-logs/session-1765059787271-kpn1auq3i.json
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

5739 lines
454 KiB
JSON

{
"sessionId": "session-1765059787271-kpn1auq3i",
"exportedAt": "2025-12-06T23:42:36.135Z",
"logs": [
{
"timestamp": 1765059787272,
"relativeTime": 1,
"level": "log",
"category": "console",
"message": "%c\ud83d\udcad [App] Initializing application... color: #2196F3; font-weight: bold",
"data": {
"args": [
"%c\ud83d\udcad [App] Initializing application...",
"color: #2196F3; font-weight: bold"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#dashboard",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059787280,
"relativeTime": 9,
"level": "metric",
"category": "performance",
"message": "Page load completed",
"data": {
"domContentLoaded": 0.7000000178813934,
"loadComplete": 0.09999999403953552,
"totalTime": 2102.199999988079,
"dnsLookup": 0,
"tcpConnection": 0,
"requestTime": 211.7000000178814,
"responseTime": 3.699999988079071,
"renderTime": null
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#dashboard",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059787464,
"relativeTime": 193,
"level": "log",
"category": "console",
"message": "[ConfigLoader] Configuration loaded successfully [object Object]",
"data": {
"args": [
"[ConfigLoader] Configuration loaded successfully",
{
"dssHost": "dss.overbits.luz.uy",
"dssPort": "3456",
"storybookPort": 6006
}
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#dashboard",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059787464,
"relativeTime": 193,
"level": "log",
"category": "console",
"message": "%c\ud83d\udcad [App] Server configuration loaded color: #2196F3; font-weight: bold",
"data": {
"args": [
"%c\ud83d\udcad [App] Server configuration loaded",
"color: #2196F3; font-weight: bold"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#dashboard",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059787464,
"relativeTime": 193,
"level": "log",
"category": "console",
"message": "%c\ud83d\udcad [PluginService] Registered plugin: Claude AI Assistant v1.0.0 color: #2196F3; font-weight: bold",
"data": {
"args": [
"%c\ud83d\udcad [PluginService] Registered plugin: Claude AI Assistant v1.0.0",
"color: #2196F3; font-weight: bold"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#dashboard",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059787465,
"relativeTime": 194,
"level": "log",
"category": "console",
"message": "%c\ud83d\udcad [Plugin:Claude AI Assistant] Claude plugin initializing... color: #2196F3; font-weight: bold",
"data": {
"args": [
"%c\ud83d\udcad [Plugin:Claude AI Assistant] Claude plugin initializing...",
"color: #2196F3; font-weight: bold"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#dashboard",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059787465,
"relativeTime": 194,
"level": "log",
"category": "console",
"message": "%c\ud83d\udcad [Plugin:Claude AI Assistant] Claude plugin initialized color: #2196F3; font-weight: bold",
"data": {
"args": [
"%c\ud83d\udcad [Plugin:Claude AI Assistant] Claude plugin initialized",
"color: #2196F3; font-weight: bold"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#dashboard",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059787465,
"relativeTime": 194,
"level": "log",
"category": "console",
"message": "%c\ud83d\udcad [App] Plugins initialized color: #2196F3; font-weight: bold",
"data": {
"args": [
"%c\ud83d\udcad [App] Plugins initialized",
"color: #2196F3; font-weight: bold"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#dashboard",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059787465,
"relativeTime": 194,
"level": "log",
"category": "console",
"message": "%c\ud83d\udcad [App] Messaging system initialized color: #2196F3; font-weight: bold",
"data": {
"args": [
"%c\ud83d\udcad [App] Messaging system initialized",
"color: #2196F3; font-weight: bold"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#dashboard",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059787469,
"relativeTime": 198,
"level": "log",
"category": "console",
"message": "%c\ud83d\udcad [App] Router initialized with 12 routes color: #2196F3; font-weight: bold",
"data": {
"args": [
"%c\ud83d\udcad [App] Router initialized with 12 routes",
"color: #2196F3; font-weight: bold"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#dashboard",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059787470,
"relativeTime": 199,
"level": "log",
"category": "console",
"message": "%c\ud83d\udcad [PluginService] Initialized plugin: Claude AI Assistant color: #2196F3; font-weight: bold",
"data": {
"args": [
"%c\ud83d\udcad [PluginService] Initialized plugin: Claude AI Assistant",
"color: #2196F3; font-weight: bold"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#dashboard",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059787472,
"relativeTime": 201,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/config",
"data": {
"url": "https://dss.overbits.luz.uy/api/config",
"initiatorType": "fetch",
"duration": 190.39999997615814,
"transferSize": 371,
"encodedBodySize": 71,
"decodedBodySize": 71
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#dashboard",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059787472,
"relativeTime": 201,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/projects",
"data": {
"url": "https://dss.overbits.luz.uy/api/projects",
"initiatorType": "fetch",
"duration": 192.40000000596046,
"transferSize": 590,
"encodedBodySize": 290,
"decodedBodySize": 290
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#dashboard",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059787663,
"relativeTime": 392,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 192,
"transferSize": 583,
"encodedBodySize": 283,
"decodedBodySize": 283
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#dashboard",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059787852,
"relativeTime": 581,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/config",
"data": {
"url": "https://dss.overbits.luz.uy/api/config",
"initiatorType": "fetch",
"duration": 188.59999999403954,
"transferSize": 371,
"encodedBodySize": 71,
"decodedBodySize": 71
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#dashboard",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059787931,
"relativeTime": 660,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/config/figma",
"data": {
"url": "https://dss.overbits.luz.uy/api/config/figma",
"initiatorType": "fetch",
"duration": 266.7000000178814,
"transferSize": 475,
"encodedBodySize": 175,
"decodedBodySize": 175
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#dashboard",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059787950,
"relativeTime": 679,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/services",
"data": {
"url": "https://dss.overbits.luz.uy/api/services",
"initiatorType": "fetch",
"duration": 283.69999998807907,
"transferSize": 848,
"encodedBodySize": 548,
"decodedBodySize": 548
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#dashboard",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059788314,
"relativeTime": 1043,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/discovery/scan",
"data": {
"url": "https://dss.overbits.luz.uy/api/discovery/scan",
"initiatorType": "fetch",
"duration": 362,
"transferSize": 835,
"encodedBodySize": 535,
"decodedBodySize": 535
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#dashboard",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059788507,
"relativeTime": 1236,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/discovery/stats",
"data": {
"url": "https://dss.overbits.luz.uy/api/discovery/stats",
"initiatorType": "fetch",
"duration": 189.69999998807907,
"transferSize": 433,
"encodedBodySize": 133,
"decodedBodySize": 133
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#dashboard",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059788705,
"relativeTime": 1434,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/discovery/activity",
"data": {
"url": "https://dss.overbits.luz.uy/api/discovery/activity",
"initiatorType": "fetch",
"duration": 195.19999998807907,
"transferSize": 4197,
"encodedBodySize": 3897,
"decodedBodySize": 3897
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#dashboard",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059788900,
"relativeTime": 1629,
"level": "log",
"category": "console",
"message": "%c\ud83d\udcad [App] Loading dashboard data color: #2196F3; font-weight: bold [object Object]",
"data": {
"args": [
"%c\ud83d\udcad [App] Loading dashboard data",
"color: #2196F3; font-weight: bold",
{
"projectId": "proj-1764991776412"
}
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#dashboard",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059788904,
"relativeTime": 1633,
"level": "log",
"category": "console",
"message": "%c\ud83d\udcad [App] Application initialized successfully color: #2196F3; font-weight: bold",
"data": {
"args": [
"%c\ud83d\udcad [App] Application initialized successfully",
"color: #2196F3; font-weight: bold"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#dashboard",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059788904,
"relativeTime": 1633,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/projects",
"data": {
"url": "https://dss.overbits.luz.uy/api/projects",
"initiatorType": "fetch",
"duration": 192.09999999403954,
"transferSize": 590,
"encodedBodySize": 290,
"decodedBodySize": 290
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#dashboard",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059789106,
"relativeTime": 1835,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/projects/proj-1764991776412/dashboard/summary",
"data": {
"url": "https://dss.overbits.luz.uy/api/projects/proj-1764991776412/dashboard/summary",
"initiatorType": "fetch",
"duration": 196.59999999403954,
"transferSize": 668,
"encodedBodySize": 368,
"decodedBodySize": 368
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#dashboard",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059792885,
"relativeTime": 5614,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 24 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 24 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#dashboard",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059792937,
"relativeTime": 5666,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 609.0999999940395,
"transferSize": 443,
"encodedBodySize": 143,
"decodedBodySize": 143
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#dashboard",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059818827,
"relativeTime": 31556,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 26 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 26 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#dashboard",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059818879,
"relativeTime": 31608,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 597.4000000059605,
"transferSize": 443,
"encodedBodySize": 143,
"decodedBodySize": 143
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#dashboard",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059819420,
"relativeTime": 32149,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 192.19999998807907,
"transferSize": 583,
"encodedBodySize": 283,
"decodedBodySize": 283
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#dashboard",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059840273,
"relativeTime": 53002,
"level": "info",
"category": "snapshot",
"message": "Navigation detected",
"data": {
"trigger": "navigation",
"from": "https://dss.overbits.luz.uy/admin-ui/index.html#dashboard",
"to": "https://dss.overbits.luz.uy/admin-ui/index.html#projects",
"snapshot": {
"timestamp": 1765059840273,
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#projects",
"html": "<html lang=\"en\" class=\"light\"><head>\n <meta charset=\"UTF-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n <title>Design System Server</title>\n <link rel=\"icon\" type=\"image/svg+xml\" href=\"/admin-ui/favicon.svg\">\n\n <!-- Design System Styles -->\n <link rel=\"stylesheet\" href=\"/admin-ui/css/tokens.css\">\n <link rel=\"stylesheet\" href=\"/admin-ui/css/base.css\">\n <link rel=\"stylesheet\" href=\"/admin-ui/css/components.css\">\n\n <!-- Markdown & Syntax Highlighting -->\n <script src=\"https://cdn.jsdelivr.net/npm/marked/marked.min.js\"></script>\n <script src=\"https://cdn.jsdelivr.net/npm/dompurify@3.0.6/dist/purify.min.js\"></script>\n <script src=\"https://cdn.jsdelivr.net/npm/highlight.js@11.9.0/lib/highlight.min.js\"></script>\n\n <style>\n /* App Layout */\n .app-layout {\n display: grid;\n grid-template-columns: 240px 1fr;\n grid-template-rows: auto 1fr;\n min-height: 100vh;\n }\n\n /* Sidebar */\n .sidebar {\n grid-row: 1 / -1;\n background: var(--card);\n border-right: 1px solid var(--border);\n display: flex;\n flex-direction: column;\n }\n\n .sidebar__header {\n padding: var(--space-4) var(--space-5);\n border-bottom: 1px solid var(--border);\n }\n\n .sidebar__logo {\n display: flex;\n align-items: center;\n gap: var(--space-3);\n font-weight: var(--font-semibold);\n font-size: var(--text-lg);\n color: var(--foreground);\n }\n\n .sidebar__logo-icon {\n width: 2rem;\n height: 2rem;\n background: var(--primary);\n border-radius: var(--radius);\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--primary-foreground);\n }\n\n .sidebar__nav {\n flex: 1;\n padding: var(--space-4);\n }\n\n .nav-section {\n margin-bottom: var(--space-6);\n }\n\n .nav-section__title {\n font-size: var(--text-xs);\n font-weight: var(--font-medium);\n color: var(--muted-foreground);\n text-transform: uppercase;\n letter-spacing: 0.05em;\n margin-bottom: var(--space-2);\n padding: 0 var(--space-3);\n }\n\n .nav-item {\n display: flex;\n align-items: center;\n gap: var(--space-3);\n padding: var(--space-2) var(--space-3);\n border-radius: var(--radius);\n color: var(--muted-foreground);\n text-decoration: none;\n font-size: var(--text-sm);\n transition: all var(--duration-fast) var(--ease-default);\n cursor: pointer;\n }\n\n .nav-item:hover {\n background: var(--accent);\n color: var(--accent-foreground);\n text-decoration: none;\n }\n\n .nav-item.active {\n background: var(--primary);\n color: var(--primary-foreground);\n }\n\n .nav-item__icon {\n width: 1.25rem;\n height: 1.25rem;\n opacity: 0.7;\n }\n\n .nav-item.active .nav-item__icon {\n opacity: 1;\n }\n\n .sidebar__help {\n padding: var(--space-3);\n border-top: 1px solid var(--border);\n }\n\n .help-panel {\n font-size: var(--text-xs);\n }\n\n .help-panel__toggle {\n display: flex;\n align-items: center;\n gap: var(--space-2);\n cursor: pointer;\n color: var(--muted-foreground);\n padding: var(--space-2);\n border-radius: var(--radius);\n list-style: none;\n }\n\n .help-panel__toggle:hover {\n background: var(--accent);\n color: var(--accent-foreground);\n }\n\n .help-panel__toggle::-webkit-details-marker {\n display: none;\n }\n\n .help-panel__content {\n padding: var(--space-2) var(--space-3);\n }\n\n .help-section {\n margin-bottom: var(--space-3);\n }\n\n .help-section strong {\n color: var(--foreground);\n font-size: var(--text-xs);\n }\n\n .help-section ul, .help-section ol {\n margin: var(--space-1) 0 0 var(--space-4);\n padding: 0;\n color: var(--muted-foreground);\n }\n\n .help-section li {\n margin-bottom: 2px;\n }\n\n .sidebar__footer {\n padding: var(--space-4);\n border-top: 1px solid var(--border);\n }\n\n /* Header */\n .app-header {\n display: flex;\n align-items: center;\n gap: var(--space-4);\n padding: var(--space-4) var(--space-6);\n background: var(--card);\n border-bottom: 1px solid var(--border);\n }\n\n .app-header__project-selector {\n display: flex;\n align-items: center;\n gap: var(--space-2);\n }\n\n .project-selector {\n display: flex;\n align-items: center;\n gap: var(--space-2);\n padding: var(--space-2) var(--space-3);\n background: var(--muted);\n border: 1px solid var(--border);\n border-radius: var(--radius);\n font-size: var(--text-sm);\n width: 200px;\n }\n\n .project-selector__label {\n font-weight: var(--font-medium);\n color: var(--muted-foreground);\n font-size: var(--text-xs);\n text-transform: uppercase;\n letter-spacing: 0.05em;\n }\n\n .project-selector__select {\n flex: 1;\n background: transparent;\n border: none;\n color: var(--foreground);\n font-size: var(--text-sm);\n font-weight: var(--font-medium);\n outline: none;\n cursor: pointer;\n padding: var(--space-1) 0;\n }\n\n .project-selector__select option {\n background: var(--popover);\n color: var(--popover-foreground);\n }\n\n .project-selector__icon {\n width: 16px;\n height: 16px;\n color: var(--primary);\n }\n\n .app-header__team-selector {\n display: flex;\n align-items: center;\n }\n\n .team-select {\n padding: var(--space-2) var(--space-3);\n background: var(--muted);\n border: 1px solid var(--border);\n border-radius: var(--radius);\n color: var(--foreground);\n font-size: var(--text-sm);\n cursor: pointer;\n width: 200px;\n }\n\n .team-select:focus {\n outline: none;\n border-color: var(--ring);\n }\n\n .app-header__actions {\n display: flex;\n align-items: center;\n gap: var(--space-3);\n margin-left: auto;\n }\n\n /* Main Content */\n .app-main {\n display: grid;\n grid-template-columns: 1fr;\n overflow: hidden;\n position: relative;\n }\n\n .app-content {\n padding: var(--space-6);\n padding-right: 340px;\n overflow-y: auto;\n }\n\n .app-sidebar {\n width: 320px;\n height: calc(100vh - 57px);\n border-left: 1px solid var(--border);\n background: var(--card);\n display: flex;\n flex-direction: column;\n transition: width 0.2s ease, transform 0.2s ease;\n position: fixed;\n right: 0;\n top: 57px;\n bottom: 0;\n z-index: 50;\n }\n\n .app-sidebar.collapsed {\n width: 0;\n overflow: hidden;\n border-left: none;\n }\n\n /* AI Toggle button active state in header */\n #sidebar-toggle[aria-expanded=\"false\"] {\n opacity: 0.6;\n }\n\n /* Page Header */\n .page-header h1 {\n font-size: var(--text-2xl);\n margin-bottom: var(--space-1);\n }\n\n /* Docs Layout */\n .docs-layout {\n display: grid;\n grid-template-columns: 200px 1fr;\n gap: var(--space-6);\n min-height: 0;\n }\n\n .docs-nav {\n position: sticky;\n top: 0;\n height: fit-content;\n }\n\n .docs-nav__section {\n margin-bottom: var(--space-4);\n }\n\n .docs-nav__title {\n font-size: var(--text-xs);\n font-weight: var(--font-semibold);\n color: var(--muted-foreground);\n text-transform: uppercase;\n letter-spacing: 0.05em;\n margin-bottom: var(--space-2);\n }\n\n .docs-nav__link {\n display: block;\n padding: var(--space-1) var(--space-2);\n font-size: var(--text-sm);\n color: var(--muted-foreground);\n text-decoration: none;\n border-radius: var(--radius);\n cursor: pointer;\n }\n\n .docs-nav__link:hover {\n color: var(--foreground);\n background: var(--accent);\n }\n\n .docs-nav__link.active {\n color: var(--primary);\n background: var(--primary-light, oklch(0.65 0.18 250 / 0.1));\n }\n\n .docs-content {\n max-width: 700px;\n }\n\n .docs-content h2 {\n font-size: var(--text-xl);\n font-weight: var(--font-semibold);\n margin-bottom: var(--space-4);\n padding-bottom: var(--space-2);\n border-bottom: 1px solid var(--border);\n }\n\n .docs-content h3 {\n font-size: var(--text-base);\n font-weight: var(--font-semibold);\n margin: var(--space-4) 0 var(--space-2);\n }\n\n .docs-content p {\n margin-bottom: var(--space-3);\n line-height: 1.6;\n }\n\n .docs-content ul, .docs-content ol {\n margin: 0 0 var(--space-3) var(--space-4);\n line-height: 1.6;\n }\n\n .docs-content li {\n margin-bottom: var(--space-1);\n }\n\n .docs-content pre {\n background: var(--muted);\n padding: var(--space-3);\n border-radius: var(--radius);\n overflow-x: auto;\n margin-bottom: var(--space-3);\n font-size: var(--text-sm);\n }\n\n .docs-content code {\n font-family: ui-monospace, monospace;\n font-size: 0.9em;\n }\n\n .docs-content a {\n color: var(--primary);\n }\n\n /* Stats */\n .stat {\n text-align: center;\n }\n\n .stat__label {\n font-size: var(--text-sm);\n color: var(--muted-foreground);\n margin-bottom: var(--space-1);\n }\n\n .stat__value {\n font-size: var(--text-2xl);\n font-weight: var(--font-bold);\n }\n\n /* Status Dot */\n .status-dot {\n width: 0.5rem;\n height: 0.5rem;\n border-radius: var(--radius-full);\n background: var(--muted);\n }\n\n .status-dot--success { background: var(--success); }\n .status-dot--warning { background: var(--warning); }\n .status-dot--error { background: var(--destructive); }\n\n /* Responsive */\n @media (max-width: 1024px) {\n .app-main {\n grid-template-columns: 1fr;\n }\n\n .app-sidebar {\n display: none;\n }\n }\n\n @media (max-width: 768px) {\n .app-layout {\n grid-template-columns: 1fr;\n }\n\n .sidebar {\n display: none;\n }\n }\n </style>\n</head>\n<body>\n <div id=\"app\" class=\"app-layout\">\n <!-- Sidebar -->\n <aside class=\"sidebar\">\n <div class=\"sidebar__header\">\n <div class=\"sidebar__logo\">\n <div class=\"sidebar__logo-icon\">\n <svg width=\"18\" height=\"18\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M12 2L2 7l10 5 10-5-10-5z\"></path>\n <path d=\"M2 17l10 5 10-5\"></path>\n <path d=\"M2 12l10 5 10-5\"></path>\n </svg>\n </div>\n <span>DSS</span>\n </div>\n </div>\n\n <nav class=\"sidebar__nav\" aria-label=\"Main navigation\">\n <div class=\"nav-section\">\n <div class=\"nav-section__title\">Overview</div>\n <a class=\"nav-item\" data-page=\"dashboard\" href=\"#dashboard\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <rect x=\"3\" y=\"3\" width=\"7\" height=\"9\" rx=\"1\"></rect>\n <rect x=\"14\" y=\"3\" width=\"7\" height=\"5\" rx=\"1\"></rect>\n <rect x=\"14\" y=\"12\" width=\"7\" height=\"9\" rx=\"1\"></rect>\n <rect x=\"3\" y=\"16\" width=\"7\" height=\"5\" rx=\"1\"></rect>\n </svg>\n Dashboard\n </a>\n <a class=\"nav-item active\" data-page=\"projects\" href=\"#projects\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M3 3h18v18H3z\"></path>\n <path d=\"M21 9H3\"></path>\n <path d=\"M9 21V9\"></path>\n </svg>\n Projects\n </a>\n </div>\n\n <div class=\"nav-section\">\n <div class=\"nav-section__title\">Tools</div>\n <a class=\"nav-item\" data-page=\"services\" href=\"#services\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <rect x=\"3\" y=\"3\" width=\"7\" height=\"7\" rx=\"1\"></rect>\n <rect x=\"14\" y=\"3\" width=\"7\" height=\"7\" rx=\"1\"></rect>\n <rect x=\"3\" y=\"14\" width=\"7\" height=\"7\" rx=\"1\"></rect>\n <rect x=\"14\" y=\"14\" width=\"7\" height=\"7\" rx=\"1\"></rect>\n </svg>\n Services\n </a>\n <a class=\"nav-item\" data-page=\"quick-wins\" href=\"#quick-wins\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <polygon points=\"13 2 3 14 12 14 11 22 21 10 12 10 13 2\"></polygon>\n </svg>\n Quick Wins\n </a>\n <a class=\"nav-item\" data-page=\"chat\" href=\"#chat\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\"></path>\n </svg>\n Chat\n </a>\n </div>\n\n <div class=\"nav-section\">\n <div class=\"nav-section__title\">Design System</div>\n <a class=\"nav-item\" data-page=\"tokens\" href=\"#tokens\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <circle cx=\"12\" cy=\"12\" r=\"10\"></circle>\n <circle cx=\"12\" cy=\"12\" r=\"4\"></circle>\n </svg>\n Tokens\n </a>\n <a class=\"nav-item\" data-page=\"components\" href=\"#components\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\"></rect>\n <path d=\"M3 9h18\"></path>\n <path d=\"M9 21V9\"></path>\n </svg>\n Components\n </a>\n <a class=\"nav-item\" data-page=\"figma\" href=\"#figma\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M5 5.5A3.5 3.5 0 0 1 8.5 2H12v7H8.5A3.5 3.5 0 0 1 5 5.5z\"></path>\n <path d=\"M12 2h3.5a3.5 3.5 0 1 1 0 7H12V2z\"></path>\n <path d=\"M12 12.5a3.5 3.5 0 1 1 7 0 3.5 3.5 0 1 1-7 0z\"></path>\n <path d=\"M5 19.5A3.5 3.5 0 0 1 8.5 16H12v3.5a3.5 3.5 0 1 1-7 0z\"></path>\n <path d=\"M5 12.5A3.5 3.5 0 0 1 8.5 9H12v7H8.5A3.5 3.5 0 0 1 5 12.5z\"></path>\n </svg>\n Figma\n </a>\n <a id=\"storybook-link\" class=\"nav-item\" href=\"https://dss.overbits.luz.uy/storybook/\" target=\"_blank\" tabindex=\"0\" title=\"Open Storybook at https://dss.overbits.luz.uy/storybook/\" style=\"pointer-events: auto; opacity: 1;\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z\"></path>\n <path d=\"M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z\"></path>\n </svg>\n Storybook\n </a>\n </div>\n\n <div class=\"nav-section\">\n <div class=\"nav-section__title\">System</div>\n <a class=\"nav-item\" data-page=\"docs\" href=\"#docs\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M4 19.5A2.5 2.5 0 0 1 6.5 17H20\"></path>\n <path d=\"M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z\"></path>\n </svg>\n Docs\n </a>\n <a class=\"nav-item\" data-page=\"teams\" href=\"#teams\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2\"></path>\n <circle cx=\"9\" cy=\"7\" r=\"4\"></circle>\n <path d=\"M22 21v-2a4 4 0 0 0-3-3.87\"></path>\n <path d=\"M16 3.13a4 4 0 0 1 0 7.75\"></path>\n </svg>\n Teams\n </a>\n <a class=\"nav-item\" data-page=\"audit\" href=\"#audit\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"></path>\n <polyline points=\"14 2 14 8 20 8\"></polyline>\n <line x1=\"16\" y1=\"13\" x2=\"8\" y2=\"13\"></line>\n <line x1=\"16\" y1=\"17\" x2=\"8\" y2=\"17\"></line>\n <polyline points=\"10 9 9 9 8 9\"></polyline>\n </svg>\n Audit Log\n </a>\n <a class=\"nav-item\" data-page=\"plugins\" href=\"#plugins\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M12 2v4m0 12v4M4.93 4.93l2.83 2.83m8.48 8.48l2.83 2.83M2 12h4m12 0h4M4.93 19.07l2.83-2.83m8.48-8.48l2.83-2.83\"></path>\n <circle cx=\"12\" cy=\"12\" r=\"3\"></circle>\n </svg>\n Plugins\n </a>\n <a class=\"nav-item\" data-page=\"settings\" href=\"#settings\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z\"></path>\n <circle cx=\"12\" cy=\"12\" r=\"3\"></circle>\n </svg>\n Settings\n </a>\n </div>\n </nav>\n\n <div class=\"sidebar__help\">\n <details class=\"help-panel\">\n <summary class=\"help-panel__toggle\" tabindex=\"0\">\n <svg width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <circle cx=\"12\" cy=\"12\" r=\"10\"></circle>\n <path d=\"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3\"></path>\n <line x1=\"12\" y1=\"17\" x2=\"12.01\" y2=\"17\"></line>\n </svg>\n Quick Guide\n </summary>\n <div class=\"help-panel__content\">\n <div class=\"help-section\" data-team=\"ui\" style=\"display: none;\">\n <strong>UI Team</strong>\n <ul>\n <li>Extract tokens from Figma</li>\n <li>Sync to CSS variables</li>\n <li>Generate components</li>\n <li>Check token drift</li>\n </ul>\n </div>\n <div class=\"help-section\" data-team=\"ux\">\n <strong>UX Team</strong>\n <ul>\n <li>Add Figma files to project</li>\n <li>Run visual diff checks</li>\n <li>Review token consistency</li>\n <li>Validate components</li>\n </ul>\n </div>\n <div class=\"help-section\" data-team=\"qa\" style=\"display: none;\">\n <strong>QA Team</strong>\n <ul>\n <li>Define ESRE test cases</li>\n <li>Run component validation</li>\n <li>Review visual regressions</li>\n <li>Export audit logs</li>\n </ul>\n </div>\n <div class=\"help-section\" data-team=\"all\">\n <strong>Getting Started</strong>\n <ol>\n <li>Create a project</li>\n <li>Add Figma file key</li>\n <li>Extract &amp; sync tokens</li>\n <li>Use AI chat for help</li>\n </ol>\n </div>\n </div>\n </details>\n </div>\n <div class=\"sidebar__footer\">\n <ds-badge variant=\"outline\" dot=\"\">v0.8.0</ds-badge>\n </div>\n </aside>\n\n <!-- Header -->\n <header class=\"app-header\">\n <div class=\"app-header__project-selector\" id=\"project-selector-container\">\n <div class=\"project-selector\">\n <svg class=\"project-selector__icon\">\n \n \n \n </svg>\n <span class=\"project-selector__label\">Project:</span>\n \n \n \n test\n \n \n \n </div>\n </div>\n <div class=\"app-header__team-selector\">\n <label for=\"team-context-select\" class=\"sr-only\">Select team context</label>\n <select class=\"team-select\" id=\"team-context-select\" aria-label=\"Team context\">\n <option value=\"all\">All Teams</option>\n <option value=\"ui\">UI Team</option>\n <option value=\"ux\">UX Team</option>\n <option value=\"qa\">QA Team</option>\n </select>\n </div>\n <div class=\"app-header__actions\">\n <ds-button variant=\"ghost\" size=\"icon\" title=\"Toggle theme\" id=\"theme-toggle\" tabindex=\"0\" aria-label=\"Toggle dark/light theme\">\n <svg width=\"18\" height=\"18\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n <path d=\"M12 3v1m0 16v1m9-9h-1M4 12H3m15.364 6.364l-.707-.707M6.343 6.343l-.707-.707m12.728 0l-.707.707M6.343 17.657l-.707.707M16 12a4 4 0 1 1-8 0 4 4 0 0 1 8 0z\"></path>\n </svg>\n </ds-button>\n <ds-button variant=\"ghost\" size=\"icon\" title=\"Notifications\" tabindex=\"0\" aria-label=\"View notifications\">\n <svg width=\"18\" height=\"18\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n <path d=\"M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9\"></path>\n <path d=\"M10.3 21a1.94 1.94 0 0 0 3.4 0\"></path>\n </svg>\n </ds-button>\n <ds-button variant=\"ghost\" size=\"icon\" id=\"sidebar-toggle\" title=\"Toggle AI Assistant\" tabindex=\"0\" aria-label=\"Toggle AI Assistant sidebar\" aria-controls=\"ai-sidebar\" aria-expanded=\"true\">\n <svg width=\"18\" height=\"18\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n <path d=\"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\"></path>\n </svg>\n </ds-button>\n <div class=\"ds-avatar\" tabindex=\"0\" role=\"button\" aria-label=\"User profile menu\">\n <span>U</span>\n </div>\n </div>\n </header>\n\n <!-- Main Content Area -->\n <main class=\"app-main\">\n <div id=\"page-content\" class=\"app-content\">\n <div class=\"page-header\">\n <h1>Projects</h1>\n <p class=\"text-muted\">Manage your design system projects</p>\n </div>\n\n <div class=\"flex justify-between items-center mt-6 mb-4\">\n \n \n New Project\n \n </div>\n\n \n\n \n <div class=\"grid grid-cols-2 gap-4\">\n \n \n \n test\n \n active\n \n \n \n <p class=\"text-sm mb-3\">a test project</p>\n <div class=\"flex flex-col gap-2 text-sm\">\n <div class=\"flex justify-between\">\n <span class=\"text-muted\">Figma Key:</span>\n <span class=\"font-mono text-xs\">figd_jRiYc6O6Uzt6PNP-TC4UkkVRn911Sx5clYK9HOtt</span>\n </div>\n <div class=\"flex justify-between\">\n <span class=\"text-muted\">Last Sync:</span>\n <span>Never</span>\n </div>\n <div class=\"flex justify-between\">\n <span class=\"text-muted\">Created:</span>\n <span>18h ago</span>\n </div>\n </div>\n \n \n <div class=\"flex gap-2\">\n \n Open\n \n \n Sync Tokens\n \n \n Delete\n \n </div>\n \n \n \n </div>\n \n </div>\n\n <!-- Right Sidebar - AI Chat -->\n <aside class=\"app-sidebar\" id=\"ai-sidebar\">\n <ds-ai-chat></ds-ai-chat>\n </aside>\n </main>\n </div>\n\n <!-- Load Components -->\n <script type=\"module\">\n // Import theme manager first (loads saved theme from cookie)\n import themeManager from '/admin-ui/js/core/theme.js';\n\n // Import all components\n import '/admin-ui/js/components/ds-button.js';\n import '/admin-ui/js/components/ds-card.js';\n import '/admin-ui/js/components/ds-input.js';\n import '/admin-ui/js/components/ds-badge.js';\n import '/admin-ui/js/core/ai.js';\n\n // Import browser logger for debugging\n import '/admin-ui/js/core/browser-logger.js';\n\n // Import and initialize app\n import app from '/admin-ui/js/core/app.js';\n\n // Initialize when DOM is ready\n document.addEventListener('DOMContentLoaded', () => {\n app.init();\n\n // Setup theme toggle button\n const themeToggle = document.getElementById('theme-toggle');\n if (themeToggle) {\n themeToggle.addEventListener('click', () => {\n themeManager.toggle();\n });\n }\n\n // Setup team context selector\n const teamSelect = document.getElementById('team-context-select');\n const updateHelpSections = (team) => {\n document.querySelectorAll('.help-section').forEach(section => {\n const sectionTeam = section.dataset.team;\n section.style.display = (team === 'all' || sectionTeam === team || sectionTeam === 'all') ? '' : 'none';\n });\n };\n\n if (teamSelect) {\n const savedTeam = localStorage.getItem('dss_team_context') || 'all';\n teamSelect.value = savedTeam;\n updateHelpSections(savedTeam);\n\n teamSelect.addEventListener('change', (e) => {\n const team = e.target.value;\n localStorage.setItem('dss_team_context', team);\n updateHelpSections(team);\n window.dispatchEvent(new CustomEvent('team-context-changed', {\n detail: { team }\n }));\n });\n }\n\n // Setup AI sidebar toggle\n const sidebarToggle = document.getElementById('sidebar-toggle');\n const aiSidebar = document.getElementById('ai-sidebar');\n if (sidebarToggle && aiSidebar) {\n // Restore saved state\n const sidebarCollapsed = localStorage.getItem('dss_ai_sidebar_collapsed') === 'true';\n if (sidebarCollapsed) {\n aiSidebar.classList.add('collapsed');\n sidebarToggle.setAttribute('aria-expanded', 'false');\n }\n\n sidebarToggle.addEventListener('click', () => {\n const isCollapsed = aiSidebar.classList.toggle('collapsed');\n sidebarToggle.setAttribute('aria-expanded', !isCollapsed);\n localStorage.setItem('dss_ai_sidebar_collapsed', isCollapsed);\n });\n }\n });\n </script>\n\n\n</body></html>",
"viewport": {
"width": 1477,
"height": 958,
"devicePixelRatio": 2
},
"title": "Design System Server"
}
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#projects",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059848158,
"relativeTime": 60887,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 30 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 30 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#projects",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059848209,
"relativeTime": 60938,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 881.6000000238419,
"transferSize": 443,
"encodedBodySize": 143,
"decodedBodySize": 143
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#projects",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059849104,
"relativeTime": 61833,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 197.30000001192093,
"transferSize": 583,
"encodedBodySize": 283,
"decodedBodySize": 283
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#projects",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059850272,
"relativeTime": 63001,
"level": "info",
"category": "snapshot",
"message": "Navigation detected",
"data": {
"trigger": "navigation",
"from": "https://dss.overbits.luz.uy/admin-ui/index.html#projects",
"to": "https://dss.overbits.luz.uy/admin-ui/index.html#settings",
"snapshot": {
"timestamp": 1765059850272,
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#settings",
"html": "<html lang=\"en\" class=\"light\"><head>\n <meta charset=\"UTF-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n <title>Design System Server</title>\n <link rel=\"icon\" type=\"image/svg+xml\" href=\"/admin-ui/favicon.svg\">\n\n <!-- Design System Styles -->\n <link rel=\"stylesheet\" href=\"/admin-ui/css/tokens.css\">\n <link rel=\"stylesheet\" href=\"/admin-ui/css/base.css\">\n <link rel=\"stylesheet\" href=\"/admin-ui/css/components.css\">\n\n <!-- Markdown & Syntax Highlighting -->\n <script src=\"https://cdn.jsdelivr.net/npm/marked/marked.min.js\"></script>\n <script src=\"https://cdn.jsdelivr.net/npm/dompurify@3.0.6/dist/purify.min.js\"></script>\n <script src=\"https://cdn.jsdelivr.net/npm/highlight.js@11.9.0/lib/highlight.min.js\"></script>\n\n <style>\n /* App Layout */\n .app-layout {\n display: grid;\n grid-template-columns: 240px 1fr;\n grid-template-rows: auto 1fr;\n min-height: 100vh;\n }\n\n /* Sidebar */\n .sidebar {\n grid-row: 1 / -1;\n background: var(--card);\n border-right: 1px solid var(--border);\n display: flex;\n flex-direction: column;\n }\n\n .sidebar__header {\n padding: var(--space-4) var(--space-5);\n border-bottom: 1px solid var(--border);\n }\n\n .sidebar__logo {\n display: flex;\n align-items: center;\n gap: var(--space-3);\n font-weight: var(--font-semibold);\n font-size: var(--text-lg);\n color: var(--foreground);\n }\n\n .sidebar__logo-icon {\n width: 2rem;\n height: 2rem;\n background: var(--primary);\n border-radius: var(--radius);\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--primary-foreground);\n }\n\n .sidebar__nav {\n flex: 1;\n padding: var(--space-4);\n }\n\n .nav-section {\n margin-bottom: var(--space-6);\n }\n\n .nav-section__title {\n font-size: var(--text-xs);\n font-weight: var(--font-medium);\n color: var(--muted-foreground);\n text-transform: uppercase;\n letter-spacing: 0.05em;\n margin-bottom: var(--space-2);\n padding: 0 var(--space-3);\n }\n\n .nav-item {\n display: flex;\n align-items: center;\n gap: var(--space-3);\n padding: var(--space-2) var(--space-3);\n border-radius: var(--radius);\n color: var(--muted-foreground);\n text-decoration: none;\n font-size: var(--text-sm);\n transition: all var(--duration-fast) var(--ease-default);\n cursor: pointer;\n }\n\n .nav-item:hover {\n background: var(--accent);\n color: var(--accent-foreground);\n text-decoration: none;\n }\n\n .nav-item.active {\n background: var(--primary);\n color: var(--primary-foreground);\n }\n\n .nav-item__icon {\n width: 1.25rem;\n height: 1.25rem;\n opacity: 0.7;\n }\n\n .nav-item.active .nav-item__icon {\n opacity: 1;\n }\n\n .sidebar__help {\n padding: var(--space-3);\n border-top: 1px solid var(--border);\n }\n\n .help-panel {\n font-size: var(--text-xs);\n }\n\n .help-panel__toggle {\n display: flex;\n align-items: center;\n gap: var(--space-2);\n cursor: pointer;\n color: var(--muted-foreground);\n padding: var(--space-2);\n border-radius: var(--radius);\n list-style: none;\n }\n\n .help-panel__toggle:hover {\n background: var(--accent);\n color: var(--accent-foreground);\n }\n\n .help-panel__toggle::-webkit-details-marker {\n display: none;\n }\n\n .help-panel__content {\n padding: var(--space-2) var(--space-3);\n }\n\n .help-section {\n margin-bottom: var(--space-3);\n }\n\n .help-section strong {\n color: var(--foreground);\n font-size: var(--text-xs);\n }\n\n .help-section ul, .help-section ol {\n margin: var(--space-1) 0 0 var(--space-4);\n padding: 0;\n color: var(--muted-foreground);\n }\n\n .help-section li {\n margin-bottom: 2px;\n }\n\n .sidebar__footer {\n padding: var(--space-4);\n border-top: 1px solid var(--border);\n }\n\n /* Header */\n .app-header {\n display: flex;\n align-items: center;\n gap: var(--space-4);\n padding: var(--space-4) var(--space-6);\n background: var(--card);\n border-bottom: 1px solid var(--border);\n }\n\n .app-header__project-selector {\n display: flex;\n align-items: center;\n gap: var(--space-2);\n }\n\n .project-selector {\n display: flex;\n align-items: center;\n gap: var(--space-2);\n padding: var(--space-2) var(--space-3);\n background: var(--muted);\n border: 1px solid var(--border);\n border-radius: var(--radius);\n font-size: var(--text-sm);\n width: 200px;\n }\n\n .project-selector__label {\n font-weight: var(--font-medium);\n color: var(--muted-foreground);\n font-size: var(--text-xs);\n text-transform: uppercase;\n letter-spacing: 0.05em;\n }\n\n .project-selector__select {\n flex: 1;\n background: transparent;\n border: none;\n color: var(--foreground);\n font-size: var(--text-sm);\n font-weight: var(--font-medium);\n outline: none;\n cursor: pointer;\n padding: var(--space-1) 0;\n }\n\n .project-selector__select option {\n background: var(--popover);\n color: var(--popover-foreground);\n }\n\n .project-selector__icon {\n width: 16px;\n height: 16px;\n color: var(--primary);\n }\n\n .app-header__team-selector {\n display: flex;\n align-items: center;\n }\n\n .team-select {\n padding: var(--space-2) var(--space-3);\n background: var(--muted);\n border: 1px solid var(--border);\n border-radius: var(--radius);\n color: var(--foreground);\n font-size: var(--text-sm);\n cursor: pointer;\n width: 200px;\n }\n\n .team-select:focus {\n outline: none;\n border-color: var(--ring);\n }\n\n .app-header__actions {\n display: flex;\n align-items: center;\n gap: var(--space-3);\n margin-left: auto;\n }\n\n /* Main Content */\n .app-main {\n display: grid;\n grid-template-columns: 1fr;\n overflow: hidden;\n position: relative;\n }\n\n .app-content {\n padding: var(--space-6);\n padding-right: 340px;\n overflow-y: auto;\n }\n\n .app-sidebar {\n width: 320px;\n height: calc(100vh - 57px);\n border-left: 1px solid var(--border);\n background: var(--card);\n display: flex;\n flex-direction: column;\n transition: width 0.2s ease, transform 0.2s ease;\n position: fixed;\n right: 0;\n top: 57px;\n bottom: 0;\n z-index: 50;\n }\n\n .app-sidebar.collapsed {\n width: 0;\n overflow: hidden;\n border-left: none;\n }\n\n /* AI Toggle button active state in header */\n #sidebar-toggle[aria-expanded=\"false\"] {\n opacity: 0.6;\n }\n\n /* Page Header */\n .page-header h1 {\n font-size: var(--text-2xl);\n margin-bottom: var(--space-1);\n }\n\n /* Docs Layout */\n .docs-layout {\n display: grid;\n grid-template-columns: 200px 1fr;\n gap: var(--space-6);\n min-height: 0;\n }\n\n .docs-nav {\n position: sticky;\n top: 0;\n height: fit-content;\n }\n\n .docs-nav__section {\n margin-bottom: var(--space-4);\n }\n\n .docs-nav__title {\n font-size: var(--text-xs);\n font-weight: var(--font-semibold);\n color: var(--muted-foreground);\n text-transform: uppercase;\n letter-spacing: 0.05em;\n margin-bottom: var(--space-2);\n }\n\n .docs-nav__link {\n display: block;\n padding: var(--space-1) var(--space-2);\n font-size: var(--text-sm);\n color: var(--muted-foreground);\n text-decoration: none;\n border-radius: var(--radius);\n cursor: pointer;\n }\n\n .docs-nav__link:hover {\n color: var(--foreground);\n background: var(--accent);\n }\n\n .docs-nav__link.active {\n color: var(--primary);\n background: var(--primary-light, oklch(0.65 0.18 250 / 0.1));\n }\n\n .docs-content {\n max-width: 700px;\n }\n\n .docs-content h2 {\n font-size: var(--text-xl);\n font-weight: var(--font-semibold);\n margin-bottom: var(--space-4);\n padding-bottom: var(--space-2);\n border-bottom: 1px solid var(--border);\n }\n\n .docs-content h3 {\n font-size: var(--text-base);\n font-weight: var(--font-semibold);\n margin: var(--space-4) 0 var(--space-2);\n }\n\n .docs-content p {\n margin-bottom: var(--space-3);\n line-height: 1.6;\n }\n\n .docs-content ul, .docs-content ol {\n margin: 0 0 var(--space-3) var(--space-4);\n line-height: 1.6;\n }\n\n .docs-content li {\n margin-bottom: var(--space-1);\n }\n\n .docs-content pre {\n background: var(--muted);\n padding: var(--space-3);\n border-radius: var(--radius);\n overflow-x: auto;\n margin-bottom: var(--space-3);\n font-size: var(--text-sm);\n }\n\n .docs-content code {\n font-family: ui-monospace, monospace;\n font-size: 0.9em;\n }\n\n .docs-content a {\n color: var(--primary);\n }\n\n /* Stats */\n .stat {\n text-align: center;\n }\n\n .stat__label {\n font-size: var(--text-sm);\n color: var(--muted-foreground);\n margin-bottom: var(--space-1);\n }\n\n .stat__value {\n font-size: var(--text-2xl);\n font-weight: var(--font-bold);\n }\n\n /* Status Dot */\n .status-dot {\n width: 0.5rem;\n height: 0.5rem;\n border-radius: var(--radius-full);\n background: var(--muted);\n }\n\n .status-dot--success { background: var(--success); }\n .status-dot--warning { background: var(--warning); }\n .status-dot--error { background: var(--destructive); }\n\n /* Responsive */\n @media (max-width: 1024px) {\n .app-main {\n grid-template-columns: 1fr;\n }\n\n .app-sidebar {\n display: none;\n }\n }\n\n @media (max-width: 768px) {\n .app-layout {\n grid-template-columns: 1fr;\n }\n\n .sidebar {\n display: none;\n }\n }\n </style>\n</head>\n<body>\n <div id=\"app\" class=\"app-layout\">\n <!-- Sidebar -->\n <aside class=\"sidebar\">\n <div class=\"sidebar__header\">\n <div class=\"sidebar__logo\">\n <div class=\"sidebar__logo-icon\">\n <svg width=\"18\" height=\"18\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M12 2L2 7l10 5 10-5-10-5z\"></path>\n <path d=\"M2 17l10 5 10-5\"></path>\n <path d=\"M2 12l10 5 10-5\"></path>\n </svg>\n </div>\n <span>DSS</span>\n </div>\n </div>\n\n <nav class=\"sidebar__nav\" aria-label=\"Main navigation\">\n <div class=\"nav-section\">\n <div class=\"nav-section__title\">Overview</div>\n <a class=\"nav-item\" data-page=\"dashboard\" href=\"#dashboard\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <rect x=\"3\" y=\"3\" width=\"7\" height=\"9\" rx=\"1\"></rect>\n <rect x=\"14\" y=\"3\" width=\"7\" height=\"5\" rx=\"1\"></rect>\n <rect x=\"14\" y=\"12\" width=\"7\" height=\"9\" rx=\"1\"></rect>\n <rect x=\"3\" y=\"16\" width=\"7\" height=\"5\" rx=\"1\"></rect>\n </svg>\n Dashboard\n </a>\n <a class=\"nav-item\" data-page=\"projects\" href=\"#projects\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M3 3h18v18H3z\"></path>\n <path d=\"M21 9H3\"></path>\n <path d=\"M9 21V9\"></path>\n </svg>\n Projects\n </a>\n </div>\n\n <div class=\"nav-section\">\n <div class=\"nav-section__title\">Tools</div>\n <a class=\"nav-item\" data-page=\"services\" href=\"#services\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <rect x=\"3\" y=\"3\" width=\"7\" height=\"7\" rx=\"1\"></rect>\n <rect x=\"14\" y=\"3\" width=\"7\" height=\"7\" rx=\"1\"></rect>\n <rect x=\"3\" y=\"14\" width=\"7\" height=\"7\" rx=\"1\"></rect>\n <rect x=\"14\" y=\"14\" width=\"7\" height=\"7\" rx=\"1\"></rect>\n </svg>\n Services\n </a>\n <a class=\"nav-item\" data-page=\"quick-wins\" href=\"#quick-wins\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <polygon points=\"13 2 3 14 12 14 11 22 21 10 12 10 13 2\"></polygon>\n </svg>\n Quick Wins\n </a>\n <a class=\"nav-item\" data-page=\"chat\" href=\"#chat\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\"></path>\n </svg>\n Chat\n </a>\n </div>\n\n <div class=\"nav-section\">\n <div class=\"nav-section__title\">Design System</div>\n <a class=\"nav-item\" data-page=\"tokens\" href=\"#tokens\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <circle cx=\"12\" cy=\"12\" r=\"10\"></circle>\n <circle cx=\"12\" cy=\"12\" r=\"4\"></circle>\n </svg>\n Tokens\n </a>\n <a class=\"nav-item\" data-page=\"components\" href=\"#components\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\"></rect>\n <path d=\"M3 9h18\"></path>\n <path d=\"M9 21V9\"></path>\n </svg>\n Components\n </a>\n <a class=\"nav-item\" data-page=\"figma\" href=\"#figma\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M5 5.5A3.5 3.5 0 0 1 8.5 2H12v7H8.5A3.5 3.5 0 0 1 5 5.5z\"></path>\n <path d=\"M12 2h3.5a3.5 3.5 0 1 1 0 7H12V2z\"></path>\n <path d=\"M12 12.5a3.5 3.5 0 1 1 7 0 3.5 3.5 0 1 1-7 0z\"></path>\n <path d=\"M5 19.5A3.5 3.5 0 0 1 8.5 16H12v3.5a3.5 3.5 0 1 1-7 0z\"></path>\n <path d=\"M5 12.5A3.5 3.5 0 0 1 8.5 9H12v7H8.5A3.5 3.5 0 0 1 5 12.5z\"></path>\n </svg>\n Figma\n </a>\n <a id=\"storybook-link\" class=\"nav-item\" href=\"https://dss.overbits.luz.uy/storybook/\" target=\"_blank\" tabindex=\"0\" title=\"Open Storybook at https://dss.overbits.luz.uy/storybook/\" style=\"pointer-events: auto; opacity: 1;\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z\"></path>\n <path d=\"M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z\"></path>\n </svg>\n Storybook\n </a>\n </div>\n\n <div class=\"nav-section\">\n <div class=\"nav-section__title\">System</div>\n <a class=\"nav-item\" data-page=\"docs\" href=\"#docs\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M4 19.5A2.5 2.5 0 0 1 6.5 17H20\"></path>\n <path d=\"M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z\"></path>\n </svg>\n Docs\n </a>\n <a class=\"nav-item\" data-page=\"teams\" href=\"#teams\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2\"></path>\n <circle cx=\"9\" cy=\"7\" r=\"4\"></circle>\n <path d=\"M22 21v-2a4 4 0 0 0-3-3.87\"></path>\n <path d=\"M16 3.13a4 4 0 0 1 0 7.75\"></path>\n </svg>\n Teams\n </a>\n <a class=\"nav-item\" data-page=\"audit\" href=\"#audit\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"></path>\n <polyline points=\"14 2 14 8 20 8\"></polyline>\n <line x1=\"16\" y1=\"13\" x2=\"8\" y2=\"13\"></line>\n <line x1=\"16\" y1=\"17\" x2=\"8\" y2=\"17\"></line>\n <polyline points=\"10 9 9 9 8 9\"></polyline>\n </svg>\n Audit Log\n </a>\n <a class=\"nav-item\" data-page=\"plugins\" href=\"#plugins\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M12 2v4m0 12v4M4.93 4.93l2.83 2.83m8.48 8.48l2.83 2.83M2 12h4m12 0h4M4.93 19.07l2.83-2.83m8.48-8.48l2.83-2.83\"></path>\n <circle cx=\"12\" cy=\"12\" r=\"3\"></circle>\n </svg>\n Plugins\n </a>\n <a class=\"nav-item active\" data-page=\"settings\" href=\"#settings\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z\"></path>\n <circle cx=\"12\" cy=\"12\" r=\"3\"></circle>\n </svg>\n Settings\n </a>\n </div>\n </nav>\n\n <div class=\"sidebar__help\">\n <details class=\"help-panel\">\n <summary class=\"help-panel__toggle\" tabindex=\"0\">\n <svg width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <circle cx=\"12\" cy=\"12\" r=\"10\"></circle>\n <path d=\"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3\"></path>\n <line x1=\"12\" y1=\"17\" x2=\"12.01\" y2=\"17\"></line>\n </svg>\n Quick Guide\n </summary>\n <div class=\"help-panel__content\">\n <div class=\"help-section\" data-team=\"ui\" style=\"display: none;\">\n <strong>UI Team</strong>\n <ul>\n <li>Extract tokens from Figma</li>\n <li>Sync to CSS variables</li>\n <li>Generate components</li>\n <li>Check token drift</li>\n </ul>\n </div>\n <div class=\"help-section\" data-team=\"ux\">\n <strong>UX Team</strong>\n <ul>\n <li>Add Figma files to project</li>\n <li>Run visual diff checks</li>\n <li>Review token consistency</li>\n <li>Validate components</li>\n </ul>\n </div>\n <div class=\"help-section\" data-team=\"qa\" style=\"display: none;\">\n <strong>QA Team</strong>\n <ul>\n <li>Define ESRE test cases</li>\n <li>Run component validation</li>\n <li>Review visual regressions</li>\n <li>Export audit logs</li>\n </ul>\n </div>\n <div class=\"help-section\" data-team=\"all\">\n <strong>Getting Started</strong>\n <ol>\n <li>Create a project</li>\n <li>Add Figma file key</li>\n <li>Extract &amp; sync tokens</li>\n <li>Use AI chat for help</li>\n </ol>\n </div>\n </div>\n </details>\n </div>\n <div class=\"sidebar__footer\">\n <ds-badge variant=\"outline\" dot=\"\">v0.8.0</ds-badge>\n </div>\n </aside>\n\n <!-- Header -->\n <header class=\"app-header\">\n <div class=\"app-header__project-selector\" id=\"project-selector-container\">\n <div class=\"project-selector\">\n <svg class=\"project-selector__icon\">\n \n \n \n </svg>\n <span class=\"project-selector__label\">Project:</span>\n \n \n \n test\n \n \n \n </div>\n </div>\n <div class=\"app-header__team-selector\">\n <label for=\"team-context-select\" class=\"sr-only\">Select team context</label>\n <select class=\"team-select\" id=\"team-context-select\" aria-label=\"Team context\">\n <option value=\"all\">All Teams</option>\n <option value=\"ui\">UI Team</option>\n <option value=\"ux\">UX Team</option>\n <option value=\"qa\">QA Team</option>\n </select>\n </div>\n <div class=\"app-header__actions\">\n <ds-button variant=\"ghost\" size=\"icon\" title=\"Toggle theme\" id=\"theme-toggle\" tabindex=\"0\" aria-label=\"Toggle dark/light theme\">\n <svg width=\"18\" height=\"18\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n <path d=\"M12 3v1m0 16v1m9-9h-1M4 12H3m15.364 6.364l-.707-.707M6.343 6.343l-.707-.707m12.728 0l-.707.707M6.343 17.657l-.707.707M16 12a4 4 0 1 1-8 0 4 4 0 0 1 8 0z\"></path>\n </svg>\n </ds-button>\n <ds-button variant=\"ghost\" size=\"icon\" title=\"Notifications\" tabindex=\"0\" aria-label=\"View notifications\">\n <svg width=\"18\" height=\"18\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n <path d=\"M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9\"></path>\n <path d=\"M10.3 21a1.94 1.94 0 0 0 3.4 0\"></path>\n </svg>\n </ds-button>\n <ds-button variant=\"ghost\" size=\"icon\" id=\"sidebar-toggle\" title=\"Toggle AI Assistant\" tabindex=\"0\" aria-label=\"Toggle AI Assistant sidebar\" aria-controls=\"ai-sidebar\" aria-expanded=\"true\">\n <svg width=\"18\" height=\"18\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n <path d=\"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\"></path>\n </svg>\n </ds-button>\n <div class=\"ds-avatar\" tabindex=\"0\" role=\"button\" aria-label=\"User profile menu\">\n <span>U</span>\n </div>\n </div>\n </header>\n\n <!-- Main Content Area -->\n <main class=\"app-main\">\n <div id=\"page-content\" class=\"app-content\">\n <div class=\"page-header\">\n <h1>Settings</h1>\n <p class=\"text-muted\">Configure your design system server</p>\n </div>\n\n <div class=\"mt-6 flex flex-col gap-6\">\n \n \n \n Server Mode\n Choose how DSS operates\n \n \n <div class=\"flex gap-4\">\n <div data-mode=\"local\" data-action=\"setMode\" style=\"background: var(--muted)\" class=\"flex-1 p-4 rounded cursor-pointer ring-2 ring-primary\">\n <h4 class=\"font-medium mb-1\">Local Dev Companion</h4>\n <p class=\"text-sm text-muted\">Run alongside your project, provides UI dev assistance, component preview, and local services.</p>\n </div>\n <div data-mode=\"server\" data-action=\"setMode\" style=\"background: var(--muted)\" class=\"flex-1 p-4 rounded cursor-pointer\">\n <h4 class=\"font-medium mb-1\">Remote Server</h4>\n <p class=\"text-sm text-muted\">Deployed centrally, serves design systems to teams, multi-project management.</p>\n </div>\n </div>\n \n \n\n \n \n \n Figma Integration\n Connect to Figma API\n \n Connected\n \n \n \n <div class=\"flex flex-col gap-4\">\n \n <p class=\"text-xs text-muted\">\n Get your token from <a class=\"text-primary\" target=\"_blank\" href=\"https://www.figma.com/developers/api#access-tokens\">Figma Settings \u2192 Personal Access Tokens</a>\n </p>\n <div class=\"flex gap-2\">\n \n Save Token\n \n \n Test Connection\n \n </div>\n \n </div>\n \n \n\n \n \n \n External Tools &amp; Integrations\n Configure connected tools and services\n \n \n <div class=\"flex flex-col gap-4\">\n \n <div style=\"background: var(--muted); border-color: var(--border)\" class=\"p-4 rounded border\">\n <div class=\"flex items-center justify-between mb-3\">\n <div class=\"flex items-center gap-2\">\n <span class=\"font-medium\">Storybook</span>\n documentation\n </div>\n \n \n Open\n \n \n </div>\n <p class=\"text-sm text-muted mb-3\">Component documentation and playground</p>\n \n <div class=\"text-xs text-muted mb-3\">\n URL: <code>https://dss.overbits.luz.uy/storybook/</code>\n Host from server config: <code>dss.overbits.luz.uy</code>\n </div>\n <div class=\"flex gap-2\">\n \n Initialize Storybook\n \n \n Clear Stories\n \n </div>\n \n \n </div>\n \n <div style=\"background: var(--muted); border-color: var(--border)\" class=\"p-4 rounded border\">\n <div class=\"flex items-center justify-between mb-3\">\n <div class=\"flex items-center gap-2\">\n <span class=\"font-medium\">Figma</span>\n design\n </div>\n \n \n Open\n \n \n </div>\n <p class=\"text-sm text-muted mb-3\">Design file integration and token extraction</p>\n \n \n <div class=\"text-xs text-muted\">\n Token status: Check connection above\n </div>\n \n </div>\n \n </div>\n \n \n\n \n \n \n Companion Services\n Discovered and configured services\n \n \n <div class=\"grid grid-cols-3 gap-4\">\n \n <div style=\"background: var(--muted)\" class=\"p-4 rounded\">\n <div class=\"flex items-center justify-between mb-2\">\n <h4 class=\"font-medium\">Storybook</h4>\n <span class=\"status-dot status-dot--success\"></span>\n </div>\n <p class=\"text-sm text-muted mb-2\">\n Running on :6006\n </p>\n \n \n Open\n \n \n </div>\n \n \n <div style=\"background: var(--muted)\" class=\"p-4 rounded\">\n <div class=\"flex items-center justify-between mb-2\">\n <h4 class=\"font-medium\">Vite Dev Server</h4>\n <span class=\"status-dot status-dot--success\"></span>\n </div>\n <p class=\"text-sm text-muted mb-2\">\n Running on :3000\n </p>\n \n \n Open\n \n \n </div>\n \n \n <div style=\"background: var(--muted)\" class=\"p-4 rounded\">\n <div class=\"flex items-center justify-between mb-2\">\n <h4 class=\"font-medium\">Next.js</h4>\n <span class=\"status-dot status-dot--success\"></span>\n </div>\n <p class=\"text-sm text-muted mb-2\">\n Running on :3000\n </p>\n \n \n Open\n \n \n </div>\n \n </div>\n <div class=\"mt-4\">\n \n Refresh Services\n \n </div>\n \n \n\n \n \n \n Features\n Enable or disable DSS features\n \n \n <div class=\"flex flex-col gap-3\">\n \n <div style=\"background: var(--muted)\" class=\"flex items-center justify-between p-3 rounded\">\n <div>\n <div class=\"font-medium\">Visual QA</div>\n <div class=\"text-sm text-muted\">Compare Figma designs with implementation</div>\n </div>\n \n Enabled\n \n </div>\n \n \n <div style=\"background: var(--muted)\" class=\"flex items-center justify-between p-3 rounded\">\n <div>\n <div class=\"font-medium\">Token Sync</div>\n <div class=\"text-sm text-muted\">Sync design tokens to code</div>\n </div>\n \n Enabled\n \n </div>\n \n \n <div style=\"background: var(--muted)\" class=\"flex items-center justify-between p-3 rounded\">\n <div>\n <div class=\"font-medium\">Code Generation</div>\n <div class=\"text-sm text-muted\">Generate component code from Figma</div>\n </div>\n \n Enabled\n \n </div>\n \n \n <div style=\"background: var(--muted)\" class=\"flex items-center justify-between p-3 rounded\">\n <div>\n <div class=\"font-medium\">AI Advisor</div>\n <div class=\"text-sm text-muted\">Get AI suggestions for design system improvements</div>\n </div>\n \n Enabled\n \n </div>\n \n </div>\n \n \n\n \n \n \n Appearance\n Customize the interface\n \n \n <div class=\"flex items-center justify-between\">\n <span>Dark Mode</span>\n \n Toggle Theme\n \n </div>\n \n \n\n \n \n \n Output Configuration\n Token and component generation settings\n \n \n <div class=\"grid grid-cols-2 gap-4\">\n \n \n </div>\n \n \n\n \n \n \n \u26a0\ufe0f Danger Zone\n Irreversible operations - use with caution\n \n \n <div class=\"flex flex-col gap-4\">\n <div>\n <h4 class=\"font-medium mb-2\">Reset DSS to Fresh State</h4>\n <p class=\"text-sm text-muted mb-3\">\n This will delete all user-created themes, cached data, and project databases.\n The DSS structure and default themes will be preserved.\n </p>\n \n Reset DSS\n \n </div>\n </div>\n \n \n\n \n \n \n API Status\n \n \n <div class=\"flex flex-col gap-2 text-sm\">\n <div class=\"flex justify-between\">\n <span>API Mode:</span>\n \n Live\n \n </div>\n <div class=\"flex justify-between\">\n <span>Base URL:</span>\n <span class=\"text-muted\">/api</span>\n </div>\n </div>\n \n \n </div>\n </div>\n\n <!-- Right Sidebar - AI Chat -->\n <aside class=\"app-sidebar\" id=\"ai-sidebar\">\n <ds-ai-chat></ds-ai-chat>\n </aside>\n </main>\n </div>\n\n <!-- Load Components -->\n <script type=\"module\">\n // Import theme manager first (loads saved theme from cookie)\n import themeManager from '/admin-ui/js/core/theme.js';\n\n // Import all components\n import '/admin-ui/js/components/ds-button.js';\n import '/admin-ui/js/components/ds-card.js';\n import '/admin-ui/js/components/ds-input.js';\n import '/admin-ui/js/components/ds-badge.js';\n import '/admin-ui/js/core/ai.js';\n\n // Import browser logger for debugging\n import '/admin-ui/js/core/browser-logger.js';\n\n // Import and initialize app\n import app from '/admin-ui/js/core/app.js';\n\n // Initialize when DOM is ready\n document.addEventListener('DOMContentLoaded', () => {\n app.init();\n\n // Setup theme toggle button\n const themeToggle = document.getElementById('theme-toggle');\n if (themeToggle) {\n themeToggle.addEventListener('click', () => {\n themeManager.toggle();\n });\n }\n\n // Setup team context selector\n const teamSelect = document.getElementById('team-context-select');\n const updateHelpSections = (team) => {\n document.querySelectorAll('.help-section').forEach(section => {\n const sectionTeam = section.dataset.team;\n section.style.display = (team === 'all' || sectionTeam === team || sectionTeam === 'all') ? '' : 'none';\n });\n };\n\n if (teamSelect) {\n const savedTeam = localStorage.getItem('dss_team_context') || 'all';\n teamSelect.value = savedTeam;\n updateHelpSections(savedTeam);\n\n teamSelect.addEventListener('change', (e) => {\n const team = e.target.value;\n localStorage.setItem('dss_team_context', team);\n updateHelpSections(team);\n window.dispatchEvent(new CustomEvent('team-context-changed', {\n detail: { team }\n }));\n });\n }\n\n // Setup AI sidebar toggle\n const sidebarToggle = document.getElementById('sidebar-toggle');\n const aiSidebar = document.getElementById('ai-sidebar');\n if (sidebarToggle && aiSidebar) {\n // Restore saved state\n const sidebarCollapsed = localStorage.getItem('dss_ai_sidebar_collapsed') === 'true';\n if (sidebarCollapsed) {\n aiSidebar.classList.add('collapsed');\n sidebarToggle.setAttribute('aria-expanded', 'false');\n }\n\n sidebarToggle.addEventListener('click', () => {\n const isCollapsed = aiSidebar.classList.toggle('collapsed');\n sidebarToggle.setAttribute('aria-expanded', !isCollapsed);\n localStorage.setItem('dss_ai_sidebar_collapsed', isCollapsed);\n });\n }\n });\n </script>\n\n\n</body></html>",
"viewport": {
"width": 1477,
"height": 958,
"devicePixelRatio": 2
},
"title": "Design System Server"
}
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#settings",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059855707,
"relativeTime": 68436,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/mode",
"data": {
"url": "https://dss.overbits.luz.uy/api/mode",
"initiatorType": "fetch",
"duration": 210.7000000178814,
"transferSize": 331,
"encodedBodySize": 31,
"decodedBodySize": 31
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#settings",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059856115,
"relativeTime": 68844,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/mode",
"data": {
"url": "https://dss.overbits.luz.uy/api/mode",
"initiatorType": "fetch",
"duration": 197.30000001192093,
"transferSize": 332,
"encodedBodySize": 32,
"decodedBodySize": 32
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#settings",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059857242,
"relativeTime": 69971,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/mode",
"data": {
"url": "https://dss.overbits.luz.uy/api/mode",
"initiatorType": "fetch",
"duration": 199.09999999403954,
"transferSize": 331,
"encodedBodySize": 31,
"decodedBodySize": 31
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#settings",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059857756,
"relativeTime": 70485,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/mode",
"data": {
"url": "https://dss.overbits.luz.uy/api/mode",
"initiatorType": "fetch",
"duration": 209.59999999403954,
"transferSize": 332,
"encodedBodySize": 32,
"decodedBodySize": 32
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#settings",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059878195,
"relativeTime": 90924,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 38 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 38 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#settings",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059878246,
"relativeTime": 90975,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 919.5,
"transferSize": 443,
"encodedBodySize": 143,
"decodedBodySize": 143
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#settings",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059879111,
"relativeTime": 91840,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 202.59999999403954,
"transferSize": 583,
"encodedBodySize": 283,
"decodedBodySize": 283
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#settings",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059908240,
"relativeTime": 120969,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 41 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 41 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#settings",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059908292,
"relativeTime": 121021,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 963.1999999880791,
"transferSize": 443,
"encodedBodySize": 143,
"decodedBodySize": 143
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#settings",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059909103,
"relativeTime": 121832,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 196,
"transferSize": 583,
"encodedBodySize": 283,
"decodedBodySize": 283
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#settings",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059938196,
"relativeTime": 150925,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 44 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 44 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#settings",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059938247,
"relativeTime": 150976,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 916.6999999880791,
"transferSize": 443,
"encodedBodySize": 143,
"decodedBodySize": 143
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#settings",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059939106,
"relativeTime": 151835,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 198.7999999821186,
"transferSize": 583,
"encodedBodySize": 283,
"decodedBodySize": 283
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#settings",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059947880,
"relativeTime": 160609,
"level": "log",
"category": "console",
"message": "%c\ud83d\udcad [UI] Rendering quick wins page color: #2196F3; font-weight: bold",
"data": {
"args": [
"%c\ud83d\udcad [UI] Rendering quick wins page",
"color: #2196F3; font-weight: bold"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#quick-wins",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059947884,
"relativeTime": 160613,
"level": "log",
"category": "console",
"message": "%c\ud83d\udcad [UI] Rendering quick wins page color: #2196F3; font-weight: bold",
"data": {
"args": [
"%c\ud83d\udcad [UI] Rendering quick wins page",
"color: #2196F3; font-weight: bold"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#quick-wins",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059947890,
"relativeTime": 160619,
"level": "log",
"category": "console",
"message": "%c\ud83d\udcad [UI] Rendering quick wins page color: #2196F3; font-weight: bold",
"data": {
"args": [
"%c\ud83d\udcad [UI] Rendering quick wins page",
"color: #2196F3; font-weight: bold"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#quick-wins",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059947891,
"relativeTime": 160620,
"level": "log",
"category": "console",
"message": "%c\ud83d\udcad [UI] Rendering quick wins page color: #2196F3; font-weight: bold",
"data": {
"args": [
"%c\ud83d\udcad [UI] Rendering quick wins page",
"color: #2196F3; font-weight: bold"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#quick-wins",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059948273,
"relativeTime": 161002,
"level": "info",
"category": "snapshot",
"message": "Navigation detected",
"data": {
"trigger": "navigation",
"from": "https://dss.overbits.luz.uy/admin-ui/index.html#settings",
"to": "https://dss.overbits.luz.uy/admin-ui/index.html#quick-wins",
"snapshot": {
"timestamp": 1765059948273,
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#quick-wins",
"html": "<html lang=\"en\" class=\"light\"><head>\n <meta charset=\"UTF-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n <title>Design System Server</title>\n <link rel=\"icon\" type=\"image/svg+xml\" href=\"/admin-ui/favicon.svg\">\n\n <!-- Design System Styles -->\n <link rel=\"stylesheet\" href=\"/admin-ui/css/tokens.css\">\n <link rel=\"stylesheet\" href=\"/admin-ui/css/base.css\">\n <link rel=\"stylesheet\" href=\"/admin-ui/css/components.css\">\n\n <!-- Markdown & Syntax Highlighting -->\n <script src=\"https://cdn.jsdelivr.net/npm/marked/marked.min.js\"></script>\n <script src=\"https://cdn.jsdelivr.net/npm/dompurify@3.0.6/dist/purify.min.js\"></script>\n <script src=\"https://cdn.jsdelivr.net/npm/highlight.js@11.9.0/lib/highlight.min.js\"></script>\n\n <style>\n /* App Layout */\n .app-layout {\n display: grid;\n grid-template-columns: 240px 1fr;\n grid-template-rows: auto 1fr;\n min-height: 100vh;\n }\n\n /* Sidebar */\n .sidebar {\n grid-row: 1 / -1;\n background: var(--card);\n border-right: 1px solid var(--border);\n display: flex;\n flex-direction: column;\n }\n\n .sidebar__header {\n padding: var(--space-4) var(--space-5);\n border-bottom: 1px solid var(--border);\n }\n\n .sidebar__logo {\n display: flex;\n align-items: center;\n gap: var(--space-3);\n font-weight: var(--font-semibold);\n font-size: var(--text-lg);\n color: var(--foreground);\n }\n\n .sidebar__logo-icon {\n width: 2rem;\n height: 2rem;\n background: var(--primary);\n border-radius: var(--radius);\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--primary-foreground);\n }\n\n .sidebar__nav {\n flex: 1;\n padding: var(--space-4);\n }\n\n .nav-section {\n margin-bottom: var(--space-6);\n }\n\n .nav-section__title {\n font-size: var(--text-xs);\n font-weight: var(--font-medium);\n color: var(--muted-foreground);\n text-transform: uppercase;\n letter-spacing: 0.05em;\n margin-bottom: var(--space-2);\n padding: 0 var(--space-3);\n }\n\n .nav-item {\n display: flex;\n align-items: center;\n gap: var(--space-3);\n padding: var(--space-2) var(--space-3);\n border-radius: var(--radius);\n color: var(--muted-foreground);\n text-decoration: none;\n font-size: var(--text-sm);\n transition: all var(--duration-fast) var(--ease-default);\n cursor: pointer;\n }\n\n .nav-item:hover {\n background: var(--accent);\n color: var(--accent-foreground);\n text-decoration: none;\n }\n\n .nav-item.active {\n background: var(--primary);\n color: var(--primary-foreground);\n }\n\n .nav-item__icon {\n width: 1.25rem;\n height: 1.25rem;\n opacity: 0.7;\n }\n\n .nav-item.active .nav-item__icon {\n opacity: 1;\n }\n\n .sidebar__help {\n padding: var(--space-3);\n border-top: 1px solid var(--border);\n }\n\n .help-panel {\n font-size: var(--text-xs);\n }\n\n .help-panel__toggle {\n display: flex;\n align-items: center;\n gap: var(--space-2);\n cursor: pointer;\n color: var(--muted-foreground);\n padding: var(--space-2);\n border-radius: var(--radius);\n list-style: none;\n }\n\n .help-panel__toggle:hover {\n background: var(--accent);\n color: var(--accent-foreground);\n }\n\n .help-panel__toggle::-webkit-details-marker {\n display: none;\n }\n\n .help-panel__content {\n padding: var(--space-2) var(--space-3);\n }\n\n .help-section {\n margin-bottom: var(--space-3);\n }\n\n .help-section strong {\n color: var(--foreground);\n font-size: var(--text-xs);\n }\n\n .help-section ul, .help-section ol {\n margin: var(--space-1) 0 0 var(--space-4);\n padding: 0;\n color: var(--muted-foreground);\n }\n\n .help-section li {\n margin-bottom: 2px;\n }\n\n .sidebar__footer {\n padding: var(--space-4);\n border-top: 1px solid var(--border);\n }\n\n /* Header */\n .app-header {\n display: flex;\n align-items: center;\n gap: var(--space-4);\n padding: var(--space-4) var(--space-6);\n background: var(--card);\n border-bottom: 1px solid var(--border);\n }\n\n .app-header__project-selector {\n display: flex;\n align-items: center;\n gap: var(--space-2);\n }\n\n .project-selector {\n display: flex;\n align-items: center;\n gap: var(--space-2);\n padding: var(--space-2) var(--space-3);\n background: var(--muted);\n border: 1px solid var(--border);\n border-radius: var(--radius);\n font-size: var(--text-sm);\n width: 200px;\n }\n\n .project-selector__label {\n font-weight: var(--font-medium);\n color: var(--muted-foreground);\n font-size: var(--text-xs);\n text-transform: uppercase;\n letter-spacing: 0.05em;\n }\n\n .project-selector__select {\n flex: 1;\n background: transparent;\n border: none;\n color: var(--foreground);\n font-size: var(--text-sm);\n font-weight: var(--font-medium);\n outline: none;\n cursor: pointer;\n padding: var(--space-1) 0;\n }\n\n .project-selector__select option {\n background: var(--popover);\n color: var(--popover-foreground);\n }\n\n .project-selector__icon {\n width: 16px;\n height: 16px;\n color: var(--primary);\n }\n\n .app-header__team-selector {\n display: flex;\n align-items: center;\n }\n\n .team-select {\n padding: var(--space-2) var(--space-3);\n background: var(--muted);\n border: 1px solid var(--border);\n border-radius: var(--radius);\n color: var(--foreground);\n font-size: var(--text-sm);\n cursor: pointer;\n width: 200px;\n }\n\n .team-select:focus {\n outline: none;\n border-color: var(--ring);\n }\n\n .app-header__actions {\n display: flex;\n align-items: center;\n gap: var(--space-3);\n margin-left: auto;\n }\n\n /* Main Content */\n .app-main {\n display: grid;\n grid-template-columns: 1fr;\n overflow: hidden;\n position: relative;\n }\n\n .app-content {\n padding: var(--space-6);\n padding-right: 340px;\n overflow-y: auto;\n }\n\n .app-sidebar {\n width: 320px;\n height: calc(100vh - 57px);\n border-left: 1px solid var(--border);\n background: var(--card);\n display: flex;\n flex-direction: column;\n transition: width 0.2s ease, transform 0.2s ease;\n position: fixed;\n right: 0;\n top: 57px;\n bottom: 0;\n z-index: 50;\n }\n\n .app-sidebar.collapsed {\n width: 0;\n overflow: hidden;\n border-left: none;\n }\n\n /* AI Toggle button active state in header */\n #sidebar-toggle[aria-expanded=\"false\"] {\n opacity: 0.6;\n }\n\n /* Page Header */\n .page-header h1 {\n font-size: var(--text-2xl);\n margin-bottom: var(--space-1);\n }\n\n /* Docs Layout */\n .docs-layout {\n display: grid;\n grid-template-columns: 200px 1fr;\n gap: var(--space-6);\n min-height: 0;\n }\n\n .docs-nav {\n position: sticky;\n top: 0;\n height: fit-content;\n }\n\n .docs-nav__section {\n margin-bottom: var(--space-4);\n }\n\n .docs-nav__title {\n font-size: var(--text-xs);\n font-weight: var(--font-semibold);\n color: var(--muted-foreground);\n text-transform: uppercase;\n letter-spacing: 0.05em;\n margin-bottom: var(--space-2);\n }\n\n .docs-nav__link {\n display: block;\n padding: var(--space-1) var(--space-2);\n font-size: var(--text-sm);\n color: var(--muted-foreground);\n text-decoration: none;\n border-radius: var(--radius);\n cursor: pointer;\n }\n\n .docs-nav__link:hover {\n color: var(--foreground);\n background: var(--accent);\n }\n\n .docs-nav__link.active {\n color: var(--primary);\n background: var(--primary-light, oklch(0.65 0.18 250 / 0.1));\n }\n\n .docs-content {\n max-width: 700px;\n }\n\n .docs-content h2 {\n font-size: var(--text-xl);\n font-weight: var(--font-semibold);\n margin-bottom: var(--space-4);\n padding-bottom: var(--space-2);\n border-bottom: 1px solid var(--border);\n }\n\n .docs-content h3 {\n font-size: var(--text-base);\n font-weight: var(--font-semibold);\n margin: var(--space-4) 0 var(--space-2);\n }\n\n .docs-content p {\n margin-bottom: var(--space-3);\n line-height: 1.6;\n }\n\n .docs-content ul, .docs-content ol {\n margin: 0 0 var(--space-3) var(--space-4);\n line-height: 1.6;\n }\n\n .docs-content li {\n margin-bottom: var(--space-1);\n }\n\n .docs-content pre {\n background: var(--muted);\n padding: var(--space-3);\n border-radius: var(--radius);\n overflow-x: auto;\n margin-bottom: var(--space-3);\n font-size: var(--text-sm);\n }\n\n .docs-content code {\n font-family: ui-monospace, monospace;\n font-size: 0.9em;\n }\n\n .docs-content a {\n color: var(--primary);\n }\n\n /* Stats */\n .stat {\n text-align: center;\n }\n\n .stat__label {\n font-size: var(--text-sm);\n color: var(--muted-foreground);\n margin-bottom: var(--space-1);\n }\n\n .stat__value {\n font-size: var(--text-2xl);\n font-weight: var(--font-bold);\n }\n\n /* Status Dot */\n .status-dot {\n width: 0.5rem;\n height: 0.5rem;\n border-radius: var(--radius-full);\n background: var(--muted);\n }\n\n .status-dot--success { background: var(--success); }\n .status-dot--warning { background: var(--warning); }\n .status-dot--error { background: var(--destructive); }\n\n /* Responsive */\n @media (max-width: 1024px) {\n .app-main {\n grid-template-columns: 1fr;\n }\n\n .app-sidebar {\n display: none;\n }\n }\n\n @media (max-width: 768px) {\n .app-layout {\n grid-template-columns: 1fr;\n }\n\n .sidebar {\n display: none;\n }\n }\n </style>\n</head>\n<body>\n <div id=\"app\" class=\"app-layout\">\n <!-- Sidebar -->\n <aside class=\"sidebar\">\n <div class=\"sidebar__header\">\n <div class=\"sidebar__logo\">\n <div class=\"sidebar__logo-icon\">\n <svg width=\"18\" height=\"18\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M12 2L2 7l10 5 10-5-10-5z\"></path>\n <path d=\"M2 17l10 5 10-5\"></path>\n <path d=\"M2 12l10 5 10-5\"></path>\n </svg>\n </div>\n <span>DSS</span>\n </div>\n </div>\n\n <nav class=\"sidebar__nav\" aria-label=\"Main navigation\">\n <div class=\"nav-section\">\n <div class=\"nav-section__title\">Overview</div>\n <a class=\"nav-item\" data-page=\"dashboard\" href=\"#dashboard\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <rect x=\"3\" y=\"3\" width=\"7\" height=\"9\" rx=\"1\"></rect>\n <rect x=\"14\" y=\"3\" width=\"7\" height=\"5\" rx=\"1\"></rect>\n <rect x=\"14\" y=\"12\" width=\"7\" height=\"9\" rx=\"1\"></rect>\n <rect x=\"3\" y=\"16\" width=\"7\" height=\"5\" rx=\"1\"></rect>\n </svg>\n Dashboard\n </a>\n <a class=\"nav-item\" data-page=\"projects\" href=\"#projects\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M3 3h18v18H3z\"></path>\n <path d=\"M21 9H3\"></path>\n <path d=\"M9 21V9\"></path>\n </svg>\n Projects\n </a>\n </div>\n\n <div class=\"nav-section\">\n <div class=\"nav-section__title\">Tools</div>\n <a class=\"nav-item\" data-page=\"services\" href=\"#services\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <rect x=\"3\" y=\"3\" width=\"7\" height=\"7\" rx=\"1\"></rect>\n <rect x=\"14\" y=\"3\" width=\"7\" height=\"7\" rx=\"1\"></rect>\n <rect x=\"3\" y=\"14\" width=\"7\" height=\"7\" rx=\"1\"></rect>\n <rect x=\"14\" y=\"14\" width=\"7\" height=\"7\" rx=\"1\"></rect>\n </svg>\n Services\n </a>\n <a class=\"nav-item active\" data-page=\"quick-wins\" href=\"#quick-wins\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <polygon points=\"13 2 3 14 12 14 11 22 21 10 12 10 13 2\"></polygon>\n </svg>\n Quick Wins\n </a>\n <a class=\"nav-item\" data-page=\"chat\" href=\"#chat\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\"></path>\n </svg>\n Chat\n </a>\n </div>\n\n <div class=\"nav-section\">\n <div class=\"nav-section__title\">Design System</div>\n <a class=\"nav-item\" data-page=\"tokens\" href=\"#tokens\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <circle cx=\"12\" cy=\"12\" r=\"10\"></circle>\n <circle cx=\"12\" cy=\"12\" r=\"4\"></circle>\n </svg>\n Tokens\n </a>\n <a class=\"nav-item\" data-page=\"components\" href=\"#components\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\"></rect>\n <path d=\"M3 9h18\"></path>\n <path d=\"M9 21V9\"></path>\n </svg>\n Components\n </a>\n <a class=\"nav-item\" data-page=\"figma\" href=\"#figma\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M5 5.5A3.5 3.5 0 0 1 8.5 2H12v7H8.5A3.5 3.5 0 0 1 5 5.5z\"></path>\n <path d=\"M12 2h3.5a3.5 3.5 0 1 1 0 7H12V2z\"></path>\n <path d=\"M12 12.5a3.5 3.5 0 1 1 7 0 3.5 3.5 0 1 1-7 0z\"></path>\n <path d=\"M5 19.5A3.5 3.5 0 0 1 8.5 16H12v3.5a3.5 3.5 0 1 1-7 0z\"></path>\n <path d=\"M5 12.5A3.5 3.5 0 0 1 8.5 9H12v7H8.5A3.5 3.5 0 0 1 5 12.5z\"></path>\n </svg>\n Figma\n </a>\n <a id=\"storybook-link\" class=\"nav-item\" href=\"https://dss.overbits.luz.uy/storybook/\" target=\"_blank\" tabindex=\"0\" title=\"Open Storybook at https://dss.overbits.luz.uy/storybook/\" style=\"pointer-events: auto; opacity: 1;\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z\"></path>\n <path d=\"M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z\"></path>\n </svg>\n Storybook\n </a>\n </div>\n\n <div class=\"nav-section\">\n <div class=\"nav-section__title\">System</div>\n <a class=\"nav-item\" data-page=\"docs\" href=\"#docs\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M4 19.5A2.5 2.5 0 0 1 6.5 17H20\"></path>\n <path d=\"M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z\"></path>\n </svg>\n Docs\n </a>\n <a class=\"nav-item\" data-page=\"teams\" href=\"#teams\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2\"></path>\n <circle cx=\"9\" cy=\"7\" r=\"4\"></circle>\n <path d=\"M22 21v-2a4 4 0 0 0-3-3.87\"></path>\n <path d=\"M16 3.13a4 4 0 0 1 0 7.75\"></path>\n </svg>\n Teams\n </a>\n <a class=\"nav-item\" data-page=\"audit\" href=\"#audit\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"></path>\n <polyline points=\"14 2 14 8 20 8\"></polyline>\n <line x1=\"16\" y1=\"13\" x2=\"8\" y2=\"13\"></line>\n <line x1=\"16\" y1=\"17\" x2=\"8\" y2=\"17\"></line>\n <polyline points=\"10 9 9 9 8 9\"></polyline>\n </svg>\n Audit Log\n </a>\n <a class=\"nav-item\" data-page=\"plugins\" href=\"#plugins\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M12 2v4m0 12v4M4.93 4.93l2.83 2.83m8.48 8.48l2.83 2.83M2 12h4m12 0h4M4.93 19.07l2.83-2.83m8.48-8.48l2.83-2.83\"></path>\n <circle cx=\"12\" cy=\"12\" r=\"3\"></circle>\n </svg>\n Plugins\n </a>\n <a class=\"nav-item\" data-page=\"settings\" href=\"#settings\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z\"></path>\n <circle cx=\"12\" cy=\"12\" r=\"3\"></circle>\n </svg>\n Settings\n </a>\n </div>\n </nav>\n\n <div class=\"sidebar__help\">\n <details class=\"help-panel\">\n <summary class=\"help-panel__toggle\" tabindex=\"0\">\n <svg width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <circle cx=\"12\" cy=\"12\" r=\"10\"></circle>\n <path d=\"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3\"></path>\n <line x1=\"12\" y1=\"17\" x2=\"12.01\" y2=\"17\"></line>\n </svg>\n Quick Guide\n </summary>\n <div class=\"help-panel__content\">\n <div class=\"help-section\" data-team=\"ui\" style=\"display: none;\">\n <strong>UI Team</strong>\n <ul>\n <li>Extract tokens from Figma</li>\n <li>Sync to CSS variables</li>\n <li>Generate components</li>\n <li>Check token drift</li>\n </ul>\n </div>\n <div class=\"help-section\" data-team=\"ux\">\n <strong>UX Team</strong>\n <ul>\n <li>Add Figma files to project</li>\n <li>Run visual diff checks</li>\n <li>Review token consistency</li>\n <li>Validate components</li>\n </ul>\n </div>\n <div class=\"help-section\" data-team=\"qa\" style=\"display: none;\">\n <strong>QA Team</strong>\n <ul>\n <li>Define ESRE test cases</li>\n <li>Run component validation</li>\n <li>Review visual regressions</li>\n <li>Export audit logs</li>\n </ul>\n </div>\n <div class=\"help-section\" data-team=\"all\">\n <strong>Getting Started</strong>\n <ol>\n <li>Create a project</li>\n <li>Add Figma file key</li>\n <li>Extract &amp; sync tokens</li>\n <li>Use AI chat for help</li>\n </ol>\n </div>\n </div>\n </details>\n </div>\n <div class=\"sidebar__footer\">\n <ds-badge variant=\"outline\" dot=\"\">v0.8.0</ds-badge>\n </div>\n </aside>\n\n <!-- Header -->\n <header class=\"app-header\">\n <div class=\"app-header__project-selector\" id=\"project-selector-container\">\n <div class=\"project-selector\">\n <svg class=\"project-selector__icon\">\n \n \n \n </svg>\n <span class=\"project-selector__label\">Project:</span>\n \n \n \n test\n \n \n \n </div>\n </div>\n <div class=\"app-header__team-selector\">\n <label for=\"team-context-select\" class=\"sr-only\">Select team context</label>\n <select class=\"team-select\" id=\"team-context-select\" aria-label=\"Team context\">\n <option value=\"all\">All Teams</option>\n <option value=\"ui\">UI Team</option>\n <option value=\"ux\">UX Team</option>\n <option value=\"qa\">QA Team</option>\n </select>\n </div>\n <div class=\"app-header__actions\">\n <ds-button variant=\"ghost\" size=\"icon\" title=\"Toggle theme\" id=\"theme-toggle\" tabindex=\"0\" aria-label=\"Toggle dark/light theme\">\n <svg width=\"18\" height=\"18\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n <path d=\"M12 3v1m0 16v1m9-9h-1M4 12H3m15.364 6.364l-.707-.707M6.343 6.343l-.707-.707m12.728 0l-.707.707M6.343 17.657l-.707.707M16 12a4 4 0 1 1-8 0 4 4 0 0 1 8 0z\"></path>\n </svg>\n </ds-button>\n <ds-button variant=\"ghost\" size=\"icon\" title=\"Notifications\" tabindex=\"0\" aria-label=\"View notifications\">\n <svg width=\"18\" height=\"18\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n <path d=\"M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9\"></path>\n <path d=\"M10.3 21a1.94 1.94 0 0 0 3.4 0\"></path>\n </svg>\n </ds-button>\n <ds-button variant=\"ghost\" size=\"icon\" id=\"sidebar-toggle\" title=\"Toggle AI Assistant\" tabindex=\"0\" aria-label=\"Toggle AI Assistant sidebar\" aria-controls=\"ai-sidebar\" aria-expanded=\"true\">\n <svg width=\"18\" height=\"18\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n <path d=\"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\"></path>\n </svg>\n </ds-button>\n <div class=\"ds-avatar\" tabindex=\"0\" role=\"button\" aria-label=\"User profile menu\">\n <span>U</span>\n </div>\n </div>\n </header>\n\n <!-- Main Content Area -->\n <main class=\"app-main\">\n <div id=\"page-content\" class=\"app-content\">\n <div class=\"page-header\">\n <h1>\u26a1 Quick Wins</h1>\n <p class=\"text-muted\">Actionable improvements to empower your team</p>\n </div>\n\n <div class=\"card p-4 mb-6\">\n <div class=\"flex gap-4\">\n <input class=\"input flex-1\" value=\".\" placeholder=\"Project path (default: .)\" id=\"projectPath\" type=\"text\">\n <button data-action=\"loadQuickWins\" class=\"btn btn-primary\">\n \ud83d\udd0d Analyze Project\n </button>\n </div>\n </div>\n\n <div id=\"quickWinsContainer\">\n <div class=\"text-center text-muted py-8\">\n <p>Click \"Analyze Project\" to discover quick wins</p>\n </div>\n </div>\n </div>\n\n <!-- Right Sidebar - AI Chat -->\n <aside class=\"app-sidebar\" id=\"ai-sidebar\">\n <ds-ai-chat></ds-ai-chat>\n </aside>\n </main>\n </div>\n\n <!-- Load Components -->\n <script type=\"module\">\n // Import theme manager first (loads saved theme from cookie)\n import themeManager from '/admin-ui/js/core/theme.js';\n\n // Import all components\n import '/admin-ui/js/components/ds-button.js';\n import '/admin-ui/js/components/ds-card.js';\n import '/admin-ui/js/components/ds-input.js';\n import '/admin-ui/js/components/ds-badge.js';\n import '/admin-ui/js/core/ai.js';\n\n // Import browser logger for debugging\n import '/admin-ui/js/core/browser-logger.js';\n\n // Import and initialize app\n import app from '/admin-ui/js/core/app.js';\n\n // Initialize when DOM is ready\n document.addEventListener('DOMContentLoaded', () => {\n app.init();\n\n // Setup theme toggle button\n const themeToggle = document.getElementById('theme-toggle');\n if (themeToggle) {\n themeToggle.addEventListener('click', () => {\n themeManager.toggle();\n });\n }\n\n // Setup team context selector\n const teamSelect = document.getElementById('team-context-select');\n const updateHelpSections = (team) => {\n document.querySelectorAll('.help-section').forEach(section => {\n const sectionTeam = section.dataset.team;\n section.style.display = (team === 'all' || sectionTeam === team || sectionTeam === 'all') ? '' : 'none';\n });\n };\n\n if (teamSelect) {\n const savedTeam = localStorage.getItem('dss_team_context') || 'all';\n teamSelect.value = savedTeam;\n updateHelpSections(savedTeam);\n\n teamSelect.addEventListener('change', (e) => {\n const team = e.target.value;\n localStorage.setItem('dss_team_context', team);\n updateHelpSections(team);\n window.dispatchEvent(new CustomEvent('team-context-changed', {\n detail: { team }\n }));\n });\n }\n\n // Setup AI sidebar toggle\n const sidebarToggle = document.getElementById('sidebar-toggle');\n const aiSidebar = document.getElementById('ai-sidebar');\n if (sidebarToggle && aiSidebar) {\n // Restore saved state\n const sidebarCollapsed = localStorage.getItem('dss_ai_sidebar_collapsed') === 'true';\n if (sidebarCollapsed) {\n aiSidebar.classList.add('collapsed');\n sidebarToggle.setAttribute('aria-expanded', 'false');\n }\n\n sidebarToggle.addEventListener('click', () => {\n const isCollapsed = aiSidebar.classList.toggle('collapsed');\n sidebarToggle.setAttribute('aria-expanded', !isCollapsed);\n localStorage.setItem('dss_ai_sidebar_collapsed', isCollapsed);\n });\n }\n });\n </script>\n\n\n<div id=\"notifications\" class=\"notification-container\"></div></body></html>",
"viewport": {
"width": 1403,
"height": 958,
"devicePixelRatio": 2
},
"title": "Design System Server"
}
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#quick-wins",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059948838,
"relativeTime": 161567,
"level": "log",
"category": "console",
"message": "%c\ud83d\udcad [UI] Rendering services page color: #2196F3; font-weight: bold [object Object]",
"data": {
"args": [
"%c\ud83d\udcad [UI] Rendering services page",
"color: #2196F3; font-weight: bold",
{
"toolCount": 8,
"teamContext": "ux",
"categories": [
"Projects",
"Figma",
"Ingestion",
"Analysis",
"Storybook",
"Activity"
]
}
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059948844,
"relativeTime": 161573,
"level": "log",
"category": "console",
"message": "%c\ud83d\udcad [UI] Rendering services page color: #2196F3; font-weight: bold [object Object]",
"data": {
"args": [
"%c\ud83d\udcad [UI] Rendering services page",
"color: #2196F3; font-weight: bold",
{
"toolCount": 8,
"teamContext": "ux",
"categories": [
"Projects",
"Figma",
"Ingestion",
"Analysis",
"Storybook",
"Activity"
]
}
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059948850,
"relativeTime": 161579,
"level": "log",
"category": "console",
"message": "%c\ud83d\udcad [UI] Rendering services page color: #2196F3; font-weight: bold [object Object]",
"data": {
"args": [
"%c\ud83d\udcad [UI] Rendering services page",
"color: #2196F3; font-weight: bold",
{
"toolCount": 8,
"teamContext": "ux",
"categories": [
"Projects",
"Figma",
"Ingestion",
"Analysis",
"Storybook",
"Activity"
]
}
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059948853,
"relativeTime": 161582,
"level": "log",
"category": "console",
"message": "%c\ud83d\udcad [UI] Rendering services page color: #2196F3; font-weight: bold [object Object]",
"data": {
"args": [
"%c\ud83d\udcad [UI] Rendering services page",
"color: #2196F3; font-weight: bold",
{
"toolCount": 8,
"teamContext": "ux",
"categories": [
"Projects",
"Figma",
"Ingestion",
"Analysis",
"Storybook",
"Activity"
]
}
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059949272,
"relativeTime": 162001,
"level": "info",
"category": "snapshot",
"message": "Navigation detected",
"data": {
"trigger": "navigation",
"from": "https://dss.overbits.luz.uy/admin-ui/index.html#quick-wins",
"to": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"snapshot": {
"timestamp": 1765059949272,
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"html": "<html lang=\"en\" class=\"light\"><head>\n <meta charset=\"UTF-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n <title>Design System Server</title>\n <link rel=\"icon\" type=\"image/svg+xml\" href=\"/admin-ui/favicon.svg\">\n\n <!-- Design System Styles -->\n <link rel=\"stylesheet\" href=\"/admin-ui/css/tokens.css\">\n <link rel=\"stylesheet\" href=\"/admin-ui/css/base.css\">\n <link rel=\"stylesheet\" href=\"/admin-ui/css/components.css\">\n\n <!-- Markdown & Syntax Highlighting -->\n <script src=\"https://cdn.jsdelivr.net/npm/marked/marked.min.js\"></script>\n <script src=\"https://cdn.jsdelivr.net/npm/dompurify@3.0.6/dist/purify.min.js\"></script>\n <script src=\"https://cdn.jsdelivr.net/npm/highlight.js@11.9.0/lib/highlight.min.js\"></script>\n\n <style>\n /* App Layout */\n .app-layout {\n display: grid;\n grid-template-columns: 240px 1fr;\n grid-template-rows: auto 1fr;\n min-height: 100vh;\n }\n\n /* Sidebar */\n .sidebar {\n grid-row: 1 / -1;\n background: var(--card);\n border-right: 1px solid var(--border);\n display: flex;\n flex-direction: column;\n }\n\n .sidebar__header {\n padding: var(--space-4) var(--space-5);\n border-bottom: 1px solid var(--border);\n }\n\n .sidebar__logo {\n display: flex;\n align-items: center;\n gap: var(--space-3);\n font-weight: var(--font-semibold);\n font-size: var(--text-lg);\n color: var(--foreground);\n }\n\n .sidebar__logo-icon {\n width: 2rem;\n height: 2rem;\n background: var(--primary);\n border-radius: var(--radius);\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--primary-foreground);\n }\n\n .sidebar__nav {\n flex: 1;\n padding: var(--space-4);\n }\n\n .nav-section {\n margin-bottom: var(--space-6);\n }\n\n .nav-section__title {\n font-size: var(--text-xs);\n font-weight: var(--font-medium);\n color: var(--muted-foreground);\n text-transform: uppercase;\n letter-spacing: 0.05em;\n margin-bottom: var(--space-2);\n padding: 0 var(--space-3);\n }\n\n .nav-item {\n display: flex;\n align-items: center;\n gap: var(--space-3);\n padding: var(--space-2) var(--space-3);\n border-radius: var(--radius);\n color: var(--muted-foreground);\n text-decoration: none;\n font-size: var(--text-sm);\n transition: all var(--duration-fast) var(--ease-default);\n cursor: pointer;\n }\n\n .nav-item:hover {\n background: var(--accent);\n color: var(--accent-foreground);\n text-decoration: none;\n }\n\n .nav-item.active {\n background: var(--primary);\n color: var(--primary-foreground);\n }\n\n .nav-item__icon {\n width: 1.25rem;\n height: 1.25rem;\n opacity: 0.7;\n }\n\n .nav-item.active .nav-item__icon {\n opacity: 1;\n }\n\n .sidebar__help {\n padding: var(--space-3);\n border-top: 1px solid var(--border);\n }\n\n .help-panel {\n font-size: var(--text-xs);\n }\n\n .help-panel__toggle {\n display: flex;\n align-items: center;\n gap: var(--space-2);\n cursor: pointer;\n color: var(--muted-foreground);\n padding: var(--space-2);\n border-radius: var(--radius);\n list-style: none;\n }\n\n .help-panel__toggle:hover {\n background: var(--accent);\n color: var(--accent-foreground);\n }\n\n .help-panel__toggle::-webkit-details-marker {\n display: none;\n }\n\n .help-panel__content {\n padding: var(--space-2) var(--space-3);\n }\n\n .help-section {\n margin-bottom: var(--space-3);\n }\n\n .help-section strong {\n color: var(--foreground);\n font-size: var(--text-xs);\n }\n\n .help-section ul, .help-section ol {\n margin: var(--space-1) 0 0 var(--space-4);\n padding: 0;\n color: var(--muted-foreground);\n }\n\n .help-section li {\n margin-bottom: 2px;\n }\n\n .sidebar__footer {\n padding: var(--space-4);\n border-top: 1px solid var(--border);\n }\n\n /* Header */\n .app-header {\n display: flex;\n align-items: center;\n gap: var(--space-4);\n padding: var(--space-4) var(--space-6);\n background: var(--card);\n border-bottom: 1px solid var(--border);\n }\n\n .app-header__project-selector {\n display: flex;\n align-items: center;\n gap: var(--space-2);\n }\n\n .project-selector {\n display: flex;\n align-items: center;\n gap: var(--space-2);\n padding: var(--space-2) var(--space-3);\n background: var(--muted);\n border: 1px solid var(--border);\n border-radius: var(--radius);\n font-size: var(--text-sm);\n width: 200px;\n }\n\n .project-selector__label {\n font-weight: var(--font-medium);\n color: var(--muted-foreground);\n font-size: var(--text-xs);\n text-transform: uppercase;\n letter-spacing: 0.05em;\n }\n\n .project-selector__select {\n flex: 1;\n background: transparent;\n border: none;\n color: var(--foreground);\n font-size: var(--text-sm);\n font-weight: var(--font-medium);\n outline: none;\n cursor: pointer;\n padding: var(--space-1) 0;\n }\n\n .project-selector__select option {\n background: var(--popover);\n color: var(--popover-foreground);\n }\n\n .project-selector__icon {\n width: 16px;\n height: 16px;\n color: var(--primary);\n }\n\n .app-header__team-selector {\n display: flex;\n align-items: center;\n }\n\n .team-select {\n padding: var(--space-2) var(--space-3);\n background: var(--muted);\n border: 1px solid var(--border);\n border-radius: var(--radius);\n color: var(--foreground);\n font-size: var(--text-sm);\n cursor: pointer;\n width: 200px;\n }\n\n .team-select:focus {\n outline: none;\n border-color: var(--ring);\n }\n\n .app-header__actions {\n display: flex;\n align-items: center;\n gap: var(--space-3);\n margin-left: auto;\n }\n\n /* Main Content */\n .app-main {\n display: grid;\n grid-template-columns: 1fr;\n overflow: hidden;\n position: relative;\n }\n\n .app-content {\n padding: var(--space-6);\n padding-right: 340px;\n overflow-y: auto;\n }\n\n .app-sidebar {\n width: 320px;\n height: calc(100vh - 57px);\n border-left: 1px solid var(--border);\n background: var(--card);\n display: flex;\n flex-direction: column;\n transition: width 0.2s ease, transform 0.2s ease;\n position: fixed;\n right: 0;\n top: 57px;\n bottom: 0;\n z-index: 50;\n }\n\n .app-sidebar.collapsed {\n width: 0;\n overflow: hidden;\n border-left: none;\n }\n\n /* AI Toggle button active state in header */\n #sidebar-toggle[aria-expanded=\"false\"] {\n opacity: 0.6;\n }\n\n /* Page Header */\n .page-header h1 {\n font-size: var(--text-2xl);\n margin-bottom: var(--space-1);\n }\n\n /* Docs Layout */\n .docs-layout {\n display: grid;\n grid-template-columns: 200px 1fr;\n gap: var(--space-6);\n min-height: 0;\n }\n\n .docs-nav {\n position: sticky;\n top: 0;\n height: fit-content;\n }\n\n .docs-nav__section {\n margin-bottom: var(--space-4);\n }\n\n .docs-nav__title {\n font-size: var(--text-xs);\n font-weight: var(--font-semibold);\n color: var(--muted-foreground);\n text-transform: uppercase;\n letter-spacing: 0.05em;\n margin-bottom: var(--space-2);\n }\n\n .docs-nav__link {\n display: block;\n padding: var(--space-1) var(--space-2);\n font-size: var(--text-sm);\n color: var(--muted-foreground);\n text-decoration: none;\n border-radius: var(--radius);\n cursor: pointer;\n }\n\n .docs-nav__link:hover {\n color: var(--foreground);\n background: var(--accent);\n }\n\n .docs-nav__link.active {\n color: var(--primary);\n background: var(--primary-light, oklch(0.65 0.18 250 / 0.1));\n }\n\n .docs-content {\n max-width: 700px;\n }\n\n .docs-content h2 {\n font-size: var(--text-xl);\n font-weight: var(--font-semibold);\n margin-bottom: var(--space-4);\n padding-bottom: var(--space-2);\n border-bottom: 1px solid var(--border);\n }\n\n .docs-content h3 {\n font-size: var(--text-base);\n font-weight: var(--font-semibold);\n margin: var(--space-4) 0 var(--space-2);\n }\n\n .docs-content p {\n margin-bottom: var(--space-3);\n line-height: 1.6;\n }\n\n .docs-content ul, .docs-content ol {\n margin: 0 0 var(--space-3) var(--space-4);\n line-height: 1.6;\n }\n\n .docs-content li {\n margin-bottom: var(--space-1);\n }\n\n .docs-content pre {\n background: var(--muted);\n padding: var(--space-3);\n border-radius: var(--radius);\n overflow-x: auto;\n margin-bottom: var(--space-3);\n font-size: var(--text-sm);\n }\n\n .docs-content code {\n font-family: ui-monospace, monospace;\n font-size: 0.9em;\n }\n\n .docs-content a {\n color: var(--primary);\n }\n\n /* Stats */\n .stat {\n text-align: center;\n }\n\n .stat__label {\n font-size: var(--text-sm);\n color: var(--muted-foreground);\n margin-bottom: var(--space-1);\n }\n\n .stat__value {\n font-size: var(--text-2xl);\n font-weight: var(--font-bold);\n }\n\n /* Status Dot */\n .status-dot {\n width: 0.5rem;\n height: 0.5rem;\n border-radius: var(--radius-full);\n background: var(--muted);\n }\n\n .status-dot--success { background: var(--success); }\n .status-dot--warning { background: var(--warning); }\n .status-dot--error { background: var(--destructive); }\n\n /* Responsive */\n @media (max-width: 1024px) {\n .app-main {\n grid-template-columns: 1fr;\n }\n\n .app-sidebar {\n display: none;\n }\n }\n\n @media (max-width: 768px) {\n .app-layout {\n grid-template-columns: 1fr;\n }\n\n .sidebar {\n display: none;\n }\n }\n </style>\n</head>\n<body>\n <div id=\"app\" class=\"app-layout\">\n <!-- Sidebar -->\n <aside class=\"sidebar\">\n <div class=\"sidebar__header\">\n <div class=\"sidebar__logo\">\n <div class=\"sidebar__logo-icon\">\n <svg width=\"18\" height=\"18\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M12 2L2 7l10 5 10-5-10-5z\"></path>\n <path d=\"M2 17l10 5 10-5\"></path>\n <path d=\"M2 12l10 5 10-5\"></path>\n </svg>\n </div>\n <span>DSS</span>\n </div>\n </div>\n\n <nav class=\"sidebar__nav\" aria-label=\"Main navigation\">\n <div class=\"nav-section\">\n <div class=\"nav-section__title\">Overview</div>\n <a class=\"nav-item\" data-page=\"dashboard\" href=\"#dashboard\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <rect x=\"3\" y=\"3\" width=\"7\" height=\"9\" rx=\"1\"></rect>\n <rect x=\"14\" y=\"3\" width=\"7\" height=\"5\" rx=\"1\"></rect>\n <rect x=\"14\" y=\"12\" width=\"7\" height=\"9\" rx=\"1\"></rect>\n <rect x=\"3\" y=\"16\" width=\"7\" height=\"5\" rx=\"1\"></rect>\n </svg>\n Dashboard\n </a>\n <a class=\"nav-item\" data-page=\"projects\" href=\"#projects\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M3 3h18v18H3z\"></path>\n <path d=\"M21 9H3\"></path>\n <path d=\"M9 21V9\"></path>\n </svg>\n Projects\n </a>\n </div>\n\n <div class=\"nav-section\">\n <div class=\"nav-section__title\">Tools</div>\n <a class=\"nav-item active\" data-page=\"services\" href=\"#services\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <rect x=\"3\" y=\"3\" width=\"7\" height=\"7\" rx=\"1\"></rect>\n <rect x=\"14\" y=\"3\" width=\"7\" height=\"7\" rx=\"1\"></rect>\n <rect x=\"3\" y=\"14\" width=\"7\" height=\"7\" rx=\"1\"></rect>\n <rect x=\"14\" y=\"14\" width=\"7\" height=\"7\" rx=\"1\"></rect>\n </svg>\n Services\n </a>\n <a class=\"nav-item\" data-page=\"quick-wins\" href=\"#quick-wins\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <polygon points=\"13 2 3 14 12 14 11 22 21 10 12 10 13 2\"></polygon>\n </svg>\n Quick Wins\n </a>\n <a class=\"nav-item\" data-page=\"chat\" href=\"#chat\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\"></path>\n </svg>\n Chat\n </a>\n </div>\n\n <div class=\"nav-section\">\n <div class=\"nav-section__title\">Design System</div>\n <a class=\"nav-item\" data-page=\"tokens\" href=\"#tokens\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <circle cx=\"12\" cy=\"12\" r=\"10\"></circle>\n <circle cx=\"12\" cy=\"12\" r=\"4\"></circle>\n </svg>\n Tokens\n </a>\n <a class=\"nav-item\" data-page=\"components\" href=\"#components\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\"></rect>\n <path d=\"M3 9h18\"></path>\n <path d=\"M9 21V9\"></path>\n </svg>\n Components\n </a>\n <a class=\"nav-item\" data-page=\"figma\" href=\"#figma\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M5 5.5A3.5 3.5 0 0 1 8.5 2H12v7H8.5A3.5 3.5 0 0 1 5 5.5z\"></path>\n <path d=\"M12 2h3.5a3.5 3.5 0 1 1 0 7H12V2z\"></path>\n <path d=\"M12 12.5a3.5 3.5 0 1 1 7 0 3.5 3.5 0 1 1-7 0z\"></path>\n <path d=\"M5 19.5A3.5 3.5 0 0 1 8.5 16H12v3.5a3.5 3.5 0 1 1-7 0z\"></path>\n <path d=\"M5 12.5A3.5 3.5 0 0 1 8.5 9H12v7H8.5A3.5 3.5 0 0 1 5 12.5z\"></path>\n </svg>\n Figma\n </a>\n <a id=\"storybook-link\" class=\"nav-item\" href=\"https://dss.overbits.luz.uy/storybook/\" target=\"_blank\" tabindex=\"0\" title=\"Open Storybook at https://dss.overbits.luz.uy/storybook/\" style=\"pointer-events: auto; opacity: 1;\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z\"></path>\n <path d=\"M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z\"></path>\n </svg>\n Storybook\n </a>\n </div>\n\n <div class=\"nav-section\">\n <div class=\"nav-section__title\">System</div>\n <a class=\"nav-item\" data-page=\"docs\" href=\"#docs\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M4 19.5A2.5 2.5 0 0 1 6.5 17H20\"></path>\n <path d=\"M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z\"></path>\n </svg>\n Docs\n </a>\n <a class=\"nav-item\" data-page=\"teams\" href=\"#teams\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2\"></path>\n <circle cx=\"9\" cy=\"7\" r=\"4\"></circle>\n <path d=\"M22 21v-2a4 4 0 0 0-3-3.87\"></path>\n <path d=\"M16 3.13a4 4 0 0 1 0 7.75\"></path>\n </svg>\n Teams\n </a>\n <a class=\"nav-item\" data-page=\"audit\" href=\"#audit\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"></path>\n <polyline points=\"14 2 14 8 20 8\"></polyline>\n <line x1=\"16\" y1=\"13\" x2=\"8\" y2=\"13\"></line>\n <line x1=\"16\" y1=\"17\" x2=\"8\" y2=\"17\"></line>\n <polyline points=\"10 9 9 9 8 9\"></polyline>\n </svg>\n Audit Log\n </a>\n <a class=\"nav-item\" data-page=\"plugins\" href=\"#plugins\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M12 2v4m0 12v4M4.93 4.93l2.83 2.83m8.48 8.48l2.83 2.83M2 12h4m12 0h4M4.93 19.07l2.83-2.83m8.48-8.48l2.83-2.83\"></path>\n <circle cx=\"12\" cy=\"12\" r=\"3\"></circle>\n </svg>\n Plugins\n </a>\n <a class=\"nav-item\" data-page=\"settings\" href=\"#settings\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z\"></path>\n <circle cx=\"12\" cy=\"12\" r=\"3\"></circle>\n </svg>\n Settings\n </a>\n </div>\n </nav>\n\n <div class=\"sidebar__help\">\n <details class=\"help-panel\">\n <summary class=\"help-panel__toggle\" tabindex=\"0\">\n <svg width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <circle cx=\"12\" cy=\"12\" r=\"10\"></circle>\n <path d=\"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3\"></path>\n <line x1=\"12\" y1=\"17\" x2=\"12.01\" y2=\"17\"></line>\n </svg>\n Quick Guide\n </summary>\n <div class=\"help-panel__content\">\n <div class=\"help-section\" data-team=\"ui\" style=\"display: none;\">\n <strong>UI Team</strong>\n <ul>\n <li>Extract tokens from Figma</li>\n <li>Sync to CSS variables</li>\n <li>Generate components</li>\n <li>Check token drift</li>\n </ul>\n </div>\n <div class=\"help-section\" data-team=\"ux\">\n <strong>UX Team</strong>\n <ul>\n <li>Add Figma files to project</li>\n <li>Run visual diff checks</li>\n <li>Review token consistency</li>\n <li>Validate components</li>\n </ul>\n </div>\n <div class=\"help-section\" data-team=\"qa\" style=\"display: none;\">\n <strong>QA Team</strong>\n <ul>\n <li>Define ESRE test cases</li>\n <li>Run component validation</li>\n <li>Review visual regressions</li>\n <li>Export audit logs</li>\n </ul>\n </div>\n <div class=\"help-section\" data-team=\"all\">\n <strong>Getting Started</strong>\n <ol>\n <li>Create a project</li>\n <li>Add Figma file key</li>\n <li>Extract &amp; sync tokens</li>\n <li>Use AI chat for help</li>\n </ol>\n </div>\n </div>\n </details>\n </div>\n <div class=\"sidebar__footer\">\n <ds-badge variant=\"outline\" dot=\"\">v0.8.0</ds-badge>\n </div>\n </aside>\n\n <!-- Header -->\n <header class=\"app-header\">\n <div class=\"app-header__project-selector\" id=\"project-selector-container\">\n <div class=\"project-selector\">\n <svg class=\"project-selector__icon\">\n \n \n \n </svg>\n <span class=\"project-selector__label\">Project:</span>\n \n \n \n test\n \n \n \n </div>\n </div>\n <div class=\"app-header__team-selector\">\n <label for=\"team-context-select\" class=\"sr-only\">Select team context</label>\n <select class=\"team-select\" id=\"team-context-select\" aria-label=\"Team context\">\n <option value=\"all\">All Teams</option>\n <option value=\"ui\">UI Team</option>\n <option value=\"ux\">UX Team</option>\n <option value=\"qa\">QA Team</option>\n </select>\n </div>\n <div class=\"app-header__actions\">\n <ds-button variant=\"ghost\" size=\"icon\" title=\"Toggle theme\" id=\"theme-toggle\" tabindex=\"0\" aria-label=\"Toggle dark/light theme\">\n <svg width=\"18\" height=\"18\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n <path d=\"M12 3v1m0 16v1m9-9h-1M4 12H3m15.364 6.364l-.707-.707M6.343 6.343l-.707-.707m12.728 0l-.707.707M6.343 17.657l-.707.707M16 12a4 4 0 1 1-8 0 4 4 0 0 1 8 0z\"></path>\n </svg>\n </ds-button>\n <ds-button variant=\"ghost\" size=\"icon\" title=\"Notifications\" tabindex=\"0\" aria-label=\"View notifications\">\n <svg width=\"18\" height=\"18\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n <path d=\"M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9\"></path>\n <path d=\"M10.3 21a1.94 1.94 0 0 0 3.4 0\"></path>\n </svg>\n </ds-button>\n <ds-button variant=\"ghost\" size=\"icon\" id=\"sidebar-toggle\" title=\"Toggle AI Assistant\" tabindex=\"0\" aria-label=\"Toggle AI Assistant sidebar\" aria-controls=\"ai-sidebar\" aria-expanded=\"true\">\n <svg width=\"18\" height=\"18\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n <path d=\"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\"></path>\n </svg>\n </ds-button>\n <div class=\"ds-avatar\" tabindex=\"0\" role=\"button\" aria-label=\"User profile menu\">\n <span>U</span>\n </div>\n </div>\n </header>\n\n <!-- Main Content Area -->\n <main class=\"app-main\">\n <div id=\"page-content\" class=\"app-content\">\n <div class=\"page-header\">\n <div class=\"flex items-center justify-between\">\n <div>\n <h1>Services</h1>\n <p class=\"text-muted\">8 tools available</p>\n </div>\n <input style=\"width: 200px;\" class=\"input\" placeholder=\"Search...\" id=\"toolSearch\" type=\"text\">\n </div>\n </div>\n\n <div class=\"tools-container\" id=\"toolsContainer\">\n \n <div data-category=\"Figma\" class=\"tools-category\">\n <div class=\"tools-category__header\">\n <span class=\"tools-category__icon\"><svg height=\"18\" width=\"18\"></svg></span>\n <span class=\"tools-category__name\">Figma</span>\n <span class=\"tools-category__count\">1</span>\n </div>\n <div class=\"tools-category__list\">\n \n <div data-action=\"executeTool\" data-category=\"Figma\" data-tool=\"extract_tokens\" class=\"tool-item\">\n <span class=\"tool-item__icon\">\ud83c\udfa8</span>\n <div class=\"tool-item__info\">\n <div class=\"tool-item__name\">extract tokens</div>\n <div class=\"tool-item__desc\">Extract design tokens from Figma file</div>\n </div>\n <span class=\"tool-item__params\">2p</span>\n <svg height=\"16\" width=\"16\" class=\"tool-item__action\"></svg>\n </div>\n \n </div>\n </div>\n \n <div data-category=\"Ingestion\" class=\"tools-category\">\n <div class=\"tools-category__header\">\n <span class=\"tools-category__icon\"><svg height=\"18\" width=\"18\"></svg></span>\n <span class=\"tools-category__name\">Ingestion</span>\n <span class=\"tools-category__count\">2</span>\n </div>\n <div class=\"tools-category__list\">\n \n <div data-action=\"executeTool\" data-category=\"Ingestion\" data-tool=\"export_tokens\" class=\"tool-item\">\n <span class=\"tool-item__icon\">\ud83d\udce4</span>\n <div class=\"tool-item__info\">\n <div class=\"tool-item__name\">export tokens</div>\n <div class=\"tool-item__desc\">Export tokens to specified format</div>\n </div>\n <span class=\"tool-item__params\">2p</span>\n <svg height=\"16\" width=\"16\" class=\"tool-item__action\"></svg>\n </div>\n \n <div data-action=\"executeTool\" data-category=\"Ingestion\" data-tool=\"validate_tokens\" class=\"tool-item\">\n <span class=\"tool-item__icon\">\u2713</span>\n <div class=\"tool-item__info\">\n <div class=\"tool-item__name\">validate tokens</div>\n <div class=\"tool-item__desc\">Validate token structure and values</div>\n </div>\n <span class=\"tool-item__params\">1p</span>\n <svg height=\"16\" width=\"16\" class=\"tool-item__action\"></svg>\n </div>\n \n </div>\n </div>\n \n <div data-category=\"Analysis\" class=\"tools-category\">\n <div class=\"tools-category__header\">\n <span class=\"tools-category__icon\"><svg height=\"18\" width=\"18\"></svg></span>\n <span class=\"tools-category__name\">Analysis</span>\n <span class=\"tools-category__count\">4</span>\n </div>\n <div class=\"tools-category__list\">\n \n <div data-action=\"executeTool\" data-category=\"Analysis\" data-tool=\"discover_project\" class=\"tool-item\">\n <span class=\"tool-item__icon\">\ud83d\udd0e</span>\n <div class=\"tool-item__info\">\n <div class=\"tool-item__name\">discover project</div>\n <div class=\"tool-item__desc\">Discover project structure and frameworks</div>\n </div>\n <span class=\"tool-item__params\">1p</span>\n <svg height=\"16\" width=\"16\" class=\"tool-item__action\"></svg>\n </div>\n \n <div data-action=\"executeTool\" data-category=\"Analysis\" data-tool=\"find_style_patterns\" class=\"tool-item\">\n <span class=\"tool-item__icon\">\ud83d\udcca</span>\n <div class=\"tool-item__info\">\n <div class=\"tool-item__name\">find style patterns</div>\n <div class=\"tool-item__desc\">Identify common style patterns</div>\n </div>\n <span class=\"tool-item__params\">1p</span>\n <svg height=\"16\" width=\"16\" class=\"tool-item__action\"></svg>\n </div>\n \n <div data-action=\"executeTool\" data-category=\"Analysis\" data-tool=\"analyze_style_values\" class=\"tool-item\">\n <span class=\"tool-item__icon\">\ud83d\udcc8</span>\n <div class=\"tool-item__info\">\n <div class=\"tool-item__name\">analyze style values</div>\n <div class=\"tool-item__desc\">Analyze style property values</div>\n </div>\n <span class=\"tool-item__params\">2p</span>\n <svg height=\"16\" width=\"16\" class=\"tool-item__action\"></svg>\n </div>\n \n <div data-action=\"executeTool\" data-category=\"Analysis\" data-tool=\"check_naming_consistency\" class=\"tool-item\">\n <span class=\"tool-item__icon\">\ud83c\udff7\ufe0f</span>\n <div class=\"tool-item__info\">\n <div class=\"tool-item__name\">check naming consistency</div>\n <div class=\"tool-item__desc\">Check component naming consistency</div>\n </div>\n <span class=\"tool-item__params\">1p</span>\n <svg height=\"16\" width=\"16\" class=\"tool-item__action\"></svg>\n </div>\n \n </div>\n </div>\n \n <div data-category=\"Activity\" class=\"tools-category\">\n <div class=\"tools-category__header\">\n <span class=\"tools-category__icon\"><svg height=\"18\" width=\"18\"></svg></span>\n <span class=\"tools-category__name\">Activity</span>\n <span class=\"tools-category__count\">1</span>\n </div>\n <div class=\"tools-category__list\">\n \n <div data-action=\"executeTool\" data-category=\"Activity\" data-tool=\"get_sync_history\" class=\"tool-item\">\n <span class=\"tool-item__icon\">\ud83d\udcdc</span>\n <div class=\"tool-item__info\">\n <div class=\"tool-item__name\">get sync history</div>\n <div class=\"tool-item__desc\">Get token sync history</div>\n </div>\n <span class=\"tool-item__params\">1p</span>\n <svg height=\"16\" width=\"16\" class=\"tool-item__action\"></svg>\n </div>\n \n </div>\n </div>\n \n </div>\n\n \n </div>\n\n <!-- Right Sidebar - AI Chat -->\n <aside class=\"app-sidebar\" id=\"ai-sidebar\">\n <ds-ai-chat></ds-ai-chat>\n </aside>\n </main>\n </div>\n\n <!-- Load Components -->\n <script type=\"module\">\n // Import theme manager first (loads saved theme from cookie)\n import themeManager from '/admin-ui/js/core/theme.js';\n\n // Import all components\n import '/admin-ui/js/components/ds-button.js';\n import '/admin-ui/js/components/ds-card.js';\n import '/admin-ui/js/components/ds-input.js';\n import '/admin-ui/js/components/ds-badge.js';\n import '/admin-ui/js/core/ai.js';\n\n // Import browser logger for debugging\n import '/admin-ui/js/core/browser-logger.js';\n\n // Import and initialize app\n import app from '/admin-ui/js/core/app.js';\n\n // Initialize when DOM is ready\n document.addEventListener('DOMContentLoaded', () => {\n app.init();\n\n // Setup theme toggle button\n const themeToggle = document.getElementById('theme-toggle');\n if (themeToggle) {\n themeToggle.addEventListener('click', () => {\n themeManager.toggle();\n });\n }\n\n // Setup team context selector\n const teamSelect = document.getElementById('team-context-select');\n const updateHelpSections = (team) => {\n document.querySelectorAll('.help-section').forEach(section => {\n const sectionTeam = section.dataset.team;\n section.style.display = (team === 'all' || sectionTeam === team || sectionTeam === 'all') ? '' : 'none';\n });\n };\n\n if (teamSelect) {\n const savedTeam = localStorage.getItem('dss_team_context') || 'all';\n teamSelect.value = savedTeam;\n updateHelpSections(savedTeam);\n\n teamSelect.addEventListener('change', (e) => {\n const team = e.target.value;\n localStorage.setItem('dss_team_context', team);\n updateHelpSections(team);\n window.dispatchEvent(new CustomEvent('team-context-changed', {\n detail: { team }\n }));\n });\n }\n\n // Setup AI sidebar toggle\n const sidebarToggle = document.getElementById('sidebar-toggle');\n const aiSidebar = document.getElementById('ai-sidebar');\n if (sidebarToggle && aiSidebar) {\n // Restore saved state\n const sidebarCollapsed = localStorage.getItem('dss_ai_sidebar_collapsed') === 'true';\n if (sidebarCollapsed) {\n aiSidebar.classList.add('collapsed');\n sidebarToggle.setAttribute('aria-expanded', 'false');\n }\n\n sidebarToggle.addEventListener('click', () => {\n const isCollapsed = aiSidebar.classList.toggle('collapsed');\n sidebarToggle.setAttribute('aria-expanded', !isCollapsed);\n localStorage.setItem('dss_ai_sidebar_collapsed', isCollapsed);\n });\n }\n });\n </script>\n\n\n<div id=\"notifications\" class=\"notification-container\"></div></body></html>",
"viewport": {
"width": 1403,
"height": 958,
"devicePixelRatio": 2
},
"title": "Design System Server"
}
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059950250,
"relativeTime": 162979,
"level": "log",
"category": "console",
"message": "%c\ud83d\udcad [UI] Rendering quick wins page color: #2196F3; font-weight: bold",
"data": {
"args": [
"%c\ud83d\udcad [UI] Rendering quick wins page",
"color: #2196F3; font-weight: bold"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#quick-wins",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059950255,
"relativeTime": 162984,
"level": "log",
"category": "console",
"message": "%c\ud83d\udcad [UI] Rendering quick wins page color: #2196F3; font-weight: bold",
"data": {
"args": [
"%c\ud83d\udcad [UI] Rendering quick wins page",
"color: #2196F3; font-weight: bold"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#quick-wins",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059950261,
"relativeTime": 162990,
"level": "log",
"category": "console",
"message": "%c\ud83d\udcad [UI] Rendering quick wins page color: #2196F3; font-weight: bold",
"data": {
"args": [
"%c\ud83d\udcad [UI] Rendering quick wins page",
"color: #2196F3; font-weight: bold"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#quick-wins",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059950262,
"relativeTime": 162991,
"level": "log",
"category": "console",
"message": "%c\ud83d\udcad [UI] Rendering quick wins page color: #2196F3; font-weight: bold",
"data": {
"args": [
"%c\ud83d\udcad [UI] Rendering quick wins page",
"color: #2196F3; font-weight: bold"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#quick-wins",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059950272,
"relativeTime": 163001,
"level": "info",
"category": "snapshot",
"message": "Navigation detected",
"data": {
"trigger": "navigation",
"from": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"to": "https://dss.overbits.luz.uy/admin-ui/index.html#quick-wins",
"snapshot": {
"timestamp": 1765059950272,
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#quick-wins",
"html": "<html lang=\"en\" class=\"light\"><head>\n <meta charset=\"UTF-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n <title>Design System Server</title>\n <link rel=\"icon\" type=\"image/svg+xml\" href=\"/admin-ui/favicon.svg\">\n\n <!-- Design System Styles -->\n <link rel=\"stylesheet\" href=\"/admin-ui/css/tokens.css\">\n <link rel=\"stylesheet\" href=\"/admin-ui/css/base.css\">\n <link rel=\"stylesheet\" href=\"/admin-ui/css/components.css\">\n\n <!-- Markdown & Syntax Highlighting -->\n <script src=\"https://cdn.jsdelivr.net/npm/marked/marked.min.js\"></script>\n <script src=\"https://cdn.jsdelivr.net/npm/dompurify@3.0.6/dist/purify.min.js\"></script>\n <script src=\"https://cdn.jsdelivr.net/npm/highlight.js@11.9.0/lib/highlight.min.js\"></script>\n\n <style>\n /* App Layout */\n .app-layout {\n display: grid;\n grid-template-columns: 240px 1fr;\n grid-template-rows: auto 1fr;\n min-height: 100vh;\n }\n\n /* Sidebar */\n .sidebar {\n grid-row: 1 / -1;\n background: var(--card);\n border-right: 1px solid var(--border);\n display: flex;\n flex-direction: column;\n }\n\n .sidebar__header {\n padding: var(--space-4) var(--space-5);\n border-bottom: 1px solid var(--border);\n }\n\n .sidebar__logo {\n display: flex;\n align-items: center;\n gap: var(--space-3);\n font-weight: var(--font-semibold);\n font-size: var(--text-lg);\n color: var(--foreground);\n }\n\n .sidebar__logo-icon {\n width: 2rem;\n height: 2rem;\n background: var(--primary);\n border-radius: var(--radius);\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--primary-foreground);\n }\n\n .sidebar__nav {\n flex: 1;\n padding: var(--space-4);\n }\n\n .nav-section {\n margin-bottom: var(--space-6);\n }\n\n .nav-section__title {\n font-size: var(--text-xs);\n font-weight: var(--font-medium);\n color: var(--muted-foreground);\n text-transform: uppercase;\n letter-spacing: 0.05em;\n margin-bottom: var(--space-2);\n padding: 0 var(--space-3);\n }\n\n .nav-item {\n display: flex;\n align-items: center;\n gap: var(--space-3);\n padding: var(--space-2) var(--space-3);\n border-radius: var(--radius);\n color: var(--muted-foreground);\n text-decoration: none;\n font-size: var(--text-sm);\n transition: all var(--duration-fast) var(--ease-default);\n cursor: pointer;\n }\n\n .nav-item:hover {\n background: var(--accent);\n color: var(--accent-foreground);\n text-decoration: none;\n }\n\n .nav-item.active {\n background: var(--primary);\n color: var(--primary-foreground);\n }\n\n .nav-item__icon {\n width: 1.25rem;\n height: 1.25rem;\n opacity: 0.7;\n }\n\n .nav-item.active .nav-item__icon {\n opacity: 1;\n }\n\n .sidebar__help {\n padding: var(--space-3);\n border-top: 1px solid var(--border);\n }\n\n .help-panel {\n font-size: var(--text-xs);\n }\n\n .help-panel__toggle {\n display: flex;\n align-items: center;\n gap: var(--space-2);\n cursor: pointer;\n color: var(--muted-foreground);\n padding: var(--space-2);\n border-radius: var(--radius);\n list-style: none;\n }\n\n .help-panel__toggle:hover {\n background: var(--accent);\n color: var(--accent-foreground);\n }\n\n .help-panel__toggle::-webkit-details-marker {\n display: none;\n }\n\n .help-panel__content {\n padding: var(--space-2) var(--space-3);\n }\n\n .help-section {\n margin-bottom: var(--space-3);\n }\n\n .help-section strong {\n color: var(--foreground);\n font-size: var(--text-xs);\n }\n\n .help-section ul, .help-section ol {\n margin: var(--space-1) 0 0 var(--space-4);\n padding: 0;\n color: var(--muted-foreground);\n }\n\n .help-section li {\n margin-bottom: 2px;\n }\n\n .sidebar__footer {\n padding: var(--space-4);\n border-top: 1px solid var(--border);\n }\n\n /* Header */\n .app-header {\n display: flex;\n align-items: center;\n gap: var(--space-4);\n padding: var(--space-4) var(--space-6);\n background: var(--card);\n border-bottom: 1px solid var(--border);\n }\n\n .app-header__project-selector {\n display: flex;\n align-items: center;\n gap: var(--space-2);\n }\n\n .project-selector {\n display: flex;\n align-items: center;\n gap: var(--space-2);\n padding: var(--space-2) var(--space-3);\n background: var(--muted);\n border: 1px solid var(--border);\n border-radius: var(--radius);\n font-size: var(--text-sm);\n width: 200px;\n }\n\n .project-selector__label {\n font-weight: var(--font-medium);\n color: var(--muted-foreground);\n font-size: var(--text-xs);\n text-transform: uppercase;\n letter-spacing: 0.05em;\n }\n\n .project-selector__select {\n flex: 1;\n background: transparent;\n border: none;\n color: var(--foreground);\n font-size: var(--text-sm);\n font-weight: var(--font-medium);\n outline: none;\n cursor: pointer;\n padding: var(--space-1) 0;\n }\n\n .project-selector__select option {\n background: var(--popover);\n color: var(--popover-foreground);\n }\n\n .project-selector__icon {\n width: 16px;\n height: 16px;\n color: var(--primary);\n }\n\n .app-header__team-selector {\n display: flex;\n align-items: center;\n }\n\n .team-select {\n padding: var(--space-2) var(--space-3);\n background: var(--muted);\n border: 1px solid var(--border);\n border-radius: var(--radius);\n color: var(--foreground);\n font-size: var(--text-sm);\n cursor: pointer;\n width: 200px;\n }\n\n .team-select:focus {\n outline: none;\n border-color: var(--ring);\n }\n\n .app-header__actions {\n display: flex;\n align-items: center;\n gap: var(--space-3);\n margin-left: auto;\n }\n\n /* Main Content */\n .app-main {\n display: grid;\n grid-template-columns: 1fr;\n overflow: hidden;\n position: relative;\n }\n\n .app-content {\n padding: var(--space-6);\n padding-right: 340px;\n overflow-y: auto;\n }\n\n .app-sidebar {\n width: 320px;\n height: calc(100vh - 57px);\n border-left: 1px solid var(--border);\n background: var(--card);\n display: flex;\n flex-direction: column;\n transition: width 0.2s ease, transform 0.2s ease;\n position: fixed;\n right: 0;\n top: 57px;\n bottom: 0;\n z-index: 50;\n }\n\n .app-sidebar.collapsed {\n width: 0;\n overflow: hidden;\n border-left: none;\n }\n\n /* AI Toggle button active state in header */\n #sidebar-toggle[aria-expanded=\"false\"] {\n opacity: 0.6;\n }\n\n /* Page Header */\n .page-header h1 {\n font-size: var(--text-2xl);\n margin-bottom: var(--space-1);\n }\n\n /* Docs Layout */\n .docs-layout {\n display: grid;\n grid-template-columns: 200px 1fr;\n gap: var(--space-6);\n min-height: 0;\n }\n\n .docs-nav {\n position: sticky;\n top: 0;\n height: fit-content;\n }\n\n .docs-nav__section {\n margin-bottom: var(--space-4);\n }\n\n .docs-nav__title {\n font-size: var(--text-xs);\n font-weight: var(--font-semibold);\n color: var(--muted-foreground);\n text-transform: uppercase;\n letter-spacing: 0.05em;\n margin-bottom: var(--space-2);\n }\n\n .docs-nav__link {\n display: block;\n padding: var(--space-1) var(--space-2);\n font-size: var(--text-sm);\n color: var(--muted-foreground);\n text-decoration: none;\n border-radius: var(--radius);\n cursor: pointer;\n }\n\n .docs-nav__link:hover {\n color: var(--foreground);\n background: var(--accent);\n }\n\n .docs-nav__link.active {\n color: var(--primary);\n background: var(--primary-light, oklch(0.65 0.18 250 / 0.1));\n }\n\n .docs-content {\n max-width: 700px;\n }\n\n .docs-content h2 {\n font-size: var(--text-xl);\n font-weight: var(--font-semibold);\n margin-bottom: var(--space-4);\n padding-bottom: var(--space-2);\n border-bottom: 1px solid var(--border);\n }\n\n .docs-content h3 {\n font-size: var(--text-base);\n font-weight: var(--font-semibold);\n margin: var(--space-4) 0 var(--space-2);\n }\n\n .docs-content p {\n margin-bottom: var(--space-3);\n line-height: 1.6;\n }\n\n .docs-content ul, .docs-content ol {\n margin: 0 0 var(--space-3) var(--space-4);\n line-height: 1.6;\n }\n\n .docs-content li {\n margin-bottom: var(--space-1);\n }\n\n .docs-content pre {\n background: var(--muted);\n padding: var(--space-3);\n border-radius: var(--radius);\n overflow-x: auto;\n margin-bottom: var(--space-3);\n font-size: var(--text-sm);\n }\n\n .docs-content code {\n font-family: ui-monospace, monospace;\n font-size: 0.9em;\n }\n\n .docs-content a {\n color: var(--primary);\n }\n\n /* Stats */\n .stat {\n text-align: center;\n }\n\n .stat__label {\n font-size: var(--text-sm);\n color: var(--muted-foreground);\n margin-bottom: var(--space-1);\n }\n\n .stat__value {\n font-size: var(--text-2xl);\n font-weight: var(--font-bold);\n }\n\n /* Status Dot */\n .status-dot {\n width: 0.5rem;\n height: 0.5rem;\n border-radius: var(--radius-full);\n background: var(--muted);\n }\n\n .status-dot--success { background: var(--success); }\n .status-dot--warning { background: var(--warning); }\n .status-dot--error { background: var(--destructive); }\n\n /* Responsive */\n @media (max-width: 1024px) {\n .app-main {\n grid-template-columns: 1fr;\n }\n\n .app-sidebar {\n display: none;\n }\n }\n\n @media (max-width: 768px) {\n .app-layout {\n grid-template-columns: 1fr;\n }\n\n .sidebar {\n display: none;\n }\n }\n </style>\n</head>\n<body>\n <div id=\"app\" class=\"app-layout\">\n <!-- Sidebar -->\n <aside class=\"sidebar\">\n <div class=\"sidebar__header\">\n <div class=\"sidebar__logo\">\n <div class=\"sidebar__logo-icon\">\n <svg width=\"18\" height=\"18\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M12 2L2 7l10 5 10-5-10-5z\"></path>\n <path d=\"M2 17l10 5 10-5\"></path>\n <path d=\"M2 12l10 5 10-5\"></path>\n </svg>\n </div>\n <span>DSS</span>\n </div>\n </div>\n\n <nav class=\"sidebar__nav\" aria-label=\"Main navigation\">\n <div class=\"nav-section\">\n <div class=\"nav-section__title\">Overview</div>\n <a class=\"nav-item\" data-page=\"dashboard\" href=\"#dashboard\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <rect x=\"3\" y=\"3\" width=\"7\" height=\"9\" rx=\"1\"></rect>\n <rect x=\"14\" y=\"3\" width=\"7\" height=\"5\" rx=\"1\"></rect>\n <rect x=\"14\" y=\"12\" width=\"7\" height=\"9\" rx=\"1\"></rect>\n <rect x=\"3\" y=\"16\" width=\"7\" height=\"5\" rx=\"1\"></rect>\n </svg>\n Dashboard\n </a>\n <a class=\"nav-item\" data-page=\"projects\" href=\"#projects\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M3 3h18v18H3z\"></path>\n <path d=\"M21 9H3\"></path>\n <path d=\"M9 21V9\"></path>\n </svg>\n Projects\n </a>\n </div>\n\n <div class=\"nav-section\">\n <div class=\"nav-section__title\">Tools</div>\n <a class=\"nav-item\" data-page=\"services\" href=\"#services\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <rect x=\"3\" y=\"3\" width=\"7\" height=\"7\" rx=\"1\"></rect>\n <rect x=\"14\" y=\"3\" width=\"7\" height=\"7\" rx=\"1\"></rect>\n <rect x=\"3\" y=\"14\" width=\"7\" height=\"7\" rx=\"1\"></rect>\n <rect x=\"14\" y=\"14\" width=\"7\" height=\"7\" rx=\"1\"></rect>\n </svg>\n Services\n </a>\n <a class=\"nav-item active\" data-page=\"quick-wins\" href=\"#quick-wins\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <polygon points=\"13 2 3 14 12 14 11 22 21 10 12 10 13 2\"></polygon>\n </svg>\n Quick Wins\n </a>\n <a class=\"nav-item\" data-page=\"chat\" href=\"#chat\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\"></path>\n </svg>\n Chat\n </a>\n </div>\n\n <div class=\"nav-section\">\n <div class=\"nav-section__title\">Design System</div>\n <a class=\"nav-item\" data-page=\"tokens\" href=\"#tokens\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <circle cx=\"12\" cy=\"12\" r=\"10\"></circle>\n <circle cx=\"12\" cy=\"12\" r=\"4\"></circle>\n </svg>\n Tokens\n </a>\n <a class=\"nav-item\" data-page=\"components\" href=\"#components\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\"></rect>\n <path d=\"M3 9h18\"></path>\n <path d=\"M9 21V9\"></path>\n </svg>\n Components\n </a>\n <a class=\"nav-item\" data-page=\"figma\" href=\"#figma\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M5 5.5A3.5 3.5 0 0 1 8.5 2H12v7H8.5A3.5 3.5 0 0 1 5 5.5z\"></path>\n <path d=\"M12 2h3.5a3.5 3.5 0 1 1 0 7H12V2z\"></path>\n <path d=\"M12 12.5a3.5 3.5 0 1 1 7 0 3.5 3.5 0 1 1-7 0z\"></path>\n <path d=\"M5 19.5A3.5 3.5 0 0 1 8.5 16H12v3.5a3.5 3.5 0 1 1-7 0z\"></path>\n <path d=\"M5 12.5A3.5 3.5 0 0 1 8.5 9H12v7H8.5A3.5 3.5 0 0 1 5 12.5z\"></path>\n </svg>\n Figma\n </a>\n <a id=\"storybook-link\" class=\"nav-item\" href=\"https://dss.overbits.luz.uy/storybook/\" target=\"_blank\" tabindex=\"0\" title=\"Open Storybook at https://dss.overbits.luz.uy/storybook/\" style=\"pointer-events: auto; opacity: 1;\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z\"></path>\n <path d=\"M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z\"></path>\n </svg>\n Storybook\n </a>\n </div>\n\n <div class=\"nav-section\">\n <div class=\"nav-section__title\">System</div>\n <a class=\"nav-item\" data-page=\"docs\" href=\"#docs\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M4 19.5A2.5 2.5 0 0 1 6.5 17H20\"></path>\n <path d=\"M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z\"></path>\n </svg>\n Docs\n </a>\n <a class=\"nav-item\" data-page=\"teams\" href=\"#teams\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2\"></path>\n <circle cx=\"9\" cy=\"7\" r=\"4\"></circle>\n <path d=\"M22 21v-2a4 4 0 0 0-3-3.87\"></path>\n <path d=\"M16 3.13a4 4 0 0 1 0 7.75\"></path>\n </svg>\n Teams\n </a>\n <a class=\"nav-item\" data-page=\"audit\" href=\"#audit\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"></path>\n <polyline points=\"14 2 14 8 20 8\"></polyline>\n <line x1=\"16\" y1=\"13\" x2=\"8\" y2=\"13\"></line>\n <line x1=\"16\" y1=\"17\" x2=\"8\" y2=\"17\"></line>\n <polyline points=\"10 9 9 9 8 9\"></polyline>\n </svg>\n Audit Log\n </a>\n <a class=\"nav-item\" data-page=\"plugins\" href=\"#plugins\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M12 2v4m0 12v4M4.93 4.93l2.83 2.83m8.48 8.48l2.83 2.83M2 12h4m12 0h4M4.93 19.07l2.83-2.83m8.48-8.48l2.83-2.83\"></path>\n <circle cx=\"12\" cy=\"12\" r=\"3\"></circle>\n </svg>\n Plugins\n </a>\n <a class=\"nav-item\" data-page=\"settings\" href=\"#settings\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z\"></path>\n <circle cx=\"12\" cy=\"12\" r=\"3\"></circle>\n </svg>\n Settings\n </a>\n </div>\n </nav>\n\n <div class=\"sidebar__help\">\n <details class=\"help-panel\">\n <summary class=\"help-panel__toggle\" tabindex=\"0\">\n <svg width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <circle cx=\"12\" cy=\"12\" r=\"10\"></circle>\n <path d=\"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3\"></path>\n <line x1=\"12\" y1=\"17\" x2=\"12.01\" y2=\"17\"></line>\n </svg>\n Quick Guide\n </summary>\n <div class=\"help-panel__content\">\n <div class=\"help-section\" data-team=\"ui\" style=\"display: none;\">\n <strong>UI Team</strong>\n <ul>\n <li>Extract tokens from Figma</li>\n <li>Sync to CSS variables</li>\n <li>Generate components</li>\n <li>Check token drift</li>\n </ul>\n </div>\n <div class=\"help-section\" data-team=\"ux\">\n <strong>UX Team</strong>\n <ul>\n <li>Add Figma files to project</li>\n <li>Run visual diff checks</li>\n <li>Review token consistency</li>\n <li>Validate components</li>\n </ul>\n </div>\n <div class=\"help-section\" data-team=\"qa\" style=\"display: none;\">\n <strong>QA Team</strong>\n <ul>\n <li>Define ESRE test cases</li>\n <li>Run component validation</li>\n <li>Review visual regressions</li>\n <li>Export audit logs</li>\n </ul>\n </div>\n <div class=\"help-section\" data-team=\"all\">\n <strong>Getting Started</strong>\n <ol>\n <li>Create a project</li>\n <li>Add Figma file key</li>\n <li>Extract &amp; sync tokens</li>\n <li>Use AI chat for help</li>\n </ol>\n </div>\n </div>\n </details>\n </div>\n <div class=\"sidebar__footer\">\n <ds-badge variant=\"outline\" dot=\"\">v0.8.0</ds-badge>\n </div>\n </aside>\n\n <!-- Header -->\n <header class=\"app-header\">\n <div class=\"app-header__project-selector\" id=\"project-selector-container\">\n <div class=\"project-selector\">\n <svg class=\"project-selector__icon\">\n \n \n \n </svg>\n <span class=\"project-selector__label\">Project:</span>\n \n \n \n test\n \n \n \n </div>\n </div>\n <div class=\"app-header__team-selector\">\n <label for=\"team-context-select\" class=\"sr-only\">Select team context</label>\n <select class=\"team-select\" id=\"team-context-select\" aria-label=\"Team context\">\n <option value=\"all\">All Teams</option>\n <option value=\"ui\">UI Team</option>\n <option value=\"ux\">UX Team</option>\n <option value=\"qa\">QA Team</option>\n </select>\n </div>\n <div class=\"app-header__actions\">\n <ds-button variant=\"ghost\" size=\"icon\" title=\"Toggle theme\" id=\"theme-toggle\" tabindex=\"0\" aria-label=\"Toggle dark/light theme\">\n <svg width=\"18\" height=\"18\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n <path d=\"M12 3v1m0 16v1m9-9h-1M4 12H3m15.364 6.364l-.707-.707M6.343 6.343l-.707-.707m12.728 0l-.707.707M6.343 17.657l-.707.707M16 12a4 4 0 1 1-8 0 4 4 0 0 1 8 0z\"></path>\n </svg>\n </ds-button>\n <ds-button variant=\"ghost\" size=\"icon\" title=\"Notifications\" tabindex=\"0\" aria-label=\"View notifications\">\n <svg width=\"18\" height=\"18\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n <path d=\"M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9\"></path>\n <path d=\"M10.3 21a1.94 1.94 0 0 0 3.4 0\"></path>\n </svg>\n </ds-button>\n <ds-button variant=\"ghost\" size=\"icon\" id=\"sidebar-toggle\" title=\"Toggle AI Assistant\" tabindex=\"0\" aria-label=\"Toggle AI Assistant sidebar\" aria-controls=\"ai-sidebar\" aria-expanded=\"true\">\n <svg width=\"18\" height=\"18\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n <path d=\"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\"></path>\n </svg>\n </ds-button>\n <div class=\"ds-avatar\" tabindex=\"0\" role=\"button\" aria-label=\"User profile menu\">\n <span>U</span>\n </div>\n </div>\n </header>\n\n <!-- Main Content Area -->\n <main class=\"app-main\">\n <div id=\"page-content\" class=\"app-content\">\n <div class=\"page-header\">\n <h1>\u26a1 Quick Wins</h1>\n <p class=\"text-muted\">Actionable improvements to empower your team</p>\n </div>\n\n <div class=\"card p-4 mb-6\">\n <div class=\"flex gap-4\">\n <input class=\"input flex-1\" value=\".\" placeholder=\"Project path (default: .)\" id=\"projectPath\" type=\"text\">\n <button data-action=\"loadQuickWins\" class=\"btn btn-primary\">\n \ud83d\udd0d Analyze Project\n </button>\n </div>\n </div>\n\n <div id=\"quickWinsContainer\">\n <div class=\"text-center text-muted py-8\">\n <p>Click \"Analyze Project\" to discover quick wins</p>\n </div>\n </div>\n </div>\n\n <!-- Right Sidebar - AI Chat -->\n <aside class=\"app-sidebar\" id=\"ai-sidebar\">\n <ds-ai-chat></ds-ai-chat>\n </aside>\n </main>\n </div>\n\n <!-- Load Components -->\n <script type=\"module\">\n // Import theme manager first (loads saved theme from cookie)\n import themeManager from '/admin-ui/js/core/theme.js';\n\n // Import all components\n import '/admin-ui/js/components/ds-button.js';\n import '/admin-ui/js/components/ds-card.js';\n import '/admin-ui/js/components/ds-input.js';\n import '/admin-ui/js/components/ds-badge.js';\n import '/admin-ui/js/core/ai.js';\n\n // Import browser logger for debugging\n import '/admin-ui/js/core/browser-logger.js';\n\n // Import and initialize app\n import app from '/admin-ui/js/core/app.js';\n\n // Initialize when DOM is ready\n document.addEventListener('DOMContentLoaded', () => {\n app.init();\n\n // Setup theme toggle button\n const themeToggle = document.getElementById('theme-toggle');\n if (themeToggle) {\n themeToggle.addEventListener('click', () => {\n themeManager.toggle();\n });\n }\n\n // Setup team context selector\n const teamSelect = document.getElementById('team-context-select');\n const updateHelpSections = (team) => {\n document.querySelectorAll('.help-section').forEach(section => {\n const sectionTeam = section.dataset.team;\n section.style.display = (team === 'all' || sectionTeam === team || sectionTeam === 'all') ? '' : 'none';\n });\n };\n\n if (teamSelect) {\n const savedTeam = localStorage.getItem('dss_team_context') || 'all';\n teamSelect.value = savedTeam;\n updateHelpSections(savedTeam);\n\n teamSelect.addEventListener('change', (e) => {\n const team = e.target.value;\n localStorage.setItem('dss_team_context', team);\n updateHelpSections(team);\n window.dispatchEvent(new CustomEvent('team-context-changed', {\n detail: { team }\n }));\n });\n }\n\n // Setup AI sidebar toggle\n const sidebarToggle = document.getElementById('sidebar-toggle');\n const aiSidebar = document.getElementById('ai-sidebar');\n if (sidebarToggle && aiSidebar) {\n // Restore saved state\n const sidebarCollapsed = localStorage.getItem('dss_ai_sidebar_collapsed') === 'true';\n if (sidebarCollapsed) {\n aiSidebar.classList.add('collapsed');\n sidebarToggle.setAttribute('aria-expanded', 'false');\n }\n\n sidebarToggle.addEventListener('click', () => {\n const isCollapsed = aiSidebar.classList.toggle('collapsed');\n sidebarToggle.setAttribute('aria-expanded', !isCollapsed);\n localStorage.setItem('dss_ai_sidebar_collapsed', isCollapsed);\n });\n }\n });\n </script>\n\n\n<div id=\"notifications\" class=\"notification-container\"></div></body></html>",
"viewport": {
"width": 1403,
"height": 958,
"devicePixelRatio": 2
},
"title": "Design System Server"
}
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#quick-wins",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059963272,
"relativeTime": 176001,
"level": "info",
"category": "snapshot",
"message": "Navigation detected",
"data": {
"trigger": "navigation",
"from": "https://dss.overbits.luz.uy/admin-ui/index.html#quick-wins",
"to": "https://dss.overbits.luz.uy/admin-ui/index.html#dashboard",
"snapshot": {
"timestamp": 1765059963272,
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#dashboard",
"html": "<html lang=\"en\" class=\"light\"><head>\n <meta charset=\"UTF-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n <title>Design System Server</title>\n <link rel=\"icon\" type=\"image/svg+xml\" href=\"/admin-ui/favicon.svg\">\n\n <!-- Design System Styles -->\n <link rel=\"stylesheet\" href=\"/admin-ui/css/tokens.css\">\n <link rel=\"stylesheet\" href=\"/admin-ui/css/base.css\">\n <link rel=\"stylesheet\" href=\"/admin-ui/css/components.css\">\n\n <!-- Markdown & Syntax Highlighting -->\n <script src=\"https://cdn.jsdelivr.net/npm/marked/marked.min.js\"></script>\n <script src=\"https://cdn.jsdelivr.net/npm/dompurify@3.0.6/dist/purify.min.js\"></script>\n <script src=\"https://cdn.jsdelivr.net/npm/highlight.js@11.9.0/lib/highlight.min.js\"></script>\n\n <style>\n /* App Layout */\n .app-layout {\n display: grid;\n grid-template-columns: 240px 1fr;\n grid-template-rows: auto 1fr;\n min-height: 100vh;\n }\n\n /* Sidebar */\n .sidebar {\n grid-row: 1 / -1;\n background: var(--card);\n border-right: 1px solid var(--border);\n display: flex;\n flex-direction: column;\n }\n\n .sidebar__header {\n padding: var(--space-4) var(--space-5);\n border-bottom: 1px solid var(--border);\n }\n\n .sidebar__logo {\n display: flex;\n align-items: center;\n gap: var(--space-3);\n font-weight: var(--font-semibold);\n font-size: var(--text-lg);\n color: var(--foreground);\n }\n\n .sidebar__logo-icon {\n width: 2rem;\n height: 2rem;\n background: var(--primary);\n border-radius: var(--radius);\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--primary-foreground);\n }\n\n .sidebar__nav {\n flex: 1;\n padding: var(--space-4);\n }\n\n .nav-section {\n margin-bottom: var(--space-6);\n }\n\n .nav-section__title {\n font-size: var(--text-xs);\n font-weight: var(--font-medium);\n color: var(--muted-foreground);\n text-transform: uppercase;\n letter-spacing: 0.05em;\n margin-bottom: var(--space-2);\n padding: 0 var(--space-3);\n }\n\n .nav-item {\n display: flex;\n align-items: center;\n gap: var(--space-3);\n padding: var(--space-2) var(--space-3);\n border-radius: var(--radius);\n color: var(--muted-foreground);\n text-decoration: none;\n font-size: var(--text-sm);\n transition: all var(--duration-fast) var(--ease-default);\n cursor: pointer;\n }\n\n .nav-item:hover {\n background: var(--accent);\n color: var(--accent-foreground);\n text-decoration: none;\n }\n\n .nav-item.active {\n background: var(--primary);\n color: var(--primary-foreground);\n }\n\n .nav-item__icon {\n width: 1.25rem;\n height: 1.25rem;\n opacity: 0.7;\n }\n\n .nav-item.active .nav-item__icon {\n opacity: 1;\n }\n\n .sidebar__help {\n padding: var(--space-3);\n border-top: 1px solid var(--border);\n }\n\n .help-panel {\n font-size: var(--text-xs);\n }\n\n .help-panel__toggle {\n display: flex;\n align-items: center;\n gap: var(--space-2);\n cursor: pointer;\n color: var(--muted-foreground);\n padding: var(--space-2);\n border-radius: var(--radius);\n list-style: none;\n }\n\n .help-panel__toggle:hover {\n background: var(--accent);\n color: var(--accent-foreground);\n }\n\n .help-panel__toggle::-webkit-details-marker {\n display: none;\n }\n\n .help-panel__content {\n padding: var(--space-2) var(--space-3);\n }\n\n .help-section {\n margin-bottom: var(--space-3);\n }\n\n .help-section strong {\n color: var(--foreground);\n font-size: var(--text-xs);\n }\n\n .help-section ul, .help-section ol {\n margin: var(--space-1) 0 0 var(--space-4);\n padding: 0;\n color: var(--muted-foreground);\n }\n\n .help-section li {\n margin-bottom: 2px;\n }\n\n .sidebar__footer {\n padding: var(--space-4);\n border-top: 1px solid var(--border);\n }\n\n /* Header */\n .app-header {\n display: flex;\n align-items: center;\n gap: var(--space-4);\n padding: var(--space-4) var(--space-6);\n background: var(--card);\n border-bottom: 1px solid var(--border);\n }\n\n .app-header__project-selector {\n display: flex;\n align-items: center;\n gap: var(--space-2);\n }\n\n .project-selector {\n display: flex;\n align-items: center;\n gap: var(--space-2);\n padding: var(--space-2) var(--space-3);\n background: var(--muted);\n border: 1px solid var(--border);\n border-radius: var(--radius);\n font-size: var(--text-sm);\n width: 200px;\n }\n\n .project-selector__label {\n font-weight: var(--font-medium);\n color: var(--muted-foreground);\n font-size: var(--text-xs);\n text-transform: uppercase;\n letter-spacing: 0.05em;\n }\n\n .project-selector__select {\n flex: 1;\n background: transparent;\n border: none;\n color: var(--foreground);\n font-size: var(--text-sm);\n font-weight: var(--font-medium);\n outline: none;\n cursor: pointer;\n padding: var(--space-1) 0;\n }\n\n .project-selector__select option {\n background: var(--popover);\n color: var(--popover-foreground);\n }\n\n .project-selector__icon {\n width: 16px;\n height: 16px;\n color: var(--primary);\n }\n\n .app-header__team-selector {\n display: flex;\n align-items: center;\n }\n\n .team-select {\n padding: var(--space-2) var(--space-3);\n background: var(--muted);\n border: 1px solid var(--border);\n border-radius: var(--radius);\n color: var(--foreground);\n font-size: var(--text-sm);\n cursor: pointer;\n width: 200px;\n }\n\n .team-select:focus {\n outline: none;\n border-color: var(--ring);\n }\n\n .app-header__actions {\n display: flex;\n align-items: center;\n gap: var(--space-3);\n margin-left: auto;\n }\n\n /* Main Content */\n .app-main {\n display: grid;\n grid-template-columns: 1fr;\n overflow: hidden;\n position: relative;\n }\n\n .app-content {\n padding: var(--space-6);\n padding-right: 340px;\n overflow-y: auto;\n }\n\n .app-sidebar {\n width: 320px;\n height: calc(100vh - 57px);\n border-left: 1px solid var(--border);\n background: var(--card);\n display: flex;\n flex-direction: column;\n transition: width 0.2s ease, transform 0.2s ease;\n position: fixed;\n right: 0;\n top: 57px;\n bottom: 0;\n z-index: 50;\n }\n\n .app-sidebar.collapsed {\n width: 0;\n overflow: hidden;\n border-left: none;\n }\n\n /* AI Toggle button active state in header */\n #sidebar-toggle[aria-expanded=\"false\"] {\n opacity: 0.6;\n }\n\n /* Page Header */\n .page-header h1 {\n font-size: var(--text-2xl);\n margin-bottom: var(--space-1);\n }\n\n /* Docs Layout */\n .docs-layout {\n display: grid;\n grid-template-columns: 200px 1fr;\n gap: var(--space-6);\n min-height: 0;\n }\n\n .docs-nav {\n position: sticky;\n top: 0;\n height: fit-content;\n }\n\n .docs-nav__section {\n margin-bottom: var(--space-4);\n }\n\n .docs-nav__title {\n font-size: var(--text-xs);\n font-weight: var(--font-semibold);\n color: var(--muted-foreground);\n text-transform: uppercase;\n letter-spacing: 0.05em;\n margin-bottom: var(--space-2);\n }\n\n .docs-nav__link {\n display: block;\n padding: var(--space-1) var(--space-2);\n font-size: var(--text-sm);\n color: var(--muted-foreground);\n text-decoration: none;\n border-radius: var(--radius);\n cursor: pointer;\n }\n\n .docs-nav__link:hover {\n color: var(--foreground);\n background: var(--accent);\n }\n\n .docs-nav__link.active {\n color: var(--primary);\n background: var(--primary-light, oklch(0.65 0.18 250 / 0.1));\n }\n\n .docs-content {\n max-width: 700px;\n }\n\n .docs-content h2 {\n font-size: var(--text-xl);\n font-weight: var(--font-semibold);\n margin-bottom: var(--space-4);\n padding-bottom: var(--space-2);\n border-bottom: 1px solid var(--border);\n }\n\n .docs-content h3 {\n font-size: var(--text-base);\n font-weight: var(--font-semibold);\n margin: var(--space-4) 0 var(--space-2);\n }\n\n .docs-content p {\n margin-bottom: var(--space-3);\n line-height: 1.6;\n }\n\n .docs-content ul, .docs-content ol {\n margin: 0 0 var(--space-3) var(--space-4);\n line-height: 1.6;\n }\n\n .docs-content li {\n margin-bottom: var(--space-1);\n }\n\n .docs-content pre {\n background: var(--muted);\n padding: var(--space-3);\n border-radius: var(--radius);\n overflow-x: auto;\n margin-bottom: var(--space-3);\n font-size: var(--text-sm);\n }\n\n .docs-content code {\n font-family: ui-monospace, monospace;\n font-size: 0.9em;\n }\n\n .docs-content a {\n color: var(--primary);\n }\n\n /* Stats */\n .stat {\n text-align: center;\n }\n\n .stat__label {\n font-size: var(--text-sm);\n color: var(--muted-foreground);\n margin-bottom: var(--space-1);\n }\n\n .stat__value {\n font-size: var(--text-2xl);\n font-weight: var(--font-bold);\n }\n\n /* Status Dot */\n .status-dot {\n width: 0.5rem;\n height: 0.5rem;\n border-radius: var(--radius-full);\n background: var(--muted);\n }\n\n .status-dot--success { background: var(--success); }\n .status-dot--warning { background: var(--warning); }\n .status-dot--error { background: var(--destructive); }\n\n /* Responsive */\n @media (max-width: 1024px) {\n .app-main {\n grid-template-columns: 1fr;\n }\n\n .app-sidebar {\n display: none;\n }\n }\n\n @media (max-width: 768px) {\n .app-layout {\n grid-template-columns: 1fr;\n }\n\n .sidebar {\n display: none;\n }\n }\n </style>\n</head>\n<body>\n <div id=\"app\" class=\"app-layout\">\n <!-- Sidebar -->\n <aside class=\"sidebar\">\n <div class=\"sidebar__header\">\n <div class=\"sidebar__logo\">\n <div class=\"sidebar__logo-icon\">\n <svg width=\"18\" height=\"18\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M12 2L2 7l10 5 10-5-10-5z\"></path>\n <path d=\"M2 17l10 5 10-5\"></path>\n <path d=\"M2 12l10 5 10-5\"></path>\n </svg>\n </div>\n <span>DSS</span>\n </div>\n </div>\n\n <nav class=\"sidebar__nav\" aria-label=\"Main navigation\">\n <div class=\"nav-section\">\n <div class=\"nav-section__title\">Overview</div>\n <a class=\"nav-item active\" data-page=\"dashboard\" href=\"#dashboard\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <rect x=\"3\" y=\"3\" width=\"7\" height=\"9\" rx=\"1\"></rect>\n <rect x=\"14\" y=\"3\" width=\"7\" height=\"5\" rx=\"1\"></rect>\n <rect x=\"14\" y=\"12\" width=\"7\" height=\"9\" rx=\"1\"></rect>\n <rect x=\"3\" y=\"16\" width=\"7\" height=\"5\" rx=\"1\"></rect>\n </svg>\n Dashboard\n </a>\n <a class=\"nav-item\" data-page=\"projects\" href=\"#projects\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M3 3h18v18H3z\"></path>\n <path d=\"M21 9H3\"></path>\n <path d=\"M9 21V9\"></path>\n </svg>\n Projects\n </a>\n </div>\n\n <div class=\"nav-section\">\n <div class=\"nav-section__title\">Tools</div>\n <a class=\"nav-item\" data-page=\"services\" href=\"#services\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <rect x=\"3\" y=\"3\" width=\"7\" height=\"7\" rx=\"1\"></rect>\n <rect x=\"14\" y=\"3\" width=\"7\" height=\"7\" rx=\"1\"></rect>\n <rect x=\"3\" y=\"14\" width=\"7\" height=\"7\" rx=\"1\"></rect>\n <rect x=\"14\" y=\"14\" width=\"7\" height=\"7\" rx=\"1\"></rect>\n </svg>\n Services\n </a>\n <a class=\"nav-item\" data-page=\"quick-wins\" href=\"#quick-wins\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <polygon points=\"13 2 3 14 12 14 11 22 21 10 12 10 13 2\"></polygon>\n </svg>\n Quick Wins\n </a>\n <a class=\"nav-item\" data-page=\"chat\" href=\"#chat\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\"></path>\n </svg>\n Chat\n </a>\n </div>\n\n <div class=\"nav-section\">\n <div class=\"nav-section__title\">Design System</div>\n <a class=\"nav-item\" data-page=\"tokens\" href=\"#tokens\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <circle cx=\"12\" cy=\"12\" r=\"10\"></circle>\n <circle cx=\"12\" cy=\"12\" r=\"4\"></circle>\n </svg>\n Tokens\n </a>\n <a class=\"nav-item\" data-page=\"components\" href=\"#components\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\"></rect>\n <path d=\"M3 9h18\"></path>\n <path d=\"M9 21V9\"></path>\n </svg>\n Components\n </a>\n <a class=\"nav-item\" data-page=\"figma\" href=\"#figma\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M5 5.5A3.5 3.5 0 0 1 8.5 2H12v7H8.5A3.5 3.5 0 0 1 5 5.5z\"></path>\n <path d=\"M12 2h3.5a3.5 3.5 0 1 1 0 7H12V2z\"></path>\n <path d=\"M12 12.5a3.5 3.5 0 1 1 7 0 3.5 3.5 0 1 1-7 0z\"></path>\n <path d=\"M5 19.5A3.5 3.5 0 0 1 8.5 16H12v3.5a3.5 3.5 0 1 1-7 0z\"></path>\n <path d=\"M5 12.5A3.5 3.5 0 0 1 8.5 9H12v7H8.5A3.5 3.5 0 0 1 5 12.5z\"></path>\n </svg>\n Figma\n </a>\n <a id=\"storybook-link\" class=\"nav-item\" href=\"https://dss.overbits.luz.uy/storybook/\" target=\"_blank\" tabindex=\"0\" title=\"Open Storybook at https://dss.overbits.luz.uy/storybook/\" style=\"pointer-events: auto; opacity: 1;\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z\"></path>\n <path d=\"M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z\"></path>\n </svg>\n Storybook\n </a>\n </div>\n\n <div class=\"nav-section\">\n <div class=\"nav-section__title\">System</div>\n <a class=\"nav-item\" data-page=\"docs\" href=\"#docs\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M4 19.5A2.5 2.5 0 0 1 6.5 17H20\"></path>\n <path d=\"M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z\"></path>\n </svg>\n Docs\n </a>\n <a class=\"nav-item\" data-page=\"teams\" href=\"#teams\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2\"></path>\n <circle cx=\"9\" cy=\"7\" r=\"4\"></circle>\n <path d=\"M22 21v-2a4 4 0 0 0-3-3.87\"></path>\n <path d=\"M16 3.13a4 4 0 0 1 0 7.75\"></path>\n </svg>\n Teams\n </a>\n <a class=\"nav-item\" data-page=\"audit\" href=\"#audit\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"></path>\n <polyline points=\"14 2 14 8 20 8\"></polyline>\n <line x1=\"16\" y1=\"13\" x2=\"8\" y2=\"13\"></line>\n <line x1=\"16\" y1=\"17\" x2=\"8\" y2=\"17\"></line>\n <polyline points=\"10 9 9 9 8 9\"></polyline>\n </svg>\n Audit Log\n </a>\n <a class=\"nav-item\" data-page=\"plugins\" href=\"#plugins\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M12 2v4m0 12v4M4.93 4.93l2.83 2.83m8.48 8.48l2.83 2.83M2 12h4m12 0h4M4.93 19.07l2.83-2.83m8.48-8.48l2.83-2.83\"></path>\n <circle cx=\"12\" cy=\"12\" r=\"3\"></circle>\n </svg>\n Plugins\n </a>\n <a class=\"nav-item\" data-page=\"settings\" href=\"#settings\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z\"></path>\n <circle cx=\"12\" cy=\"12\" r=\"3\"></circle>\n </svg>\n Settings\n </a>\n </div>\n </nav>\n\n <div class=\"sidebar__help\">\n <details class=\"help-panel\">\n <summary class=\"help-panel__toggle\" tabindex=\"0\">\n <svg width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <circle cx=\"12\" cy=\"12\" r=\"10\"></circle>\n <path d=\"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3\"></path>\n <line x1=\"12\" y1=\"17\" x2=\"12.01\" y2=\"17\"></line>\n </svg>\n Quick Guide\n </summary>\n <div class=\"help-panel__content\">\n <div class=\"help-section\" data-team=\"ui\" style=\"display: none;\">\n <strong>UI Team</strong>\n <ul>\n <li>Extract tokens from Figma</li>\n <li>Sync to CSS variables</li>\n <li>Generate components</li>\n <li>Check token drift</li>\n </ul>\n </div>\n <div class=\"help-section\" data-team=\"ux\">\n <strong>UX Team</strong>\n <ul>\n <li>Add Figma files to project</li>\n <li>Run visual diff checks</li>\n <li>Review token consistency</li>\n <li>Validate components</li>\n </ul>\n </div>\n <div class=\"help-section\" data-team=\"qa\" style=\"display: none;\">\n <strong>QA Team</strong>\n <ul>\n <li>Define ESRE test cases</li>\n <li>Run component validation</li>\n <li>Review visual regressions</li>\n <li>Export audit logs</li>\n </ul>\n </div>\n <div class=\"help-section\" data-team=\"all\">\n <strong>Getting Started</strong>\n <ol>\n <li>Create a project</li>\n <li>Add Figma file key</li>\n <li>Extract &amp; sync tokens</li>\n <li>Use AI chat for help</li>\n </ol>\n </div>\n </div>\n </details>\n </div>\n <div class=\"sidebar__footer\">\n <ds-badge variant=\"outline\" dot=\"\">v0.8.0</ds-badge>\n </div>\n </aside>\n\n <!-- Header -->\n <header class=\"app-header\">\n <div class=\"app-header__project-selector\" id=\"project-selector-container\">\n <div class=\"project-selector\">\n <svg class=\"project-selector__icon\">\n \n \n \n </svg>\n <span class=\"project-selector__label\">Project:</span>\n \n \n \n test\n \n \n \n </div>\n </div>\n <div class=\"app-header__team-selector\">\n <label for=\"team-context-select\" class=\"sr-only\">Select team context</label>\n <select class=\"team-select\" id=\"team-context-select\" aria-label=\"Team context\">\n <option value=\"all\">All Teams</option>\n <option value=\"ui\">UI Team</option>\n <option value=\"ux\">UX Team</option>\n <option value=\"qa\">QA Team</option>\n </select>\n </div>\n <div class=\"app-header__actions\">\n <ds-button variant=\"ghost\" size=\"icon\" title=\"Toggle theme\" id=\"theme-toggle\" tabindex=\"0\" aria-label=\"Toggle dark/light theme\">\n <svg width=\"18\" height=\"18\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n <path d=\"M12 3v1m0 16v1m9-9h-1M4 12H3m15.364 6.364l-.707-.707M6.343 6.343l-.707-.707m12.728 0l-.707.707M6.343 17.657l-.707.707M16 12a4 4 0 1 1-8 0 4 4 0 0 1 8 0z\"></path>\n </svg>\n </ds-button>\n <ds-button variant=\"ghost\" size=\"icon\" title=\"Notifications\" tabindex=\"0\" aria-label=\"View notifications\">\n <svg width=\"18\" height=\"18\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n <path d=\"M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9\"></path>\n <path d=\"M10.3 21a1.94 1.94 0 0 0 3.4 0\"></path>\n </svg>\n </ds-button>\n <ds-button variant=\"ghost\" size=\"icon\" id=\"sidebar-toggle\" title=\"Toggle AI Assistant\" tabindex=\"0\" aria-label=\"Toggle AI Assistant sidebar\" aria-controls=\"ai-sidebar\" aria-expanded=\"true\">\n <svg width=\"18\" height=\"18\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n <path d=\"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\"></path>\n </svg>\n </ds-button>\n <div class=\"ds-avatar\" tabindex=\"0\" role=\"button\" aria-label=\"User profile menu\">\n <span>U</span>\n </div>\n </div>\n </header>\n\n <!-- Main Content Area -->\n <main class=\"app-main\">\n <div id=\"page-content\" class=\"app-content\">\n <div class=\"page-header\">\n <h1>UX Team Dashboard</h1>\n <p class=\"text-muted\">Design consistency &amp; token validation \u00b7 <strong class=\"text-primary\">test</strong></p>\n </div>\n\n \n <div class=\"grid grid-cols-4 gap-4 mt-6\">\n \n \n <div class=\"stat\">\n <div class=\"stat__label\">Figma Files</div>\n <div class=\"stat__value\">0</div>\n </div>\n \n \n\n \n \n <div class=\"stat\">\n <div class=\"stat__label\">Synced Files</div>\n <div class=\"stat__value\">0</div>\n </div>\n \n \n\n \n \n <div class=\"stat\">\n <div class=\"stat__label\">Pending Sync</div>\n <div class=\"stat__value\">0</div>\n </div>\n \n \n\n \n \n <div class=\"stat\">\n <div class=\"stat__label\">Design Tokens</div>\n <div class=\"stat__value\">0</div>\n </div>\n \n \n </div>\n\n \n <div class=\"mt-6\">\n \n \n \u2795 Add Figma File\n Configure Figma files for this project\n \n \n \n <div>\n File Name\n <input class=\"w-full p-2 border rounded mt-1\" placeholder=\"Design System Components\" name=\"file_name\" type=\"text\">\n </div>\n <div>\n Figma URL\n <input class=\"w-full p-2 border rounded mt-1\" placeholder=\"https://figma.com/file/...\" name=\"figma_url\" type=\"url\">\n </div>\n <div>\n File Key\n <input class=\"w-full p-2 border rounded mt-1\" placeholder=\"abc123xyz\" name=\"file_key\" type=\"text\">\n <p class=\"text-xs text-muted mt-1\">Extract from Figma URL: figma.com/file/<strong>FILE_KEY</strong>/...</p>\n </div>\n \n Add Figma File\n \n \n \n \n </div>\n\n \n <div class=\"mt-6\">\n \n \n Figma Files (0)\n Manage Figma files for this project\n \n \n \n <p class=\"text-muted text-sm text-center py-8\">\n No Figma files configured yet. Add your first file above! \ud83d\udc46\n </p>\n \n \n \n </div>\n</div>\n\n <!-- Right Sidebar - AI Chat -->\n <aside class=\"app-sidebar\" id=\"ai-sidebar\">\n <ds-ai-chat></ds-ai-chat>\n </aside>\n </main>\n </div>\n\n <!-- Load Components -->\n <script type=\"module\">\n // Import theme manager first (loads saved theme from cookie)\n import themeManager from '/admin-ui/js/core/theme.js';\n\n // Import all components\n import '/admin-ui/js/components/ds-button.js';\n import '/admin-ui/js/components/ds-card.js';\n import '/admin-ui/js/components/ds-input.js';\n import '/admin-ui/js/components/ds-badge.js';\n import '/admin-ui/js/core/ai.js';\n\n // Import browser logger for debugging\n import '/admin-ui/js/core/browser-logger.js';\n\n // Import and initialize app\n import app from '/admin-ui/js/core/app.js';\n\n // Initialize when DOM is ready\n document.addEventListener('DOMContentLoaded', () => {\n app.init();\n\n // Setup theme toggle button\n const themeToggle = document.getElementById('theme-toggle');\n if (themeToggle) {\n themeToggle.addEventListener('click', () => {\n themeManager.toggle();\n });\n }\n\n // Setup team context selector\n const teamSelect = document.getElementById('team-context-select');\n const updateHelpSections = (team) => {\n document.querySelectorAll('.help-section').forEach(section => {\n const sectionTeam = section.dataset.team;\n section.style.display = (team === 'all' || sectionTeam === team || sectionTeam === 'all') ? '' : 'none';\n });\n };\n\n if (teamSelect) {\n const savedTeam = localStorage.getItem('dss_team_context') || 'all';\n teamSelect.value = savedTeam;\n updateHelpSections(savedTeam);\n\n teamSelect.addEventListener('change', (e) => {\n const team = e.target.value;\n localStorage.setItem('dss_team_context', team);\n updateHelpSections(team);\n window.dispatchEvent(new CustomEvent('team-context-changed', {\n detail: { team }\n }));\n });\n }\n\n // Setup AI sidebar toggle\n const sidebarToggle = document.getElementById('sidebar-toggle');\n const aiSidebar = document.getElementById('ai-sidebar');\n if (sidebarToggle && aiSidebar) {\n // Restore saved state\n const sidebarCollapsed = localStorage.getItem('dss_ai_sidebar_collapsed') === 'true';\n if (sidebarCollapsed) {\n aiSidebar.classList.add('collapsed');\n sidebarToggle.setAttribute('aria-expanded', 'false');\n }\n\n sidebarToggle.addEventListener('click', () => {\n const isCollapsed = aiSidebar.classList.toggle('collapsed');\n sidebarToggle.setAttribute('aria-expanded', !isCollapsed);\n localStorage.setItem('dss_ai_sidebar_collapsed', isCollapsed);\n });\n }\n });\n </script>\n\n\n<div id=\"notifications\" class=\"notification-container\"></div></body></html>",
"viewport": {
"width": 1403,
"height": 958,
"devicePixelRatio": 2
},
"title": "Design System Server"
}
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#dashboard",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059965272,
"relativeTime": 178002,
"level": "info",
"category": "snapshot",
"message": "Navigation detected",
"data": {
"trigger": "navigation",
"from": "https://dss.overbits.luz.uy/admin-ui/index.html#dashboard",
"to": "https://dss.overbits.luz.uy/admin-ui/index.html#projects",
"snapshot": {
"timestamp": 1765059965272,
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#projects",
"html": "<html lang=\"en\" class=\"light\"><head>\n <meta charset=\"UTF-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n <title>Design System Server</title>\n <link rel=\"icon\" type=\"image/svg+xml\" href=\"/admin-ui/favicon.svg\">\n\n <!-- Design System Styles -->\n <link rel=\"stylesheet\" href=\"/admin-ui/css/tokens.css\">\n <link rel=\"stylesheet\" href=\"/admin-ui/css/base.css\">\n <link rel=\"stylesheet\" href=\"/admin-ui/css/components.css\">\n\n <!-- Markdown & Syntax Highlighting -->\n <script src=\"https://cdn.jsdelivr.net/npm/marked/marked.min.js\"></script>\n <script src=\"https://cdn.jsdelivr.net/npm/dompurify@3.0.6/dist/purify.min.js\"></script>\n <script src=\"https://cdn.jsdelivr.net/npm/highlight.js@11.9.0/lib/highlight.min.js\"></script>\n\n <style>\n /* App Layout */\n .app-layout {\n display: grid;\n grid-template-columns: 240px 1fr;\n grid-template-rows: auto 1fr;\n min-height: 100vh;\n }\n\n /* Sidebar */\n .sidebar {\n grid-row: 1 / -1;\n background: var(--card);\n border-right: 1px solid var(--border);\n display: flex;\n flex-direction: column;\n }\n\n .sidebar__header {\n padding: var(--space-4) var(--space-5);\n border-bottom: 1px solid var(--border);\n }\n\n .sidebar__logo {\n display: flex;\n align-items: center;\n gap: var(--space-3);\n font-weight: var(--font-semibold);\n font-size: var(--text-lg);\n color: var(--foreground);\n }\n\n .sidebar__logo-icon {\n width: 2rem;\n height: 2rem;\n background: var(--primary);\n border-radius: var(--radius);\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--primary-foreground);\n }\n\n .sidebar__nav {\n flex: 1;\n padding: var(--space-4);\n }\n\n .nav-section {\n margin-bottom: var(--space-6);\n }\n\n .nav-section__title {\n font-size: var(--text-xs);\n font-weight: var(--font-medium);\n color: var(--muted-foreground);\n text-transform: uppercase;\n letter-spacing: 0.05em;\n margin-bottom: var(--space-2);\n padding: 0 var(--space-3);\n }\n\n .nav-item {\n display: flex;\n align-items: center;\n gap: var(--space-3);\n padding: var(--space-2) var(--space-3);\n border-radius: var(--radius);\n color: var(--muted-foreground);\n text-decoration: none;\n font-size: var(--text-sm);\n transition: all var(--duration-fast) var(--ease-default);\n cursor: pointer;\n }\n\n .nav-item:hover {\n background: var(--accent);\n color: var(--accent-foreground);\n text-decoration: none;\n }\n\n .nav-item.active {\n background: var(--primary);\n color: var(--primary-foreground);\n }\n\n .nav-item__icon {\n width: 1.25rem;\n height: 1.25rem;\n opacity: 0.7;\n }\n\n .nav-item.active .nav-item__icon {\n opacity: 1;\n }\n\n .sidebar__help {\n padding: var(--space-3);\n border-top: 1px solid var(--border);\n }\n\n .help-panel {\n font-size: var(--text-xs);\n }\n\n .help-panel__toggle {\n display: flex;\n align-items: center;\n gap: var(--space-2);\n cursor: pointer;\n color: var(--muted-foreground);\n padding: var(--space-2);\n border-radius: var(--radius);\n list-style: none;\n }\n\n .help-panel__toggle:hover {\n background: var(--accent);\n color: var(--accent-foreground);\n }\n\n .help-panel__toggle::-webkit-details-marker {\n display: none;\n }\n\n .help-panel__content {\n padding: var(--space-2) var(--space-3);\n }\n\n .help-section {\n margin-bottom: var(--space-3);\n }\n\n .help-section strong {\n color: var(--foreground);\n font-size: var(--text-xs);\n }\n\n .help-section ul, .help-section ol {\n margin: var(--space-1) 0 0 var(--space-4);\n padding: 0;\n color: var(--muted-foreground);\n }\n\n .help-section li {\n margin-bottom: 2px;\n }\n\n .sidebar__footer {\n padding: var(--space-4);\n border-top: 1px solid var(--border);\n }\n\n /* Header */\n .app-header {\n display: flex;\n align-items: center;\n gap: var(--space-4);\n padding: var(--space-4) var(--space-6);\n background: var(--card);\n border-bottom: 1px solid var(--border);\n }\n\n .app-header__project-selector {\n display: flex;\n align-items: center;\n gap: var(--space-2);\n }\n\n .project-selector {\n display: flex;\n align-items: center;\n gap: var(--space-2);\n padding: var(--space-2) var(--space-3);\n background: var(--muted);\n border: 1px solid var(--border);\n border-radius: var(--radius);\n font-size: var(--text-sm);\n width: 200px;\n }\n\n .project-selector__label {\n font-weight: var(--font-medium);\n color: var(--muted-foreground);\n font-size: var(--text-xs);\n text-transform: uppercase;\n letter-spacing: 0.05em;\n }\n\n .project-selector__select {\n flex: 1;\n background: transparent;\n border: none;\n color: var(--foreground);\n font-size: var(--text-sm);\n font-weight: var(--font-medium);\n outline: none;\n cursor: pointer;\n padding: var(--space-1) 0;\n }\n\n .project-selector__select option {\n background: var(--popover);\n color: var(--popover-foreground);\n }\n\n .project-selector__icon {\n width: 16px;\n height: 16px;\n color: var(--primary);\n }\n\n .app-header__team-selector {\n display: flex;\n align-items: center;\n }\n\n .team-select {\n padding: var(--space-2) var(--space-3);\n background: var(--muted);\n border: 1px solid var(--border);\n border-radius: var(--radius);\n color: var(--foreground);\n font-size: var(--text-sm);\n cursor: pointer;\n width: 200px;\n }\n\n .team-select:focus {\n outline: none;\n border-color: var(--ring);\n }\n\n .app-header__actions {\n display: flex;\n align-items: center;\n gap: var(--space-3);\n margin-left: auto;\n }\n\n /* Main Content */\n .app-main {\n display: grid;\n grid-template-columns: 1fr;\n overflow: hidden;\n position: relative;\n }\n\n .app-content {\n padding: var(--space-6);\n padding-right: 340px;\n overflow-y: auto;\n }\n\n .app-sidebar {\n width: 320px;\n height: calc(100vh - 57px);\n border-left: 1px solid var(--border);\n background: var(--card);\n display: flex;\n flex-direction: column;\n transition: width 0.2s ease, transform 0.2s ease;\n position: fixed;\n right: 0;\n top: 57px;\n bottom: 0;\n z-index: 50;\n }\n\n .app-sidebar.collapsed {\n width: 0;\n overflow: hidden;\n border-left: none;\n }\n\n /* AI Toggle button active state in header */\n #sidebar-toggle[aria-expanded=\"false\"] {\n opacity: 0.6;\n }\n\n /* Page Header */\n .page-header h1 {\n font-size: var(--text-2xl);\n margin-bottom: var(--space-1);\n }\n\n /* Docs Layout */\n .docs-layout {\n display: grid;\n grid-template-columns: 200px 1fr;\n gap: var(--space-6);\n min-height: 0;\n }\n\n .docs-nav {\n position: sticky;\n top: 0;\n height: fit-content;\n }\n\n .docs-nav__section {\n margin-bottom: var(--space-4);\n }\n\n .docs-nav__title {\n font-size: var(--text-xs);\n font-weight: var(--font-semibold);\n color: var(--muted-foreground);\n text-transform: uppercase;\n letter-spacing: 0.05em;\n margin-bottom: var(--space-2);\n }\n\n .docs-nav__link {\n display: block;\n padding: var(--space-1) var(--space-2);\n font-size: var(--text-sm);\n color: var(--muted-foreground);\n text-decoration: none;\n border-radius: var(--radius);\n cursor: pointer;\n }\n\n .docs-nav__link:hover {\n color: var(--foreground);\n background: var(--accent);\n }\n\n .docs-nav__link.active {\n color: var(--primary);\n background: var(--primary-light, oklch(0.65 0.18 250 / 0.1));\n }\n\n .docs-content {\n max-width: 700px;\n }\n\n .docs-content h2 {\n font-size: var(--text-xl);\n font-weight: var(--font-semibold);\n margin-bottom: var(--space-4);\n padding-bottom: var(--space-2);\n border-bottom: 1px solid var(--border);\n }\n\n .docs-content h3 {\n font-size: var(--text-base);\n font-weight: var(--font-semibold);\n margin: var(--space-4) 0 var(--space-2);\n }\n\n .docs-content p {\n margin-bottom: var(--space-3);\n line-height: 1.6;\n }\n\n .docs-content ul, .docs-content ol {\n margin: 0 0 var(--space-3) var(--space-4);\n line-height: 1.6;\n }\n\n .docs-content li {\n margin-bottom: var(--space-1);\n }\n\n .docs-content pre {\n background: var(--muted);\n padding: var(--space-3);\n border-radius: var(--radius);\n overflow-x: auto;\n margin-bottom: var(--space-3);\n font-size: var(--text-sm);\n }\n\n .docs-content code {\n font-family: ui-monospace, monospace;\n font-size: 0.9em;\n }\n\n .docs-content a {\n color: var(--primary);\n }\n\n /* Stats */\n .stat {\n text-align: center;\n }\n\n .stat__label {\n font-size: var(--text-sm);\n color: var(--muted-foreground);\n margin-bottom: var(--space-1);\n }\n\n .stat__value {\n font-size: var(--text-2xl);\n font-weight: var(--font-bold);\n }\n\n /* Status Dot */\n .status-dot {\n width: 0.5rem;\n height: 0.5rem;\n border-radius: var(--radius-full);\n background: var(--muted);\n }\n\n .status-dot--success { background: var(--success); }\n .status-dot--warning { background: var(--warning); }\n .status-dot--error { background: var(--destructive); }\n\n /* Responsive */\n @media (max-width: 1024px) {\n .app-main {\n grid-template-columns: 1fr;\n }\n\n .app-sidebar {\n display: none;\n }\n }\n\n @media (max-width: 768px) {\n .app-layout {\n grid-template-columns: 1fr;\n }\n\n .sidebar {\n display: none;\n }\n }\n </style>\n</head>\n<body>\n <div id=\"app\" class=\"app-layout\">\n <!-- Sidebar -->\n <aside class=\"sidebar\">\n <div class=\"sidebar__header\">\n <div class=\"sidebar__logo\">\n <div class=\"sidebar__logo-icon\">\n <svg width=\"18\" height=\"18\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M12 2L2 7l10 5 10-5-10-5z\"></path>\n <path d=\"M2 17l10 5 10-5\"></path>\n <path d=\"M2 12l10 5 10-5\"></path>\n </svg>\n </div>\n <span>DSS</span>\n </div>\n </div>\n\n <nav class=\"sidebar__nav\" aria-label=\"Main navigation\">\n <div class=\"nav-section\">\n <div class=\"nav-section__title\">Overview</div>\n <a class=\"nav-item\" data-page=\"dashboard\" href=\"#dashboard\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <rect x=\"3\" y=\"3\" width=\"7\" height=\"9\" rx=\"1\"></rect>\n <rect x=\"14\" y=\"3\" width=\"7\" height=\"5\" rx=\"1\"></rect>\n <rect x=\"14\" y=\"12\" width=\"7\" height=\"9\" rx=\"1\"></rect>\n <rect x=\"3\" y=\"16\" width=\"7\" height=\"5\" rx=\"1\"></rect>\n </svg>\n Dashboard\n </a>\n <a class=\"nav-item active\" data-page=\"projects\" href=\"#projects\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M3 3h18v18H3z\"></path>\n <path d=\"M21 9H3\"></path>\n <path d=\"M9 21V9\"></path>\n </svg>\n Projects\n </a>\n </div>\n\n <div class=\"nav-section\">\n <div class=\"nav-section__title\">Tools</div>\n <a class=\"nav-item\" data-page=\"services\" href=\"#services\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <rect x=\"3\" y=\"3\" width=\"7\" height=\"7\" rx=\"1\"></rect>\n <rect x=\"14\" y=\"3\" width=\"7\" height=\"7\" rx=\"1\"></rect>\n <rect x=\"3\" y=\"14\" width=\"7\" height=\"7\" rx=\"1\"></rect>\n <rect x=\"14\" y=\"14\" width=\"7\" height=\"7\" rx=\"1\"></rect>\n </svg>\n Services\n </a>\n <a class=\"nav-item\" data-page=\"quick-wins\" href=\"#quick-wins\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <polygon points=\"13 2 3 14 12 14 11 22 21 10 12 10 13 2\"></polygon>\n </svg>\n Quick Wins\n </a>\n <a class=\"nav-item\" data-page=\"chat\" href=\"#chat\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\"></path>\n </svg>\n Chat\n </a>\n </div>\n\n <div class=\"nav-section\">\n <div class=\"nav-section__title\">Design System</div>\n <a class=\"nav-item\" data-page=\"tokens\" href=\"#tokens\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <circle cx=\"12\" cy=\"12\" r=\"10\"></circle>\n <circle cx=\"12\" cy=\"12\" r=\"4\"></circle>\n </svg>\n Tokens\n </a>\n <a class=\"nav-item\" data-page=\"components\" href=\"#components\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\"></rect>\n <path d=\"M3 9h18\"></path>\n <path d=\"M9 21V9\"></path>\n </svg>\n Components\n </a>\n <a class=\"nav-item\" data-page=\"figma\" href=\"#figma\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M5 5.5A3.5 3.5 0 0 1 8.5 2H12v7H8.5A3.5 3.5 0 0 1 5 5.5z\"></path>\n <path d=\"M12 2h3.5a3.5 3.5 0 1 1 0 7H12V2z\"></path>\n <path d=\"M12 12.5a3.5 3.5 0 1 1 7 0 3.5 3.5 0 1 1-7 0z\"></path>\n <path d=\"M5 19.5A3.5 3.5 0 0 1 8.5 16H12v3.5a3.5 3.5 0 1 1-7 0z\"></path>\n <path d=\"M5 12.5A3.5 3.5 0 0 1 8.5 9H12v7H8.5A3.5 3.5 0 0 1 5 12.5z\"></path>\n </svg>\n Figma\n </a>\n <a id=\"storybook-link\" class=\"nav-item\" href=\"https://dss.overbits.luz.uy/storybook/\" target=\"_blank\" tabindex=\"0\" title=\"Open Storybook at https://dss.overbits.luz.uy/storybook/\" style=\"pointer-events: auto; opacity: 1;\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z\"></path>\n <path d=\"M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z\"></path>\n </svg>\n Storybook\n </a>\n </div>\n\n <div class=\"nav-section\">\n <div class=\"nav-section__title\">System</div>\n <a class=\"nav-item\" data-page=\"docs\" href=\"#docs\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M4 19.5A2.5 2.5 0 0 1 6.5 17H20\"></path>\n <path d=\"M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z\"></path>\n </svg>\n Docs\n </a>\n <a class=\"nav-item\" data-page=\"teams\" href=\"#teams\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2\"></path>\n <circle cx=\"9\" cy=\"7\" r=\"4\"></circle>\n <path d=\"M22 21v-2a4 4 0 0 0-3-3.87\"></path>\n <path d=\"M16 3.13a4 4 0 0 1 0 7.75\"></path>\n </svg>\n Teams\n </a>\n <a class=\"nav-item\" data-page=\"audit\" href=\"#audit\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"></path>\n <polyline points=\"14 2 14 8 20 8\"></polyline>\n <line x1=\"16\" y1=\"13\" x2=\"8\" y2=\"13\"></line>\n <line x1=\"16\" y1=\"17\" x2=\"8\" y2=\"17\"></line>\n <polyline points=\"10 9 9 9 8 9\"></polyline>\n </svg>\n Audit Log\n </a>\n <a class=\"nav-item\" data-page=\"plugins\" href=\"#plugins\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M12 2v4m0 12v4M4.93 4.93l2.83 2.83m8.48 8.48l2.83 2.83M2 12h4m12 0h4M4.93 19.07l2.83-2.83m8.48-8.48l2.83-2.83\"></path>\n <circle cx=\"12\" cy=\"12\" r=\"3\"></circle>\n </svg>\n Plugins\n </a>\n <a class=\"nav-item\" data-page=\"settings\" href=\"#settings\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z\"></path>\n <circle cx=\"12\" cy=\"12\" r=\"3\"></circle>\n </svg>\n Settings\n </a>\n </div>\n </nav>\n\n <div class=\"sidebar__help\">\n <details class=\"help-panel\">\n <summary class=\"help-panel__toggle\" tabindex=\"0\">\n <svg width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <circle cx=\"12\" cy=\"12\" r=\"10\"></circle>\n <path d=\"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3\"></path>\n <line x1=\"12\" y1=\"17\" x2=\"12.01\" y2=\"17\"></line>\n </svg>\n Quick Guide\n </summary>\n <div class=\"help-panel__content\">\n <div class=\"help-section\" data-team=\"ui\" style=\"display: none;\">\n <strong>UI Team</strong>\n <ul>\n <li>Extract tokens from Figma</li>\n <li>Sync to CSS variables</li>\n <li>Generate components</li>\n <li>Check token drift</li>\n </ul>\n </div>\n <div class=\"help-section\" data-team=\"ux\">\n <strong>UX Team</strong>\n <ul>\n <li>Add Figma files to project</li>\n <li>Run visual diff checks</li>\n <li>Review token consistency</li>\n <li>Validate components</li>\n </ul>\n </div>\n <div class=\"help-section\" data-team=\"qa\" style=\"display: none;\">\n <strong>QA Team</strong>\n <ul>\n <li>Define ESRE test cases</li>\n <li>Run component validation</li>\n <li>Review visual regressions</li>\n <li>Export audit logs</li>\n </ul>\n </div>\n <div class=\"help-section\" data-team=\"all\">\n <strong>Getting Started</strong>\n <ol>\n <li>Create a project</li>\n <li>Add Figma file key</li>\n <li>Extract &amp; sync tokens</li>\n <li>Use AI chat for help</li>\n </ol>\n </div>\n </div>\n </details>\n </div>\n <div class=\"sidebar__footer\">\n <ds-badge variant=\"outline\" dot=\"\">v0.8.0</ds-badge>\n </div>\n </aside>\n\n <!-- Header -->\n <header class=\"app-header\">\n <div class=\"app-header__project-selector\" id=\"project-selector-container\">\n <div class=\"project-selector\">\n <svg class=\"project-selector__icon\">\n \n \n \n </svg>\n <span class=\"project-selector__label\">Project:</span>\n \n \n \n test\n \n \n \n </div>\n </div>\n <div class=\"app-header__team-selector\">\n <label for=\"team-context-select\" class=\"sr-only\">Select team context</label>\n <select class=\"team-select\" id=\"team-context-select\" aria-label=\"Team context\">\n <option value=\"all\">All Teams</option>\n <option value=\"ui\">UI Team</option>\n <option value=\"ux\">UX Team</option>\n <option value=\"qa\">QA Team</option>\n </select>\n </div>\n <div class=\"app-header__actions\">\n <ds-button variant=\"ghost\" size=\"icon\" title=\"Toggle theme\" id=\"theme-toggle\" tabindex=\"0\" aria-label=\"Toggle dark/light theme\">\n <svg width=\"18\" height=\"18\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n <path d=\"M12 3v1m0 16v1m9-9h-1M4 12H3m15.364 6.364l-.707-.707M6.343 6.343l-.707-.707m12.728 0l-.707.707M6.343 17.657l-.707.707M16 12a4 4 0 1 1-8 0 4 4 0 0 1 8 0z\"></path>\n </svg>\n </ds-button>\n <ds-button variant=\"ghost\" size=\"icon\" title=\"Notifications\" tabindex=\"0\" aria-label=\"View notifications\">\n <svg width=\"18\" height=\"18\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n <path d=\"M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9\"></path>\n <path d=\"M10.3 21a1.94 1.94 0 0 0 3.4 0\"></path>\n </svg>\n </ds-button>\n <ds-button variant=\"ghost\" size=\"icon\" id=\"sidebar-toggle\" title=\"Toggle AI Assistant\" tabindex=\"0\" aria-label=\"Toggle AI Assistant sidebar\" aria-controls=\"ai-sidebar\" aria-expanded=\"true\">\n <svg width=\"18\" height=\"18\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n <path d=\"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\"></path>\n </svg>\n </ds-button>\n <div class=\"ds-avatar\" tabindex=\"0\" role=\"button\" aria-label=\"User profile menu\">\n <span>U</span>\n </div>\n </div>\n </header>\n\n <!-- Main Content Area -->\n <main class=\"app-main\">\n <div id=\"page-content\" class=\"app-content\">\n <div class=\"page-header\">\n <h1>Projects</h1>\n <p class=\"text-muted\">Manage your design system projects</p>\n </div>\n\n <div class=\"flex justify-between items-center mt-6 mb-4\">\n \n \n New Project\n \n </div>\n\n \n\n \n <div class=\"grid grid-cols-2 gap-4\">\n \n \n \n test\n \n active\n \n \n \n <p class=\"text-sm mb-3\">a test project</p>\n <div class=\"flex flex-col gap-2 text-sm\">\n <div class=\"flex justify-between\">\n <span class=\"text-muted\">Figma Key:</span>\n <span class=\"font-mono text-xs\">figd_jRiYc6O6Uzt6PNP-TC4UkkVRn911Sx5clYK9HOtt</span>\n </div>\n <div class=\"flex justify-between\">\n <span class=\"text-muted\">Last Sync:</span>\n <span>Never</span>\n </div>\n <div class=\"flex justify-between\">\n <span class=\"text-muted\">Created:</span>\n <span>18h ago</span>\n </div>\n </div>\n \n \n <div class=\"flex gap-2\">\n \n Open\n \n \n Sync Tokens\n \n \n Delete\n \n </div>\n \n \n \n </div>\n \n </div>\n\n <!-- Right Sidebar - AI Chat -->\n <aside class=\"app-sidebar\" id=\"ai-sidebar\">\n <ds-ai-chat></ds-ai-chat>\n </aside>\n </main>\n </div>\n\n <!-- Load Components -->\n <script type=\"module\">\n // Import theme manager first (loads saved theme from cookie)\n import themeManager from '/admin-ui/js/core/theme.js';\n\n // Import all components\n import '/admin-ui/js/components/ds-button.js';\n import '/admin-ui/js/components/ds-card.js';\n import '/admin-ui/js/components/ds-input.js';\n import '/admin-ui/js/components/ds-badge.js';\n import '/admin-ui/js/core/ai.js';\n\n // Import browser logger for debugging\n import '/admin-ui/js/core/browser-logger.js';\n\n // Import and initialize app\n import app from '/admin-ui/js/core/app.js';\n\n // Initialize when DOM is ready\n document.addEventListener('DOMContentLoaded', () => {\n app.init();\n\n // Setup theme toggle button\n const themeToggle = document.getElementById('theme-toggle');\n if (themeToggle) {\n themeToggle.addEventListener('click', () => {\n themeManager.toggle();\n });\n }\n\n // Setup team context selector\n const teamSelect = document.getElementById('team-context-select');\n const updateHelpSections = (team) => {\n document.querySelectorAll('.help-section').forEach(section => {\n const sectionTeam = section.dataset.team;\n section.style.display = (team === 'all' || sectionTeam === team || sectionTeam === 'all') ? '' : 'none';\n });\n };\n\n if (teamSelect) {\n const savedTeam = localStorage.getItem('dss_team_context') || 'all';\n teamSelect.value = savedTeam;\n updateHelpSections(savedTeam);\n\n teamSelect.addEventListener('change', (e) => {\n const team = e.target.value;\n localStorage.setItem('dss_team_context', team);\n updateHelpSections(team);\n window.dispatchEvent(new CustomEvent('team-context-changed', {\n detail: { team }\n }));\n });\n }\n\n // Setup AI sidebar toggle\n const sidebarToggle = document.getElementById('sidebar-toggle');\n const aiSidebar = document.getElementById('ai-sidebar');\n if (sidebarToggle && aiSidebar) {\n // Restore saved state\n const sidebarCollapsed = localStorage.getItem('dss_ai_sidebar_collapsed') === 'true';\n if (sidebarCollapsed) {\n aiSidebar.classList.add('collapsed');\n sidebarToggle.setAttribute('aria-expanded', 'false');\n }\n\n sidebarToggle.addEventListener('click', () => {\n const isCollapsed = aiSidebar.classList.toggle('collapsed');\n sidebarToggle.setAttribute('aria-expanded', !isCollapsed);\n localStorage.setItem('dss_ai_sidebar_collapsed', isCollapsed);\n });\n }\n });\n </script>\n\n\n<div id=\"notifications\" class=\"notification-container\"></div></body></html>",
"viewport": {
"width": 1403,
"height": 958,
"devicePixelRatio": 2
},
"title": "Design System Server"
}
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#projects",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059966340,
"relativeTime": 179069,
"level": "log",
"category": "console",
"message": "%c\ud83d\udcad [UI] Rendering services page color: #2196F3; font-weight: bold [object Object]",
"data": {
"args": [
"%c\ud83d\udcad [UI] Rendering services page",
"color: #2196F3; font-weight: bold",
{
"toolCount": 8,
"teamContext": "ux",
"categories": [
"Projects",
"Figma",
"Ingestion",
"Analysis",
"Storybook",
"Activity"
]
}
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059966343,
"relativeTime": 179072,
"level": "log",
"category": "console",
"message": "%c\ud83d\udcad [UI] Rendering services page color: #2196F3; font-weight: bold [object Object]",
"data": {
"args": [
"%c\ud83d\udcad [UI] Rendering services page",
"color: #2196F3; font-weight: bold",
{
"toolCount": 8,
"teamContext": "ux",
"categories": [
"Projects",
"Figma",
"Ingestion",
"Analysis",
"Storybook",
"Activity"
]
}
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059966346,
"relativeTime": 179075,
"level": "log",
"category": "console",
"message": "%c\ud83d\udcad [UI] Rendering services page color: #2196F3; font-weight: bold [object Object]",
"data": {
"args": [
"%c\ud83d\udcad [UI] Rendering services page",
"color: #2196F3; font-weight: bold",
{
"toolCount": 8,
"teamContext": "ux",
"categories": [
"Projects",
"Figma",
"Ingestion",
"Analysis",
"Storybook",
"Activity"
]
}
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059966348,
"relativeTime": 179077,
"level": "log",
"category": "console",
"message": "%c\ud83d\udcad [UI] Rendering services page color: #2196F3; font-weight: bold [object Object]",
"data": {
"args": [
"%c\ud83d\udcad [UI] Rendering services page",
"color: #2196F3; font-weight: bold",
{
"toolCount": 8,
"teamContext": "ux",
"categories": [
"Projects",
"Figma",
"Ingestion",
"Analysis",
"Storybook",
"Activity"
]
}
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059967273,
"relativeTime": 180002,
"level": "info",
"category": "snapshot",
"message": "Navigation detected",
"data": {
"trigger": "navigation",
"from": "https://dss.overbits.luz.uy/admin-ui/index.html#projects",
"to": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"snapshot": {
"timestamp": 1765059967272,
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"html": "<html lang=\"en\" class=\"light\"><head>\n <meta charset=\"UTF-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n <title>Design System Server</title>\n <link rel=\"icon\" type=\"image/svg+xml\" href=\"/admin-ui/favicon.svg\">\n\n <!-- Design System Styles -->\n <link rel=\"stylesheet\" href=\"/admin-ui/css/tokens.css\">\n <link rel=\"stylesheet\" href=\"/admin-ui/css/base.css\">\n <link rel=\"stylesheet\" href=\"/admin-ui/css/components.css\">\n\n <!-- Markdown & Syntax Highlighting -->\n <script src=\"https://cdn.jsdelivr.net/npm/marked/marked.min.js\"></script>\n <script src=\"https://cdn.jsdelivr.net/npm/dompurify@3.0.6/dist/purify.min.js\"></script>\n <script src=\"https://cdn.jsdelivr.net/npm/highlight.js@11.9.0/lib/highlight.min.js\"></script>\n\n <style>\n /* App Layout */\n .app-layout {\n display: grid;\n grid-template-columns: 240px 1fr;\n grid-template-rows: auto 1fr;\n min-height: 100vh;\n }\n\n /* Sidebar */\n .sidebar {\n grid-row: 1 / -1;\n background: var(--card);\n border-right: 1px solid var(--border);\n display: flex;\n flex-direction: column;\n }\n\n .sidebar__header {\n padding: var(--space-4) var(--space-5);\n border-bottom: 1px solid var(--border);\n }\n\n .sidebar__logo {\n display: flex;\n align-items: center;\n gap: var(--space-3);\n font-weight: var(--font-semibold);\n font-size: var(--text-lg);\n color: var(--foreground);\n }\n\n .sidebar__logo-icon {\n width: 2rem;\n height: 2rem;\n background: var(--primary);\n border-radius: var(--radius);\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--primary-foreground);\n }\n\n .sidebar__nav {\n flex: 1;\n padding: var(--space-4);\n }\n\n .nav-section {\n margin-bottom: var(--space-6);\n }\n\n .nav-section__title {\n font-size: var(--text-xs);\n font-weight: var(--font-medium);\n color: var(--muted-foreground);\n text-transform: uppercase;\n letter-spacing: 0.05em;\n margin-bottom: var(--space-2);\n padding: 0 var(--space-3);\n }\n\n .nav-item {\n display: flex;\n align-items: center;\n gap: var(--space-3);\n padding: var(--space-2) var(--space-3);\n border-radius: var(--radius);\n color: var(--muted-foreground);\n text-decoration: none;\n font-size: var(--text-sm);\n transition: all var(--duration-fast) var(--ease-default);\n cursor: pointer;\n }\n\n .nav-item:hover {\n background: var(--accent);\n color: var(--accent-foreground);\n text-decoration: none;\n }\n\n .nav-item.active {\n background: var(--primary);\n color: var(--primary-foreground);\n }\n\n .nav-item__icon {\n width: 1.25rem;\n height: 1.25rem;\n opacity: 0.7;\n }\n\n .nav-item.active .nav-item__icon {\n opacity: 1;\n }\n\n .sidebar__help {\n padding: var(--space-3);\n border-top: 1px solid var(--border);\n }\n\n .help-panel {\n font-size: var(--text-xs);\n }\n\n .help-panel__toggle {\n display: flex;\n align-items: center;\n gap: var(--space-2);\n cursor: pointer;\n color: var(--muted-foreground);\n padding: var(--space-2);\n border-radius: var(--radius);\n list-style: none;\n }\n\n .help-panel__toggle:hover {\n background: var(--accent);\n color: var(--accent-foreground);\n }\n\n .help-panel__toggle::-webkit-details-marker {\n display: none;\n }\n\n .help-panel__content {\n padding: var(--space-2) var(--space-3);\n }\n\n .help-section {\n margin-bottom: var(--space-3);\n }\n\n .help-section strong {\n color: var(--foreground);\n font-size: var(--text-xs);\n }\n\n .help-section ul, .help-section ol {\n margin: var(--space-1) 0 0 var(--space-4);\n padding: 0;\n color: var(--muted-foreground);\n }\n\n .help-section li {\n margin-bottom: 2px;\n }\n\n .sidebar__footer {\n padding: var(--space-4);\n border-top: 1px solid var(--border);\n }\n\n /* Header */\n .app-header {\n display: flex;\n align-items: center;\n gap: var(--space-4);\n padding: var(--space-4) var(--space-6);\n background: var(--card);\n border-bottom: 1px solid var(--border);\n }\n\n .app-header__project-selector {\n display: flex;\n align-items: center;\n gap: var(--space-2);\n }\n\n .project-selector {\n display: flex;\n align-items: center;\n gap: var(--space-2);\n padding: var(--space-2) var(--space-3);\n background: var(--muted);\n border: 1px solid var(--border);\n border-radius: var(--radius);\n font-size: var(--text-sm);\n width: 200px;\n }\n\n .project-selector__label {\n font-weight: var(--font-medium);\n color: var(--muted-foreground);\n font-size: var(--text-xs);\n text-transform: uppercase;\n letter-spacing: 0.05em;\n }\n\n .project-selector__select {\n flex: 1;\n background: transparent;\n border: none;\n color: var(--foreground);\n font-size: var(--text-sm);\n font-weight: var(--font-medium);\n outline: none;\n cursor: pointer;\n padding: var(--space-1) 0;\n }\n\n .project-selector__select option {\n background: var(--popover);\n color: var(--popover-foreground);\n }\n\n .project-selector__icon {\n width: 16px;\n height: 16px;\n color: var(--primary);\n }\n\n .app-header__team-selector {\n display: flex;\n align-items: center;\n }\n\n .team-select {\n padding: var(--space-2) var(--space-3);\n background: var(--muted);\n border: 1px solid var(--border);\n border-radius: var(--radius);\n color: var(--foreground);\n font-size: var(--text-sm);\n cursor: pointer;\n width: 200px;\n }\n\n .team-select:focus {\n outline: none;\n border-color: var(--ring);\n }\n\n .app-header__actions {\n display: flex;\n align-items: center;\n gap: var(--space-3);\n margin-left: auto;\n }\n\n /* Main Content */\n .app-main {\n display: grid;\n grid-template-columns: 1fr;\n overflow: hidden;\n position: relative;\n }\n\n .app-content {\n padding: var(--space-6);\n padding-right: 340px;\n overflow-y: auto;\n }\n\n .app-sidebar {\n width: 320px;\n height: calc(100vh - 57px);\n border-left: 1px solid var(--border);\n background: var(--card);\n display: flex;\n flex-direction: column;\n transition: width 0.2s ease, transform 0.2s ease;\n position: fixed;\n right: 0;\n top: 57px;\n bottom: 0;\n z-index: 50;\n }\n\n .app-sidebar.collapsed {\n width: 0;\n overflow: hidden;\n border-left: none;\n }\n\n /* AI Toggle button active state in header */\n #sidebar-toggle[aria-expanded=\"false\"] {\n opacity: 0.6;\n }\n\n /* Page Header */\n .page-header h1 {\n font-size: var(--text-2xl);\n margin-bottom: var(--space-1);\n }\n\n /* Docs Layout */\n .docs-layout {\n display: grid;\n grid-template-columns: 200px 1fr;\n gap: var(--space-6);\n min-height: 0;\n }\n\n .docs-nav {\n position: sticky;\n top: 0;\n height: fit-content;\n }\n\n .docs-nav__section {\n margin-bottom: var(--space-4);\n }\n\n .docs-nav__title {\n font-size: var(--text-xs);\n font-weight: var(--font-semibold);\n color: var(--muted-foreground);\n text-transform: uppercase;\n letter-spacing: 0.05em;\n margin-bottom: var(--space-2);\n }\n\n .docs-nav__link {\n display: block;\n padding: var(--space-1) var(--space-2);\n font-size: var(--text-sm);\n color: var(--muted-foreground);\n text-decoration: none;\n border-radius: var(--radius);\n cursor: pointer;\n }\n\n .docs-nav__link:hover {\n color: var(--foreground);\n background: var(--accent);\n }\n\n .docs-nav__link.active {\n color: var(--primary);\n background: var(--primary-light, oklch(0.65 0.18 250 / 0.1));\n }\n\n .docs-content {\n max-width: 700px;\n }\n\n .docs-content h2 {\n font-size: var(--text-xl);\n font-weight: var(--font-semibold);\n margin-bottom: var(--space-4);\n padding-bottom: var(--space-2);\n border-bottom: 1px solid var(--border);\n }\n\n .docs-content h3 {\n font-size: var(--text-base);\n font-weight: var(--font-semibold);\n margin: var(--space-4) 0 var(--space-2);\n }\n\n .docs-content p {\n margin-bottom: var(--space-3);\n line-height: 1.6;\n }\n\n .docs-content ul, .docs-content ol {\n margin: 0 0 var(--space-3) var(--space-4);\n line-height: 1.6;\n }\n\n .docs-content li {\n margin-bottom: var(--space-1);\n }\n\n .docs-content pre {\n background: var(--muted);\n padding: var(--space-3);\n border-radius: var(--radius);\n overflow-x: auto;\n margin-bottom: var(--space-3);\n font-size: var(--text-sm);\n }\n\n .docs-content code {\n font-family: ui-monospace, monospace;\n font-size: 0.9em;\n }\n\n .docs-content a {\n color: var(--primary);\n }\n\n /* Stats */\n .stat {\n text-align: center;\n }\n\n .stat__label {\n font-size: var(--text-sm);\n color: var(--muted-foreground);\n margin-bottom: var(--space-1);\n }\n\n .stat__value {\n font-size: var(--text-2xl);\n font-weight: var(--font-bold);\n }\n\n /* Status Dot */\n .status-dot {\n width: 0.5rem;\n height: 0.5rem;\n border-radius: var(--radius-full);\n background: var(--muted);\n }\n\n .status-dot--success { background: var(--success); }\n .status-dot--warning { background: var(--warning); }\n .status-dot--error { background: var(--destructive); }\n\n /* Responsive */\n @media (max-width: 1024px) {\n .app-main {\n grid-template-columns: 1fr;\n }\n\n .app-sidebar {\n display: none;\n }\n }\n\n @media (max-width: 768px) {\n .app-layout {\n grid-template-columns: 1fr;\n }\n\n .sidebar {\n display: none;\n }\n }\n </style>\n</head>\n<body>\n <div id=\"app\" class=\"app-layout\">\n <!-- Sidebar -->\n <aside class=\"sidebar\">\n <div class=\"sidebar__header\">\n <div class=\"sidebar__logo\">\n <div class=\"sidebar__logo-icon\">\n <svg width=\"18\" height=\"18\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M12 2L2 7l10 5 10-5-10-5z\"></path>\n <path d=\"M2 17l10 5 10-5\"></path>\n <path d=\"M2 12l10 5 10-5\"></path>\n </svg>\n </div>\n <span>DSS</span>\n </div>\n </div>\n\n <nav class=\"sidebar__nav\" aria-label=\"Main navigation\">\n <div class=\"nav-section\">\n <div class=\"nav-section__title\">Overview</div>\n <a class=\"nav-item\" data-page=\"dashboard\" href=\"#dashboard\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <rect x=\"3\" y=\"3\" width=\"7\" height=\"9\" rx=\"1\"></rect>\n <rect x=\"14\" y=\"3\" width=\"7\" height=\"5\" rx=\"1\"></rect>\n <rect x=\"14\" y=\"12\" width=\"7\" height=\"9\" rx=\"1\"></rect>\n <rect x=\"3\" y=\"16\" width=\"7\" height=\"5\" rx=\"1\"></rect>\n </svg>\n Dashboard\n </a>\n <a class=\"nav-item\" data-page=\"projects\" href=\"#projects\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M3 3h18v18H3z\"></path>\n <path d=\"M21 9H3\"></path>\n <path d=\"M9 21V9\"></path>\n </svg>\n Projects\n </a>\n </div>\n\n <div class=\"nav-section\">\n <div class=\"nav-section__title\">Tools</div>\n <a class=\"nav-item active\" data-page=\"services\" href=\"#services\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <rect x=\"3\" y=\"3\" width=\"7\" height=\"7\" rx=\"1\"></rect>\n <rect x=\"14\" y=\"3\" width=\"7\" height=\"7\" rx=\"1\"></rect>\n <rect x=\"3\" y=\"14\" width=\"7\" height=\"7\" rx=\"1\"></rect>\n <rect x=\"14\" y=\"14\" width=\"7\" height=\"7\" rx=\"1\"></rect>\n </svg>\n Services\n </a>\n <a class=\"nav-item\" data-page=\"quick-wins\" href=\"#quick-wins\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <polygon points=\"13 2 3 14 12 14 11 22 21 10 12 10 13 2\"></polygon>\n </svg>\n Quick Wins\n </a>\n <a class=\"nav-item\" data-page=\"chat\" href=\"#chat\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\"></path>\n </svg>\n Chat\n </a>\n </div>\n\n <div class=\"nav-section\">\n <div class=\"nav-section__title\">Design System</div>\n <a class=\"nav-item\" data-page=\"tokens\" href=\"#tokens\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <circle cx=\"12\" cy=\"12\" r=\"10\"></circle>\n <circle cx=\"12\" cy=\"12\" r=\"4\"></circle>\n </svg>\n Tokens\n </a>\n <a class=\"nav-item\" data-page=\"components\" href=\"#components\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\"></rect>\n <path d=\"M3 9h18\"></path>\n <path d=\"M9 21V9\"></path>\n </svg>\n Components\n </a>\n <a class=\"nav-item\" data-page=\"figma\" href=\"#figma\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M5 5.5A3.5 3.5 0 0 1 8.5 2H12v7H8.5A3.5 3.5 0 0 1 5 5.5z\"></path>\n <path d=\"M12 2h3.5a3.5 3.5 0 1 1 0 7H12V2z\"></path>\n <path d=\"M12 12.5a3.5 3.5 0 1 1 7 0 3.5 3.5 0 1 1-7 0z\"></path>\n <path d=\"M5 19.5A3.5 3.5 0 0 1 8.5 16H12v3.5a3.5 3.5 0 1 1-7 0z\"></path>\n <path d=\"M5 12.5A3.5 3.5 0 0 1 8.5 9H12v7H8.5A3.5 3.5 0 0 1 5 12.5z\"></path>\n </svg>\n Figma\n </a>\n <a id=\"storybook-link\" class=\"nav-item\" href=\"https://dss.overbits.luz.uy/storybook/\" target=\"_blank\" tabindex=\"0\" title=\"Open Storybook at https://dss.overbits.luz.uy/storybook/\" style=\"pointer-events: auto; opacity: 1;\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z\"></path>\n <path d=\"M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z\"></path>\n </svg>\n Storybook\n </a>\n </div>\n\n <div class=\"nav-section\">\n <div class=\"nav-section__title\">System</div>\n <a class=\"nav-item\" data-page=\"docs\" href=\"#docs\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M4 19.5A2.5 2.5 0 0 1 6.5 17H20\"></path>\n <path d=\"M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z\"></path>\n </svg>\n Docs\n </a>\n <a class=\"nav-item\" data-page=\"teams\" href=\"#teams\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2\"></path>\n <circle cx=\"9\" cy=\"7\" r=\"4\"></circle>\n <path d=\"M22 21v-2a4 4 0 0 0-3-3.87\"></path>\n <path d=\"M16 3.13a4 4 0 0 1 0 7.75\"></path>\n </svg>\n Teams\n </a>\n <a class=\"nav-item\" data-page=\"audit\" href=\"#audit\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"></path>\n <polyline points=\"14 2 14 8 20 8\"></polyline>\n <line x1=\"16\" y1=\"13\" x2=\"8\" y2=\"13\"></line>\n <line x1=\"16\" y1=\"17\" x2=\"8\" y2=\"17\"></line>\n <polyline points=\"10 9 9 9 8 9\"></polyline>\n </svg>\n Audit Log\n </a>\n <a class=\"nav-item\" data-page=\"plugins\" href=\"#plugins\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M12 2v4m0 12v4M4.93 4.93l2.83 2.83m8.48 8.48l2.83 2.83M2 12h4m12 0h4M4.93 19.07l2.83-2.83m8.48-8.48l2.83-2.83\"></path>\n <circle cx=\"12\" cy=\"12\" r=\"3\"></circle>\n </svg>\n Plugins\n </a>\n <a class=\"nav-item\" data-page=\"settings\" href=\"#settings\" tabindex=\"0\">\n <svg class=\"nav-item__icon\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <path d=\"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z\"></path>\n <circle cx=\"12\" cy=\"12\" r=\"3\"></circle>\n </svg>\n Settings\n </a>\n </div>\n </nav>\n\n <div class=\"sidebar__help\">\n <details class=\"help-panel\">\n <summary class=\"help-panel__toggle\" tabindex=\"0\">\n <svg width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\">\n <circle cx=\"12\" cy=\"12\" r=\"10\"></circle>\n <path d=\"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3\"></path>\n <line x1=\"12\" y1=\"17\" x2=\"12.01\" y2=\"17\"></line>\n </svg>\n Quick Guide\n </summary>\n <div class=\"help-panel__content\">\n <div class=\"help-section\" data-team=\"ui\" style=\"display: none;\">\n <strong>UI Team</strong>\n <ul>\n <li>Extract tokens from Figma</li>\n <li>Sync to CSS variables</li>\n <li>Generate components</li>\n <li>Check token drift</li>\n </ul>\n </div>\n <div class=\"help-section\" data-team=\"ux\">\n <strong>UX Team</strong>\n <ul>\n <li>Add Figma files to project</li>\n <li>Run visual diff checks</li>\n <li>Review token consistency</li>\n <li>Validate components</li>\n </ul>\n </div>\n <div class=\"help-section\" data-team=\"qa\" style=\"display: none;\">\n <strong>QA Team</strong>\n <ul>\n <li>Define ESRE test cases</li>\n <li>Run component validation</li>\n <li>Review visual regressions</li>\n <li>Export audit logs</li>\n </ul>\n </div>\n <div class=\"help-section\" data-team=\"all\">\n <strong>Getting Started</strong>\n <ol>\n <li>Create a project</li>\n <li>Add Figma file key</li>\n <li>Extract &amp; sync tokens</li>\n <li>Use AI chat for help</li>\n </ol>\n </div>\n </div>\n </details>\n </div>\n <div class=\"sidebar__footer\">\n <ds-badge variant=\"outline\" dot=\"\">v0.8.0</ds-badge>\n </div>\n </aside>\n\n <!-- Header -->\n <header class=\"app-header\">\n <div class=\"app-header__project-selector\" id=\"project-selector-container\">\n <div class=\"project-selector\">\n <svg class=\"project-selector__icon\">\n \n \n \n </svg>\n <span class=\"project-selector__label\">Project:</span>\n \n \n \n test\n \n \n \n </div>\n </div>\n <div class=\"app-header__team-selector\">\n <label for=\"team-context-select\" class=\"sr-only\">Select team context</label>\n <select class=\"team-select\" id=\"team-context-select\" aria-label=\"Team context\">\n <option value=\"all\">All Teams</option>\n <option value=\"ui\">UI Team</option>\n <option value=\"ux\">UX Team</option>\n <option value=\"qa\">QA Team</option>\n </select>\n </div>\n <div class=\"app-header__actions\">\n <ds-button variant=\"ghost\" size=\"icon\" title=\"Toggle theme\" id=\"theme-toggle\" tabindex=\"0\" aria-label=\"Toggle dark/light theme\">\n <svg width=\"18\" height=\"18\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n <path d=\"M12 3v1m0 16v1m9-9h-1M4 12H3m15.364 6.364l-.707-.707M6.343 6.343l-.707-.707m12.728 0l-.707.707M6.343 17.657l-.707.707M16 12a4 4 0 1 1-8 0 4 4 0 0 1 8 0z\"></path>\n </svg>\n </ds-button>\n <ds-button variant=\"ghost\" size=\"icon\" title=\"Notifications\" tabindex=\"0\" aria-label=\"View notifications\">\n <svg width=\"18\" height=\"18\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n <path d=\"M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9\"></path>\n <path d=\"M10.3 21a1.94 1.94 0 0 0 3.4 0\"></path>\n </svg>\n </ds-button>\n <ds-button variant=\"ghost\" size=\"icon\" id=\"sidebar-toggle\" title=\"Toggle AI Assistant\" tabindex=\"0\" aria-label=\"Toggle AI Assistant sidebar\" aria-controls=\"ai-sidebar\" aria-expanded=\"true\">\n <svg width=\"18\" height=\"18\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n <path d=\"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\"></path>\n </svg>\n </ds-button>\n <div class=\"ds-avatar\" tabindex=\"0\" role=\"button\" aria-label=\"User profile menu\">\n <span>U</span>\n </div>\n </div>\n </header>\n\n <!-- Main Content Area -->\n <main class=\"app-main\">\n <div id=\"page-content\" class=\"app-content\">\n <div class=\"page-header\">\n <div class=\"flex items-center justify-between\">\n <div>\n <h1>Services</h1>\n <p class=\"text-muted\">8 tools available</p>\n </div>\n <input style=\"width: 200px;\" class=\"input\" placeholder=\"Search...\" id=\"toolSearch\" type=\"text\">\n </div>\n </div>\n\n <div class=\"tools-container\" id=\"toolsContainer\">\n \n <div data-category=\"Figma\" class=\"tools-category\">\n <div class=\"tools-category__header\">\n <span class=\"tools-category__icon\"><svg height=\"18\" width=\"18\"></svg></span>\n <span class=\"tools-category__name\">Figma</span>\n <span class=\"tools-category__count\">1</span>\n </div>\n <div class=\"tools-category__list\">\n \n <div data-action=\"executeTool\" data-category=\"Figma\" data-tool=\"extract_tokens\" class=\"tool-item\">\n <span class=\"tool-item__icon\">\ud83c\udfa8</span>\n <div class=\"tool-item__info\">\n <div class=\"tool-item__name\">extract tokens</div>\n <div class=\"tool-item__desc\">Extract design tokens from Figma file</div>\n </div>\n <span class=\"tool-item__params\">2p</span>\n <svg height=\"16\" width=\"16\" class=\"tool-item__action\"></svg>\n </div>\n \n </div>\n </div>\n \n <div data-category=\"Ingestion\" class=\"tools-category\">\n <div class=\"tools-category__header\">\n <span class=\"tools-category__icon\"><svg height=\"18\" width=\"18\"></svg></span>\n <span class=\"tools-category__name\">Ingestion</span>\n <span class=\"tools-category__count\">2</span>\n </div>\n <div class=\"tools-category__list\">\n \n <div data-action=\"executeTool\" data-category=\"Ingestion\" data-tool=\"export_tokens\" class=\"tool-item\">\n <span class=\"tool-item__icon\">\ud83d\udce4</span>\n <div class=\"tool-item__info\">\n <div class=\"tool-item__name\">export tokens</div>\n <div class=\"tool-item__desc\">Export tokens to specified format</div>\n </div>\n <span class=\"tool-item__params\">2p</span>\n <svg height=\"16\" width=\"16\" class=\"tool-item__action\"></svg>\n </div>\n \n <div data-action=\"executeTool\" data-category=\"Ingestion\" data-tool=\"validate_tokens\" class=\"tool-item\">\n <span class=\"tool-item__icon\">\u2713</span>\n <div class=\"tool-item__info\">\n <div class=\"tool-item__name\">validate tokens</div>\n <div class=\"tool-item__desc\">Validate token structure and values</div>\n </div>\n <span class=\"tool-item__params\">1p</span>\n <svg height=\"16\" width=\"16\" class=\"tool-item__action\"></svg>\n </div>\n \n </div>\n </div>\n \n <div data-category=\"Analysis\" class=\"tools-category\">\n <div class=\"tools-category__header\">\n <span class=\"tools-category__icon\"><svg height=\"18\" width=\"18\"></svg></span>\n <span class=\"tools-category__name\">Analysis</span>\n <span class=\"tools-category__count\">4</span>\n </div>\n <div class=\"tools-category__list\">\n \n <div data-action=\"executeTool\" data-category=\"Analysis\" data-tool=\"discover_project\" class=\"tool-item\">\n <span class=\"tool-item__icon\">\ud83d\udd0e</span>\n <div class=\"tool-item__info\">\n <div class=\"tool-item__name\">discover project</div>\n <div class=\"tool-item__desc\">Discover project structure and frameworks</div>\n </div>\n <span class=\"tool-item__params\">1p</span>\n <svg height=\"16\" width=\"16\" class=\"tool-item__action\"></svg>\n </div>\n \n <div data-action=\"executeTool\" data-category=\"Analysis\" data-tool=\"find_style_patterns\" class=\"tool-item\">\n <span class=\"tool-item__icon\">\ud83d\udcca</span>\n <div class=\"tool-item__info\">\n <div class=\"tool-item__name\">find style patterns</div>\n <div class=\"tool-item__desc\">Identify common style patterns</div>\n </div>\n <span class=\"tool-item__params\">1p</span>\n <svg height=\"16\" width=\"16\" class=\"tool-item__action\"></svg>\n </div>\n \n <div data-action=\"executeTool\" data-category=\"Analysis\" data-tool=\"analyze_style_values\" class=\"tool-item\">\n <span class=\"tool-item__icon\">\ud83d\udcc8</span>\n <div class=\"tool-item__info\">\n <div class=\"tool-item__name\">analyze style values</div>\n <div class=\"tool-item__desc\">Analyze style property values</div>\n </div>\n <span class=\"tool-item__params\">2p</span>\n <svg height=\"16\" width=\"16\" class=\"tool-item__action\"></svg>\n </div>\n \n <div data-action=\"executeTool\" data-category=\"Analysis\" data-tool=\"check_naming_consistency\" class=\"tool-item\">\n <span class=\"tool-item__icon\">\ud83c\udff7\ufe0f</span>\n <div class=\"tool-item__info\">\n <div class=\"tool-item__name\">check naming consistency</div>\n <div class=\"tool-item__desc\">Check component naming consistency</div>\n </div>\n <span class=\"tool-item__params\">1p</span>\n <svg height=\"16\" width=\"16\" class=\"tool-item__action\"></svg>\n </div>\n \n </div>\n </div>\n \n <div data-category=\"Activity\" class=\"tools-category\">\n <div class=\"tools-category__header\">\n <span class=\"tools-category__icon\"><svg height=\"18\" width=\"18\"></svg></span>\n <span class=\"tools-category__name\">Activity</span>\n <span class=\"tools-category__count\">1</span>\n </div>\n <div class=\"tools-category__list\">\n \n <div data-action=\"executeTool\" data-category=\"Activity\" data-tool=\"get_sync_history\" class=\"tool-item\">\n <span class=\"tool-item__icon\">\ud83d\udcdc</span>\n <div class=\"tool-item__info\">\n <div class=\"tool-item__name\">get sync history</div>\n <div class=\"tool-item__desc\">Get token sync history</div>\n </div>\n <span class=\"tool-item__params\">1p</span>\n <svg height=\"16\" width=\"16\" class=\"tool-item__action\"></svg>\n </div>\n \n </div>\n </div>\n \n </div>\n\n \n </div>\n\n <!-- Right Sidebar - AI Chat -->\n <aside class=\"app-sidebar\" id=\"ai-sidebar\">\n <ds-ai-chat></ds-ai-chat>\n </aside>\n </main>\n </div>\n\n <!-- Load Components -->\n <script type=\"module\">\n // Import theme manager first (loads saved theme from cookie)\n import themeManager from '/admin-ui/js/core/theme.js';\n\n // Import all components\n import '/admin-ui/js/components/ds-button.js';\n import '/admin-ui/js/components/ds-card.js';\n import '/admin-ui/js/components/ds-input.js';\n import '/admin-ui/js/components/ds-badge.js';\n import '/admin-ui/js/core/ai.js';\n\n // Import browser logger for debugging\n import '/admin-ui/js/core/browser-logger.js';\n\n // Import and initialize app\n import app from '/admin-ui/js/core/app.js';\n\n // Initialize when DOM is ready\n document.addEventListener('DOMContentLoaded', () => {\n app.init();\n\n // Setup theme toggle button\n const themeToggle = document.getElementById('theme-toggle');\n if (themeToggle) {\n themeToggle.addEventListener('click', () => {\n themeManager.toggle();\n });\n }\n\n // Setup team context selector\n const teamSelect = document.getElementById('team-context-select');\n const updateHelpSections = (team) => {\n document.querySelectorAll('.help-section').forEach(section => {\n const sectionTeam = section.dataset.team;\n section.style.display = (team === 'all' || sectionTeam === team || sectionTeam === 'all') ? '' : 'none';\n });\n };\n\n if (teamSelect) {\n const savedTeam = localStorage.getItem('dss_team_context') || 'all';\n teamSelect.value = savedTeam;\n updateHelpSections(savedTeam);\n\n teamSelect.addEventListener('change', (e) => {\n const team = e.target.value;\n localStorage.setItem('dss_team_context', team);\n updateHelpSections(team);\n window.dispatchEvent(new CustomEvent('team-context-changed', {\n detail: { team }\n }));\n });\n }\n\n // Setup AI sidebar toggle\n const sidebarToggle = document.getElementById('sidebar-toggle');\n const aiSidebar = document.getElementById('ai-sidebar');\n if (sidebarToggle && aiSidebar) {\n // Restore saved state\n const sidebarCollapsed = localStorage.getItem('dss_ai_sidebar_collapsed') === 'true';\n if (sidebarCollapsed) {\n aiSidebar.classList.add('collapsed');\n sidebarToggle.setAttribute('aria-expanded', 'false');\n }\n\n sidebarToggle.addEventListener('click', () => {\n const isCollapsed = aiSidebar.classList.toggle('collapsed');\n sidebarToggle.setAttribute('aria-expanded', !isCollapsed);\n localStorage.setItem('dss_ai_sidebar_collapsed', isCollapsed);\n });\n }\n });\n </script>\n\n\n<div id=\"notifications\" class=\"notification-container\"></div></body></html>",
"viewport": {
"width": 1403,
"height": 958,
"devicePixelRatio": 2
},
"title": "Design System Server"
}
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059967587,
"relativeTime": 180316,
"level": "log",
"category": "console",
"message": "%c\ud83d\udcad [ToolExecution] Preparing to execute extract_tokens color: #2196F3; font-weight: bold",
"data": {
"args": [
"%c\ud83d\udcad [ToolExecution] Preparing to execute extract_tokens",
"color: #2196F3; font-weight: bold"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059968625,
"relativeTime": 181354,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 70 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 70 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059968676,
"relativeTime": 181405,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1343.300000011921,
"transferSize": 443,
"encodedBodySize": 143,
"decodedBodySize": 143
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059969101,
"relativeTime": 181830,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 194.5,
"transferSize": 583,
"encodedBodySize": 283,
"decodedBodySize": 283
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059982491,
"relativeTime": 195220,
"level": "log",
"category": "console",
"message": "%c\ud83d\udcad [ToolExecution] Preparing to execute export_tokens color: #2196F3; font-weight: bold",
"data": {
"args": [
"%c\ud83d\udcad [ToolExecution] Preparing to execute export_tokens",
"color: #2196F3; font-weight: bold"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059994196,
"relativeTime": 206925,
"level": "log",
"category": "console",
"message": "%c\ud83d\udcad [ToolExecution] Preparing to execute validate_tokens color: #2196F3; font-weight: bold",
"data": {
"args": [
"%c\ud83d\udcad [ToolExecution] Preparing to execute validate_tokens",
"color: #2196F3; font-weight: bold"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059997294,
"relativeTime": 210023,
"level": "log",
"category": "console",
"message": "%c\ud83d\udcad [ToolExecution] Preparing to execute export_tokens color: #2196F3; font-weight: bold",
"data": {
"args": [
"%c\ud83d\udcad [ToolExecution] Preparing to execute export_tokens",
"color: #2196F3; font-weight: bold"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059998615,
"relativeTime": 211344,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 76 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 76 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059998667,
"relativeTime": 211396,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1337.5,
"transferSize": 443,
"encodedBodySize": 143,
"decodedBodySize": 143
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059999101,
"relativeTime": 211830,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 194.5,
"transferSize": 583,
"encodedBodySize": 283,
"decodedBodySize": 283
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765059999271,
"relativeTime": 212000,
"level": "log",
"category": "console",
"message": "%c\ud83d\udcad [ToolExecution] Preparing to execute validate_tokens color: #2196F3; font-weight: bold",
"data": {
"args": [
"%c\ud83d\udcad [ToolExecution] Preparing to execute validate_tokens",
"color: #2196F3; font-weight: bold"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765060029652,
"relativeTime": 242381,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 80 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 80 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765060029657,
"relativeTime": 242386,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 422.89999997615814,
"transferSize": 583,
"encodedBodySize": 283,
"decodedBodySize": 283
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765060029704,
"relativeTime": 242433,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1418.4000000059605,
"transferSize": 443,
"encodedBodySize": 143,
"decodedBodySize": 143
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765060059672,
"relativeTime": 272401,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 83 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 83 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765060059675,
"relativeTime": 272404,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 445,
"transferSize": 583,
"encodedBodySize": 283,
"decodedBodySize": 283
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765060059724,
"relativeTime": 272453,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1440.300000011921,
"transferSize": 443,
"encodedBodySize": 143,
"decodedBodySize": 143
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765060140440,
"relativeTime": 353169,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 195.40000000596046,
"transferSize": 583,
"encodedBodySize": 283,
"decodedBodySize": 283
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765060141623,
"relativeTime": 354352,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 87 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 87 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765060141675,
"relativeTime": 354404,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1380.6000000238419,
"transferSize": 443,
"encodedBodySize": 143,
"decodedBodySize": 143
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765060200443,
"relativeTime": 413172,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 195.90000000596046,
"transferSize": 583,
"encodedBodySize": 283,
"decodedBodySize": 283
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765060201661,
"relativeTime": 414390,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 90 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 90 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765060201712,
"relativeTime": 414441,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1418,
"transferSize": 443,
"encodedBodySize": 143,
"decodedBodySize": 143
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765060260500,
"relativeTime": 473229,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 254.40000000596046,
"transferSize": 583,
"encodedBodySize": 283,
"decodedBodySize": 283
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765060261482,
"relativeTime": 474211,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 93 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 93 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765060261533,
"relativeTime": 474262,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1238.7999999821186,
"transferSize": 443,
"encodedBodySize": 143,
"decodedBodySize": 143
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765060320450,
"relativeTime": 533179,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 209.60000002384186,
"transferSize": 583,
"encodedBodySize": 283,
"decodedBodySize": 283
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765060321517,
"relativeTime": 534246,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 96 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 96 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765060321569,
"relativeTime": 534298,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1280.1000000238419,
"transferSize": 443,
"encodedBodySize": 143,
"decodedBodySize": 143
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765060380447,
"relativeTime": 593176,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 195,
"transferSize": 583,
"encodedBodySize": 283,
"decodedBodySize": 283
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765060381592,
"relativeTime": 594321,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 99 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 99 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765060381643,
"relativeTime": 594372,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1343,
"transferSize": 443,
"encodedBodySize": 143,
"decodedBodySize": 143
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765060440438,
"relativeTime": 653167,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 193.30000001192093,
"transferSize": 583,
"encodedBodySize": 283,
"decodedBodySize": 283
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765060441493,
"relativeTime": 654222,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 102 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 102 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765060441545,
"relativeTime": 654274,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1251.0999999940395,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765060500444,
"relativeTime": 713173,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 195.90000000596046,
"transferSize": 583,
"encodedBodySize": 283,
"decodedBodySize": 283
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765060501459,
"relativeTime": 714188,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 105 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 105 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765060501512,
"relativeTime": 714241,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1213.699999988079,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765060560429,
"relativeTime": 773158,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 194.89999997615814,
"transferSize": 583,
"encodedBodySize": 283,
"decodedBodySize": 283
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765060561438,
"relativeTime": 774167,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 108 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 108 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765060561490,
"relativeTime": 774219,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1206.0999999940395,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765060620463,
"relativeTime": 833192,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 220.30000001192093,
"transferSize": 583,
"encodedBodySize": 283,
"decodedBodySize": 283
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765060621475,
"relativeTime": 834204,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 111 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 111 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765060621526,
"relativeTime": 834255,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1235.4000000059605,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765060680462,
"relativeTime": 893191,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 211.30000001192093,
"transferSize": 583,
"encodedBodySize": 283,
"decodedBodySize": 283
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765060681518,
"relativeTime": 894247,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 114 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 114 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765060681571,
"relativeTime": 894300,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1269.3999999761581,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765060740436,
"relativeTime": 953165,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 193.19999998807907,
"transferSize": 583,
"encodedBodySize": 283,
"decodedBodySize": 283
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765060741593,
"relativeTime": 954322,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 117 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 117 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765060741644,
"relativeTime": 954373,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1353.5999999940395,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765060800487,
"relativeTime": 1013216,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 210,
"transferSize": 583,
"encodedBodySize": 283,
"decodedBodySize": 283
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765060801514,
"relativeTime": 1014243,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 120 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 120 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765060801567,
"relativeTime": 1014296,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1239.5999999940395,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765060860424,
"relativeTime": 1073153,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 189.09999999403954,
"transferSize": 583,
"encodedBodySize": 283,
"decodedBodySize": 283
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765060861438,
"relativeTime": 1074167,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 123 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 123 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765060861491,
"relativeTime": 1074220,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1204.0999999940395,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765060920457,
"relativeTime": 1133186,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 215,
"transferSize": 583,
"encodedBodySize": 283,
"decodedBodySize": 283
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765060921484,
"relativeTime": 1134213,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 126 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 126 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765060921536,
"relativeTime": 1134265,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1243.0999999940395,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765060980470,
"relativeTime": 1193199,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 228.80000001192093,
"transferSize": 583,
"encodedBodySize": 283,
"decodedBodySize": 283
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765060981584,
"relativeTime": 1194313,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 129 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 129 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765060981636,
"relativeTime": 1194365,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1345,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765061040435,
"relativeTime": 1253164,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 191.30000001192093,
"transferSize": 583,
"encodedBodySize": 283,
"decodedBodySize": 283
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765061041703,
"relativeTime": 1254432,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 132 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 132 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765061041754,
"relativeTime": 1254483,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1461.800000011921,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765061100445,
"relativeTime": 1313174,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 191.7000000178814,
"transferSize": 583,
"encodedBodySize": 283,
"decodedBodySize": 283
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765061101506,
"relativeTime": 1314235,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 135 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 135 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765061101557,
"relativeTime": 1314286,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1254.1000000238419,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765061160459,
"relativeTime": 1373188,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 218.5,
"transferSize": 583,
"encodedBodySize": 283,
"decodedBodySize": 283
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765061161601,
"relativeTime": 1374330,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 138 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 138 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765061161652,
"relativeTime": 1374381,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1362.9000000059605,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765061220456,
"relativeTime": 1433185,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 215.2000000178814,
"transferSize": 583,
"encodedBodySize": 283,
"decodedBodySize": 283
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765061221597,
"relativeTime": 1434326,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 141 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 141 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765061221649,
"relativeTime": 1434378,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1358.5,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765061280439,
"relativeTime": 1493168,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 195.40000000596046,
"transferSize": 583,
"encodedBodySize": 283,
"decodedBodySize": 283
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765061281594,
"relativeTime": 1494323,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 144 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 144 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765061281646,
"relativeTime": 1494375,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1352.300000011921,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765061340438,
"relativeTime": 1553167,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 193.2000000178814,
"transferSize": 583,
"encodedBodySize": 283,
"decodedBodySize": 283
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765061341595,
"relativeTime": 1554324,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 147 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 147 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765061341647,
"relativeTime": 1554376,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1352.7999999821186,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765061400433,
"relativeTime": 1613162,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 191.69999998807907,
"transferSize": 583,
"encodedBodySize": 283,
"decodedBodySize": 283
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765061401601,
"relativeTime": 1614330,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 150 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 150 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765061401653,
"relativeTime": 1614382,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1361.6000000238419,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765061460434,
"relativeTime": 1673163,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 190.7000000178814,
"transferSize": 583,
"encodedBodySize": 283,
"decodedBodySize": 283
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765061461594,
"relativeTime": 1674323,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 153 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 153 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765061461646,
"relativeTime": 1674375,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1353.5,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765061520454,
"relativeTime": 1733183,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 211.69999998807907,
"transferSize": 583,
"encodedBodySize": 283,
"decodedBodySize": 283
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765061521660,
"relativeTime": 1734389,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 156 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 156 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765061521711,
"relativeTime": 1734440,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1421.0999999940395,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765061580882,
"relativeTime": 1793611,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 630.3000000119209,
"transferSize": 583,
"encodedBodySize": 283,
"decodedBodySize": 283
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765061581864,
"relativeTime": 1794593,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 159 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 159 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765061581916,
"relativeTime": 1794645,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1615.9000000059605,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765061640452,
"relativeTime": 1853181,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 196.7000000178814,
"transferSize": 583,
"encodedBodySize": 283,
"decodedBodySize": 283
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765061641578,
"relativeTime": 1854307,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 162 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 162 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765061641628,
"relativeTime": 1854357,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1324.300000011921,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765061700439,
"relativeTime": 1913168,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 181,
"transferSize": 583,
"encodedBodySize": 283,
"decodedBodySize": 283
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765061701577,
"relativeTime": 1914306,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 165 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 165 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765061701628,
"relativeTime": 1914357,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1321.699999988079,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765061760425,
"relativeTime": 1973154,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 184.5,
"transferSize": 583,
"encodedBodySize": 283,
"decodedBodySize": 283
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765061761584,
"relativeTime": 1974313,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 168 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 168 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765061761636,
"relativeTime": 1974365,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1346.1000000238419,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765061820428,
"relativeTime": 2033157,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 182.7999999821186,
"transferSize": 583,
"encodedBodySize": 283,
"decodedBodySize": 283
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765061821573,
"relativeTime": 2034302,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 171 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 171 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765061821624,
"relativeTime": 2034353,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1329.800000011921,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765061880453,
"relativeTime": 2093182,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 203.90000000596046,
"transferSize": 583,
"encodedBodySize": 283,
"decodedBodySize": 283
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765061881446,
"relativeTime": 2094175,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 174 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 174 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765061881498,
"relativeTime": 2094227,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1198.3999999761581,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765061940431,
"relativeTime": 2153160,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 189.40000000596046,
"transferSize": 583,
"encodedBodySize": 283,
"decodedBodySize": 283
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765061941605,
"relativeTime": 2154334,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 177 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 177 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765061941656,
"relativeTime": 2154385,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1364.7999999821186,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765062000429,
"relativeTime": 2213158,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 188.5,
"transferSize": 583,
"encodedBodySize": 283,
"decodedBodySize": 283
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765062001543,
"relativeTime": 2214272,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 180 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 180 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765062001595,
"relativeTime": 2214324,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1302.7999999821186,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765062060430,
"relativeTime": 2273159,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 184.09999999403954,
"transferSize": 584,
"encodedBodySize": 284,
"decodedBodySize": 284
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765062061541,
"relativeTime": 2274270,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 183 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 183 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765062061593,
"relativeTime": 2274322,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1299.4000000059605,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765062120428,
"relativeTime": 2333157,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 186.39999997615814,
"transferSize": 584,
"encodedBodySize": 284,
"decodedBodySize": 284
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765062121627,
"relativeTime": 2334356,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 186 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 186 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765062121679,
"relativeTime": 2334408,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1387.9000000059605,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765062180430,
"relativeTime": 2393159,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 180.7000000178814,
"transferSize": 584,
"encodedBodySize": 284,
"decodedBodySize": 284
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765062181547,
"relativeTime": 2394276,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 189 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 189 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765062181598,
"relativeTime": 2394327,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1300.5999999940395,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765062240420,
"relativeTime": 2453149,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 181.5,
"transferSize": 584,
"encodedBodySize": 284,
"decodedBodySize": 284
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765062241539,
"relativeTime": 2454268,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 192 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 192 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765062241591,
"relativeTime": 2454320,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1302.2999999821186,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765062300416,
"relativeTime": 2513145,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 181.5,
"transferSize": 584,
"encodedBodySize": 284,
"decodedBodySize": 284
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765062301546,
"relativeTime": 2514275,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 195 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 195 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765062301598,
"relativeTime": 2514327,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1311.5999999940395,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765062360422,
"relativeTime": 2573151,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 183,
"transferSize": 584,
"encodedBodySize": 284,
"decodedBodySize": 284
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765062361391,
"relativeTime": 2574120,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 198 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 198 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765062361444,
"relativeTime": 2574173,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1153.800000011921,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765062420423,
"relativeTime": 2633152,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 182.2000000178814,
"transferSize": 584,
"encodedBodySize": 284,
"decodedBodySize": 284
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765062421561,
"relativeTime": 2634290,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 201 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 201 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765062421613,
"relativeTime": 2634342,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1321.800000011921,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765062428732,
"relativeTime": 2641461,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 203 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 203 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765062428784,
"relativeTime": 2641513,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1457.5999999940395,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765062429088,
"relativeTime": 2641817,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 183.80000001192093,
"transferSize": 584,
"encodedBodySize": 284,
"decodedBodySize": 284
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765062459520,
"relativeTime": 2672249,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 292.40000000596046,
"transferSize": 584,
"encodedBodySize": 284,
"decodedBodySize": 284
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765062459533,
"relativeTime": 2672262,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 207 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 207 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765062459584,
"relativeTime": 2672313,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1305.5,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765062489525,
"relativeTime": 2702254,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 297.80000001192093,
"transferSize": 584,
"encodedBodySize": 284,
"decodedBodySize": 284
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765062489537,
"relativeTime": 2702266,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 210 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 210 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765062489588,
"relativeTime": 2702317,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1305,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765062540423,
"relativeTime": 2753152,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 185.30000001192093,
"transferSize": 584,
"encodedBodySize": 284,
"decodedBodySize": 284
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765062541559,
"relativeTime": 2754288,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 213 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 213 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765062541611,
"relativeTime": 2754340,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1322.800000011921,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765062600443,
"relativeTime": 2813172,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 199.90000000596046,
"transferSize": 584,
"encodedBodySize": 284,
"decodedBodySize": 284
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765062601560,
"relativeTime": 2814289,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 216 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 216 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765062601612,
"relativeTime": 2814341,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1318.8999999761581,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765062660426,
"relativeTime": 2873155,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 181.5,
"transferSize": 584,
"encodedBodySize": 284,
"decodedBodySize": 284
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765062661582,
"relativeTime": 2874311,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 219 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 219 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765062661632,
"relativeTime": 2874361,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1340,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765062720431,
"relativeTime": 2933160,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 180.90000000596046,
"transferSize": 584,
"encodedBodySize": 284,
"decodedBodySize": 284
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765062721548,
"relativeTime": 2934277,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 222 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 222 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765062721600,
"relativeTime": 2934329,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1300.7999999821186,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765062780447,
"relativeTime": 2993176,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 203.2999999821186,
"transferSize": 584,
"encodedBodySize": 284,
"decodedBodySize": 284
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765062781441,
"relativeTime": 2994170,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 225 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 225 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765062781493,
"relativeTime": 2994222,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1200.7999999821186,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765062840430,
"relativeTime": 3053159,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 186,
"transferSize": 584,
"encodedBodySize": 284,
"decodedBodySize": 284
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765062841613,
"relativeTime": 3054342,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 228 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 228 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765062841665,
"relativeTime": 3054394,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1369.2999999821186,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765062900446,
"relativeTime": 3113175,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 201.59999999403954,
"transferSize": 584,
"encodedBodySize": 284,
"decodedBodySize": 284
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765062901556,
"relativeTime": 3114285,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 231 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 231 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765062901607,
"relativeTime": 3114336,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1313.2000000178814,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765062915802,
"relativeTime": 3128531,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 196.7999999821186,
"transferSize": 584,
"encodedBodySize": 284,
"decodedBodySize": 284
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765062916912,
"relativeTime": 3129641,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 234 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 234 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765062916963,
"relativeTime": 3129692,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1307.7999999821186,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765062939528,
"relativeTime": 3152257,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 303.2000000178814,
"transferSize": 584,
"encodedBodySize": 284,
"decodedBodySize": 284
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765062939549,
"relativeTime": 3152278,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 237 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 237 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765062939602,
"relativeTime": 3152331,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1318.8999999761581,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765062969531,
"relativeTime": 3182260,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 304.40000000596046,
"transferSize": 584,
"encodedBodySize": 284,
"decodedBodySize": 284
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765062969543,
"relativeTime": 3182272,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 240 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 240 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765062969594,
"relativeTime": 3182323,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1312.9000000059605,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765062999615,
"relativeTime": 3212344,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 242 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 242 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765062999617,
"relativeTime": 3212346,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 390.80000001192093,
"transferSize": 584,
"encodedBodySize": 284,
"decodedBodySize": 284
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765062999666,
"relativeTime": 3212395,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1387.1000000238419,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765063029527,
"relativeTime": 3242256,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 303.30000001192093,
"transferSize": 584,
"encodedBodySize": 284,
"decodedBodySize": 284
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765063029546,
"relativeTime": 3242275,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 246 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 246 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765063029598,
"relativeTime": 3242327,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1318,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765063080428,
"relativeTime": 3293157,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 184.90000000596046,
"transferSize": 584,
"encodedBodySize": 284,
"decodedBodySize": 284
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765063081553,
"relativeTime": 3294282,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 249 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 249 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765063081605,
"relativeTime": 3294334,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1311,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765063091818,
"relativeTime": 3304547,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 185.89999997615814,
"transferSize": 584,
"encodedBodySize": 284,
"decodedBodySize": 284
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765063092940,
"relativeTime": 3305669,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 252 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 252 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765063092991,
"relativeTime": 3305720,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1312.199999988079,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765063119535,
"relativeTime": 3332264,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 308.09999999403954,
"transferSize": 584,
"encodedBodySize": 284,
"decodedBodySize": 284
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765063119547,
"relativeTime": 3332276,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 255 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 255 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765063119599,
"relativeTime": 3332328,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1316.300000011921,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765063149635,
"relativeTime": 3362364,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 257 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 257 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765063149641,
"relativeTime": 3362370,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 416.5,
"transferSize": 584,
"encodedBodySize": 284,
"decodedBodySize": 284
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765063149687,
"relativeTime": 3362416,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1404.5,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765063198729,
"relativeTime": 3411458,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 183.19999998807907,
"transferSize": 584,
"encodedBodySize": 284,
"decodedBodySize": 284
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765063199860,
"relativeTime": 3412589,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 261 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 261 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765063199912,
"relativeTime": 3412641,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1315.9000000059605,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765063209696,
"relativeTime": 3422425,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 470.09999999403954,
"transferSize": 584,
"encodedBodySize": 284,
"decodedBodySize": 284
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765063209716,
"relativeTime": 3422445,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 264 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 264 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765063209768,
"relativeTime": 3422497,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1487.4000000059605,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765063239550,
"relativeTime": 3452279,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 324.2999999821186,
"transferSize": 584,
"encodedBodySize": 284,
"decodedBodySize": 284
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765063239569,
"relativeTime": 3452298,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 267 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 267 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765063239621,
"relativeTime": 3452350,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1337.9000000059605,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765063320438,
"relativeTime": 3533167,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 186.2999999821186,
"transferSize": 584,
"encodedBodySize": 284,
"decodedBodySize": 284
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765063321668,
"relativeTime": 3534397,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 270 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 270 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765063321720,
"relativeTime": 3534449,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1419.5999999940395,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765063381053,
"relativeTime": 3593782,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 810.4000000059605,
"transferSize": 584,
"encodedBodySize": 284,
"decodedBodySize": 284
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765063382046,
"relativeTime": 3594775,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 273 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 273 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765063382097,
"relativeTime": 3594826,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1804.699999988079,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765063408631,
"relativeTime": 3621360,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 628.7999999821186,
"transferSize": 584,
"encodedBodySize": 284,
"decodedBodySize": 284
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765063409634,
"relativeTime": 3622363,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 276 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 276 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765063409685,
"relativeTime": 3622414,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1634.0999999940395,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765063419709,
"relativeTime": 3632438,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 482.5,
"transferSize": 584,
"encodedBodySize": 284,
"decodedBodySize": 284
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765063419725,
"relativeTime": 3632454,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 279 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 279 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765063419777,
"relativeTime": 3632506,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1493.7000000178814,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765063449546,
"relativeTime": 3662275,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 318.19999998807907,
"transferSize": 584,
"encodedBodySize": 284,
"decodedBodySize": 284
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765063449557,
"relativeTime": 3662286,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 282 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 282 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765063449610,
"relativeTime": 3662339,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1325.5999999940395,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765063495542,
"relativeTime": 3708271,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 183.69999998807907,
"transferSize": 584,
"encodedBodySize": 284,
"decodedBodySize": 284
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765063496618,
"relativeTime": 3709347,
"level": "log",
"category": "console",
"message": "%c\ud83d\udcad [ToolExecution] Preparing to execute export_tokens color: #2196F3; font-weight: bold",
"data": {
"args": [
"%c\ud83d\udcad [ToolExecution] Preparing to execute export_tokens",
"color: #2196F3; font-weight: bold"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765063496688,
"relativeTime": 3709417,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 286 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 286 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765063496739,
"relativeTime": 3709468,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1332.800000011921,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765063509538,
"relativeTime": 3722267,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 315.80000001192093,
"transferSize": 584,
"encodedBodySize": 284,
"decodedBodySize": 284
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765063509554,
"relativeTime": 3722283,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 289 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 289 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765063509604,
"relativeTime": 3722333,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1328.9000000059605,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765063539549,
"relativeTime": 3752278,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 322.7000000178814,
"transferSize": 584,
"encodedBodySize": 284,
"decodedBodySize": 284
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765063539570,
"relativeTime": 3752299,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 292 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 292 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765063539622,
"relativeTime": 3752351,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1338.5,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765063620424,
"relativeTime": 3833153,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 182.19999998807907,
"transferSize": 584,
"encodedBodySize": 284,
"decodedBodySize": 284
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765063621602,
"relativeTime": 3834331,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 295 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 295 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765063621653,
"relativeTime": 3834382,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1365.7999999821186,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765063680442,
"relativeTime": 3893171,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 198.5,
"transferSize": 584,
"encodedBodySize": 284,
"decodedBodySize": 284
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765063681570,
"relativeTime": 3894299,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 298 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 298 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765063681621,
"relativeTime": 3894350,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1327.2999999821186,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765063740442,
"relativeTime": 3953171,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 199.89999997615814,
"transferSize": 584,
"encodedBodySize": 284,
"decodedBodySize": 284
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765063741575,
"relativeTime": 3954304,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 301 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 301 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765063741626,
"relativeTime": 3954355,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1336.5,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765063800438,
"relativeTime": 4013167,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 194.19999998807907,
"transferSize": 584,
"encodedBodySize": 284,
"decodedBodySize": 284
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765063801641,
"relativeTime": 4014370,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 304 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 304 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765063801693,
"relativeTime": 4014422,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1399.2999999821186,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765063860424,
"relativeTime": 4073153,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 185.69999998807907,
"transferSize": 584,
"encodedBodySize": 284,
"decodedBodySize": 284
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765063861565,
"relativeTime": 4074294,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 307 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 307 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765063861616,
"relativeTime": 4074345,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1328.3999999761581,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765063920436,
"relativeTime": 4133165,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 197.19999998807907,
"transferSize": 584,
"encodedBodySize": 284,
"decodedBodySize": 284
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765063921630,
"relativeTime": 4134359,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 310 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 310 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765063921682,
"relativeTime": 4134411,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1393.800000011921,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765063980457,
"relativeTime": 4193186,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 204.80000001192093,
"transferSize": 584,
"encodedBodySize": 284,
"decodedBodySize": 284
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765063981592,
"relativeTime": 4194321,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 313 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 313 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765063981645,
"relativeTime": 4194374,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1341.9000000059605,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765064040442,
"relativeTime": 4253171,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 197.5,
"transferSize": 584,
"encodedBodySize": 284,
"decodedBodySize": 284
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765064041651,
"relativeTime": 4254380,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 316 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 316 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765064041703,
"relativeTime": 4254432,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1407.699999988079,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765064100424,
"relativeTime": 4313153,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 182.80000001192093,
"transferSize": 584,
"encodedBodySize": 284,
"decodedBodySize": 284
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765064101595,
"relativeTime": 4314324,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 319 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 319 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765064101647,
"relativeTime": 4314376,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1356.800000011921,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765064160429,
"relativeTime": 4373158,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 183.5,
"transferSize": 584,
"encodedBodySize": 284,
"decodedBodySize": 284
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765064161614,
"relativeTime": 4374343,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 322 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 322 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765064161665,
"relativeTime": 4374394,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1372.9000000059605,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765064220427,
"relativeTime": 4433156,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 186,
"transferSize": 584,
"encodedBodySize": 284,
"decodedBodySize": 284
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765064221572,
"relativeTime": 4434301,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 325 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 325 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765064221623,
"relativeTime": 4434352,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1335.3999999761581,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765064280434,
"relativeTime": 4493163,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 185.19999998807907,
"transferSize": 584,
"encodedBodySize": 284,
"decodedBodySize": 284
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765064281634,
"relativeTime": 4494363,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 328 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 328 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765064281686,
"relativeTime": 4494415,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1389.9000000059605,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765064340425,
"relativeTime": 4553154,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 181.7000000178814,
"transferSize": 584,
"encodedBodySize": 284,
"decodedBodySize": 284
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765064341594,
"relativeTime": 4554323,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 331 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 331 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765064341645,
"relativeTime": 4554374,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1353.4000000059605,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765064400443,
"relativeTime": 4613172,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 198.40000000596046,
"transferSize": 584,
"encodedBodySize": 284,
"decodedBodySize": 284
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765064401589,
"relativeTime": 4614318,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 334 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 334 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765064401640,
"relativeTime": 4614369,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1345.5,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765064460439,
"relativeTime": 4673168,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 200.09999999403954,
"transferSize": 584,
"encodedBodySize": 284,
"decodedBodySize": 284
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765064461600,
"relativeTime": 4674329,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 337 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 337 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765064461652,
"relativeTime": 4674381,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1363.9000000059605,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765064520430,
"relativeTime": 4733159,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 185.7000000178814,
"transferSize": 584,
"encodedBodySize": 284,
"decodedBodySize": 284
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765064521633,
"relativeTime": 4734362,
"level": "debug",
"category": "console",
"message": "[BrowserLogger] Synced 340 logs to server",
"data": {
"args": [
"[BrowserLogger] Synced 340 logs to server"
]
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765064521685,
"relativeTime": 4734414,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1393.5,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
}
],
"diagnostic": {
"sessionId": "session-1765059787271-kpn1auq3i",
"uptime": 4768864,
"totalLogs": 342,
"errorCount": 0,
"warnCount": 0,
"networkRequests": 204,
"memory": {
"usedJSHeapSize": 197265488,
"jsHeapSizeLimit": 4294967296,
"usagePercent": "4.59"
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36",
"recentErrors": [],
"recentNetworkRequests": [
{
"timestamp": 1765062061593,
"relativeTime": 2274322,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1299.4000000059605,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765062060430,
"relativeTime": 2273159,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 184.09999999403954,
"transferSize": 584,
"encodedBodySize": 284,
"decodedBodySize": 284
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765062001595,
"relativeTime": 2214324,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1302.7999999821186,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765062000429,
"relativeTime": 2213158,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/health",
"data": {
"url": "https://dss.overbits.luz.uy/health",
"initiatorType": "fetch",
"duration": 188.5,
"transferSize": 583,
"encodedBodySize": 283,
"decodedBodySize": 283
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
},
{
"timestamp": 1765061941656,
"relativeTime": 2154385,
"level": "network",
"category": "fetch",
"message": "FETCH https://dss.overbits.luz.uy/api/browser-logs",
"data": {
"url": "https://dss.overbits.luz.uy/api/browser-logs",
"initiatorType": "fetch",
"duration": 1364.7999999821186,
"transferSize": 444,
"encodedBodySize": 144,
"decodedBodySize": 144
},
"url": "https://dss.overbits.luz.uy/admin-ui/index.html#services",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
}
]
}
}