diff --git a/.gitignore b/.gitignore index d73a50c9..f9ed10ba 100644 --- a/.gitignore +++ b/.gitignore @@ -47,6 +47,10 @@ docker-compose.override.yml # Build output /admin/dist/ +# Core dumps +core.* +*/core.* + # MkDocs core binary /mkdocs/core diff --git a/.playwright-mcp/console-2026-03-11T04-08-16-370Z.log b/.playwright-mcp/console-2026-03-11T04-08-16-370Z.log new file mode 100644 index 00000000..ca1af6e1 --- /dev/null +++ b/.playwright-mcp/console-2026-03-11T04-08-16-370Z.log @@ -0,0 +1,2 @@ +[ 288ms] [ERROR] Access to resource at 'http://localhost:4002/api/docs-analytics/track' from origin 'http://localhost:4003' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. @ http://localhost:4003/docs/:2287 +[ 288ms] [ERROR] Failed to load resource: net::ERR_FAILED @ http://localhost:4002/api/docs-analytics/track:0 diff --git a/.playwright-mcp/console-2026-03-11T04-09-16-650Z.log b/.playwright-mcp/console-2026-03-11T04-09-16-650Z.log new file mode 100644 index 00000000..a64cf68a --- /dev/null +++ b/.playwright-mcp/console-2026-03-11T04-09-16-650Z.log @@ -0,0 +1,6 @@ +[ 92ms] [ERROR] Access to resource at 'http://localhost:4002/api/docs-analytics/track' from origin 'http://localhost:4003' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. @ http://localhost:4003/docs/:0 +[ 92ms] [ERROR] Failed to load resource: net::ERR_FAILED @ http://localhost:4002/api/docs-analytics/track:0 +[ 496039ms] [ERROR] Access to resource at 'http://localhost:4002/api/docs-analytics/track' from origin 'http://localhost:4003' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. @ http://localhost:4003/docs/:0 +[ 496039ms] [ERROR] Failed to load resource: net::ERR_FAILED @ http://localhost:4002/api/docs-analytics/track:0 +[ 498038ms] [ERROR] Access to resource at 'http://localhost:4002/api/docs-analytics/track' from origin 'http://localhost:4003' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. @ http://localhost:4003/docs/:0 +[ 498038ms] [ERROR] Failed to load resource: net::ERR_FAILED @ http://localhost:4002/api/docs-analytics/track:0 diff --git a/.playwright-mcp/console-2026-03-11T04-18-58-612Z.log b/.playwright-mcp/console-2026-03-11T04-18-58-612Z.log new file mode 100644 index 00000000..7ddb99e0 --- /dev/null +++ b/.playwright-mcp/console-2026-03-11T04-18-58-612Z.log @@ -0,0 +1,26 @@ +[ 121ms] [ERROR] Access to resource at 'http://localhost:4002/api/docs-analytics/track' from origin 'http://localhost:4003' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. @ http://localhost:4003/docs/:885 +[ 121ms] [ERROR] Failed to load resource: net::ERR_FAILED @ http://localhost:4002/api/docs-analytics/track:0 +[ 497669ms] [ERROR] Access to resource at 'http://localhost:4002/api/docs-analytics/track' from origin 'http://localhost:4003' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. @ http://localhost:4003/docs/#use-the-platform:2201 +[ 497669ms] [ERROR] Failed to load resource: net::ERR_FAILED @ http://localhost:4002/api/docs-analytics/track:0 +[ 499981ms] [ERROR] Access to resource at 'http://localhost:4002/api/docs-analytics/track' from origin 'http://localhost:4003' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. @ http://localhost:4003/docs/#use-the-platform:2302 +[ 499981ms] [ERROR] Failed to load resource: net::ERR_FAILED @ http://localhost:4002/api/docs-analytics/track:0 +[ 503949ms] [ERROR] Access to resource at 'http://localhost:4002/api/docs-analytics/track' from origin 'http://localhost:4003' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. @ http://localhost:4003/docs/#use-the-platform:0 +[ 503949ms] [ERROR] Failed to load resource: net::ERR_FAILED @ http://localhost:4002/api/docs-analytics/track:0 +[ 506409ms] [ERROR] Access to resource at 'http://localhost:4002/api/docs-analytics/track' from origin 'http://localhost:4003' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. @ http://localhost:4003/docs/#use-the-platform:2302 +[ 506409ms] [ERROR] Failed to load resource: net::ERR_FAILED @ http://localhost:4002/api/docs-analytics/track:0 +[ 510957ms] [ERROR] Access to resource at 'http://localhost:4002/api/docs-analytics/track' from origin 'http://localhost:4003' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. @ http://localhost:4003/docs/#use-the-platform:2302 +[ 510957ms] [ERROR] Failed to load resource: net::ERR_FAILED @ http://localhost:4002/api/docs-analytics/track:0 +[ 523501ms] [ERROR] Access to resource at 'http://localhost:4002/api/docs-analytics/track' from origin 'http://localhost:4003' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. @ http://localhost:4003/docs/#use-the-platform:2304 +[ 523501ms] [ERROR] Failed to load resource: net::ERR_FAILED @ http://localhost:4002/api/docs-analytics/track:0 +[ 534339ms] [ERROR] Access to resource at 'http://localhost:4002/api/docs-analytics/track' from origin 'http://localhost:4003' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. @ http://localhost:4003/docs/#use-the-platform:891 +[ 534339ms] [ERROR] Failed to load resource: net::ERR_FAILED @ http://localhost:4002/api/docs-analytics/track:0 +[ 536931ms] [ERROR] Access to resource at 'http://localhost:4002/api/docs-analytics/track' from origin 'http://localhost:4003' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. @ http://localhost:4003/docs/#use-the-platform:0 +[ 536931ms] [ERROR] Failed to load resource: net::ERR_FAILED @ http://localhost:4002/api/docs-analytics/track:0 +[ 543415ms] [ERROR] Access to resource at 'http://localhost:4002/api/docs-analytics/track' from origin 'http://localhost:4003' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. @ http://localhost:4003/docs/#use-the-platform:2312 +[ 543415ms] [ERROR] Failed to load resource: net::ERR_FAILED @ http://localhost:4002/api/docs-analytics/track:0 +[ 545948ms] [ERROR] Access to resource at 'http://localhost:4002/api/docs-analytics/track' from origin 'http://localhost:4003' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. @ http://localhost:4003/docs/#use-the-platform:2209 +[ 545948ms] [ERROR] Failed to load resource: net::ERR_FAILED @ http://localhost:4002/api/docs-analytics/track:0 +[ 552080ms] [ERROR] Access to resource at 'http://localhost:4002/api/docs-analytics/track' from origin 'http://localhost:4003' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. @ http://localhost:4003/docs/#use-the-platform:0 +[ 552080ms] [ERROR] Failed to load resource: net::ERR_FAILED @ http://localhost:4002/api/docs-analytics/track:0 +[ 554689ms] [ERROR] Access to resource at 'http://localhost:4002/api/docs-analytics/track' from origin 'http://localhost:4003' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. @ http://localhost:4003/docs/#use-the-platform:2313 +[ 554689ms] [ERROR] Failed to load resource: net::ERR_FAILED @ http://localhost:4002/api/docs-analytics/track:0 diff --git a/.playwright-mcp/console-2026-03-11T04-30-19-709Z.log b/.playwright-mcp/console-2026-03-11T04-30-19-709Z.log new file mode 100644 index 00000000..6e8d9a2a --- /dev/null +++ b/.playwright-mcp/console-2026-03-11T04-30-19-709Z.log @@ -0,0 +1,2 @@ +[ 101ms] [ERROR] Access to resource at 'http://localhost:4002/api/docs-analytics/track' from origin 'http://localhost:4003' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. @ http://localhost:4003/docs/:2313 +[ 101ms] [ERROR] Failed to load resource: net::ERR_FAILED @ http://localhost:4002/api/docs-analytics/track:0 diff --git a/.playwright-mcp/console-2026-03-11T04-32-23-770Z.log b/.playwright-mcp/console-2026-03-11T04-32-23-770Z.log new file mode 100644 index 00000000..0def7b62 --- /dev/null +++ b/.playwright-mcp/console-2026-03-11T04-32-23-770Z.log @@ -0,0 +1 @@ +[ 287ms] [ERROR] Failed to load resource: the server responded with a status of 404 (Not Found) @ http://localhost:4004/favicon.ico:0 diff --git a/.playwright-mcp/console-2026-03-11T04-32-35-003Z.log b/.playwright-mcp/console-2026-03-11T04-32-35-003Z.log new file mode 100644 index 00000000..f7c13818 --- /dev/null +++ b/.playwright-mcp/console-2026-03-11T04-32-35-003Z.log @@ -0,0 +1,2 @@ +[ 118ms] [ERROR] Access to resource at 'http://localhost:4002/api/docs-analytics/track' from origin 'http://localhost:4004' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. @ http://localhost:4004/docs/:2272 +[ 118ms] [ERROR] Failed to load resource: net::ERR_FAILED @ http://localhost:4002/api/docs-analytics/track:0 diff --git a/.playwright-mcp/console-2026-03-11T04-59-43-597Z.log b/.playwright-mcp/console-2026-03-11T04-59-43-597Z.log new file mode 100644 index 00000000..d29adff8 --- /dev/null +++ b/.playwright-mcp/console-2026-03-11T04-59-43-597Z.log @@ -0,0 +1,2 @@ +[ 49ms] [ERROR] Access to resource at 'http://localhost:4002/api/docs-analytics/track' from origin 'http://localhost:4004' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. @ http://localhost:4004/docs/:2101 +[ 49ms] [ERROR] Failed to load resource: net::ERR_FAILED @ http://localhost:4002/api/docs-analytics/track:0 diff --git a/.playwright-mcp/console-2026-03-11T05-12-37-187Z.log b/.playwright-mcp/console-2026-03-11T05-12-37-187Z.log new file mode 100644 index 00000000..6beb9b03 --- /dev/null +++ b/.playwright-mcp/console-2026-03-11T05-12-37-187Z.log @@ -0,0 +1,2 @@ +[ 52ms] [ERROR] Access to resource at 'http://localhost:4002/api/docs-analytics/track' from origin 'http://localhost:4004' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. @ http://localhost:4004/docs/getting-started/:2582 +[ 52ms] [ERROR] Failed to load resource: net::ERR_FAILED @ http://localhost:4002/api/docs-analytics/track:0 diff --git a/.playwright-mcp/console-2026-03-11T05-20-51-100Z.log b/.playwright-mcp/console-2026-03-11T05-20-51-100Z.log new file mode 100644 index 00000000..fb10505b --- /dev/null +++ b/.playwright-mcp/console-2026-03-11T05-20-51-100Z.log @@ -0,0 +1,2 @@ +[ 59ms] [ERROR] Access to resource at 'http://localhost:4002/api/docs-analytics/track' from origin 'http://localhost:4004' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. @ http://localhost:4004/docs/:2313 +[ 59ms] [ERROR] Failed to load resource: net::ERR_FAILED @ http://localhost:4002/api/docs-analytics/track:0 diff --git a/.playwright-mcp/console-2026-03-11T05-23-22-971Z.log b/.playwright-mcp/console-2026-03-11T05-23-22-971Z.log new file mode 100644 index 00000000..340f3357 --- /dev/null +++ b/.playwright-mcp/console-2026-03-11T05-23-22-971Z.log @@ -0,0 +1,2 @@ +[ 40ms] [ERROR] Access to resource at 'http://localhost:4002/api/docs-analytics/track' from origin 'http://localhost:4004' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. @ http://localhost:4004/docs/:2226 +[ 40ms] [ERROR] Failed to load resource: net::ERR_FAILED @ http://localhost:4002/api/docs-analytics/track:0 diff --git a/.playwright-mcp/console-2026-03-11T19-11-45-992Z.log b/.playwright-mcp/console-2026-03-11T19-11-45-992Z.log new file mode 100644 index 00000000..4063d5ed --- /dev/null +++ b/.playwright-mcp/console-2026-03-11T19-11-45-992Z.log @@ -0,0 +1,6 @@ +[ 269ms] ReferenceError: Missing element: expected "[data-md-component=header]" to be present + at j (http://localhost:4000/assets/javascripts/bundle.79ae519e.min.js:14:35799) + at Ce (http://localhost:4000/assets/javascripts/bundle.79ae519e.min.js:14:42721) + at http://localhost:4000/assets/javascripts/bundle.79ae519e.min.js:14:94068 + at http://localhost:4000/assets/javascripts/bundle.79ae519e.min.js:14:95391 +[ 418ms] [ERROR] Failed to load resource: the server responded with a status of 404 (Not Found) @ http://localhost:4000/favicon.ico:0 diff --git a/.playwright-mcp/console-2026-03-11T21-01-17-074Z.log b/.playwright-mcp/console-2026-03-11T21-01-17-074Z.log new file mode 100644 index 00000000..4a264c09 --- /dev/null +++ b/.playwright-mcp/console-2026-03-11T21-01-17-074Z.log @@ -0,0 +1,2 @@ +[ 339ms] [ERROR] Access to resource at 'http://localhost:4002/api/docs-analytics/track' from origin 'http://localhost:4004' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. @ http://localhost:4004/docs/:511 +[ 339ms] [ERROR] Failed to load resource: net::ERR_FAILED @ http://localhost:4002/api/docs-analytics/track:0 diff --git a/.playwright-mcp/console-2026-03-11T21-02-52-102Z.log b/.playwright-mcp/console-2026-03-11T21-02-52-102Z.log new file mode 100644 index 00000000..a8312120 --- /dev/null +++ b/.playwright-mcp/console-2026-03-11T21-02-52-102Z.log @@ -0,0 +1,2 @@ +[ 36ms] [ERROR] Access to resource at 'http://localhost:4002/api/docs-analytics/track' from origin 'http://localhost:4004' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. @ http://localhost:4004/docs/:2212 +[ 36ms] [ERROR] Failed to load resource: net::ERR_FAILED @ http://localhost:4002/api/docs-analytics/track:0 diff --git a/.playwright-mcp/console-2026-03-11T21-37-02-291Z.log b/.playwright-mcp/console-2026-03-11T21-37-02-291Z.log new file mode 100644 index 00000000..5193407b --- /dev/null +++ b/.playwright-mcp/console-2026-03-11T21-37-02-291Z.log @@ -0,0 +1,2 @@ +[ 64ms] [ERROR] Access to resource at 'http://localhost:4002/api/docs-analytics/track' from origin 'http://localhost:4004' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. @ http://localhost:4004/docs/:2315 +[ 64ms] [ERROR] Failed to load resource: net::ERR_FAILED @ http://localhost:4002/api/docs-analytics/track:0 diff --git a/.playwright-mcp/console-2026-03-11T21-38-54-104Z.log b/.playwright-mcp/console-2026-03-11T21-38-54-104Z.log new file mode 100644 index 00000000..d52e12db --- /dev/null +++ b/.playwright-mcp/console-2026-03-11T21-38-54-104Z.log @@ -0,0 +1,2 @@ +[ 189ms] [ERROR] Access to resource at 'http://localhost:4002/api/docs-analytics/track' from origin 'http://localhost:4004' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. @ http://localhost:4004/docs/:511 +[ 189ms] [ERROR] Failed to load resource: net::ERR_FAILED @ http://localhost:4002/api/docs-analytics/track:0 diff --git a/.playwright-mcp/console-2026-03-11T21-41-12-923Z.log b/.playwright-mcp/console-2026-03-11T21-41-12-923Z.log new file mode 100644 index 00000000..8e457cdc --- /dev/null +++ b/.playwright-mcp/console-2026-03-11T21-41-12-923Z.log @@ -0,0 +1,2 @@ +[ 150ms] [ERROR] Access to resource at 'http://localhost:4002/api/docs-analytics/track' from origin 'http://localhost:4004' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. @ http://localhost:4004/docs/:2315 +[ 151ms] [ERROR] Failed to load resource: net::ERR_FAILED @ http://localhost:4002/api/docs-analytics/track:0 diff --git a/.playwright-mcp/console-2026-03-11T21-45-32-431Z.log b/.playwright-mcp/console-2026-03-11T21-45-32-431Z.log new file mode 100644 index 00000000..0dca5648 --- /dev/null +++ b/.playwright-mcp/console-2026-03-11T21-45-32-431Z.log @@ -0,0 +1,14 @@ +[ 64ms] [ERROR] Access to resource at 'http://localhost:4002/api/docs-analytics/track' from origin 'http://localhost:4004' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. @ http://localhost:4004/docs/:893 +[ 65ms] [ERROR] Failed to load resource: net::ERR_FAILED @ http://localhost:4002/api/docs-analytics/track:0 +[ 926012ms] [ERROR] Access to resource at 'http://localhost:4002/api/docs-analytics/track' from origin 'http://localhost:4004' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. @ http://localhost:4004/docs/?_=1773266458361:933 +[ 926012ms] [ERROR] Failed to load resource: net::ERR_FAILED @ http://localhost:4002/api/docs-analytics/track:0 +[ 1794181ms] [ERROR] Access to resource at 'http://localhost:4002/api/docs-analytics/track' from origin 'http://localhost:4004' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. @ http://localhost:4004/docs/?_=1773267326487:2359 +[ 1794181ms] [ERROR] Failed to load resource: net::ERR_FAILED @ http://localhost:4002/api/docs-analytics/track:0 +[ 1857070ms] [ERROR] Access to resource at 'http://localhost:4002/api/docs-analytics/track' from origin 'http://localhost:4004' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. @ http://localhost:4004/docs/?v=1773267389387:2391 +[ 1857070ms] [ERROR] Failed to load resource: net::ERR_FAILED @ http://localhost:4002/api/docs-analytics/track:0 +[ 2018066ms] [ERROR] Access to resource at 'http://localhost:4002/api/docs-analytics/track' from origin 'http://localhost:4004' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. @ http://localhost:4004/docs/?r=1773267550383:2406 +[ 2018066ms] [ERROR] Failed to load resource: net::ERR_FAILED @ http://localhost:4002/api/docs-analytics/track:0 +[ 2115925ms] [ERROR] Access to resource at 'http://localhost:4002/api/docs-analytics/track' from origin 'http://localhost:4004' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. @ http://localhost:4004/docs/?final=1773267648297:571 +[ 2115925ms] [ERROR] Failed to load resource: net::ERR_FAILED @ http://localhost:4002/api/docs-analytics/track:0 +[ 2810593ms] [ERROR] Access to resource at 'http://localhost:4002/api/docs-analytics/track' from origin 'http://localhost:4004' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. @ http://localhost:4004/docs/?ff=1773268342997:961 +[ 2810593ms] [ERROR] Failed to load resource: net::ERR_FAILED @ http://localhost:4002/api/docs-analytics/track:0 diff --git a/.playwright-mcp/console-2026-03-12T04-52-24-612Z.log b/.playwright-mcp/console-2026-03-12T04-52-24-612Z.log new file mode 100644 index 00000000..c0ebab24 --- /dev/null +++ b/.playwright-mcp/console-2026-03-12T04-52-24-612Z.log @@ -0,0 +1,21 @@ +[ 1411ms] [ERROR] Failed to load resource: the server responded with a status of 404 (Not Found) @ http://localhost:3002/favicon.ico:0 +[ 11195ms] [ERROR] Failed to load resource: the server responded with a status of 500 (Internal Server Error) @ http://localhost:3002/api/dashboard/connectivity:0 +[ 11196ms] [ERROR] Failed to load resource: the server responded with a status of 500 (Internal Server Error) @ http://localhost:3002/api/services/status:0 +[ 11197ms] [ERROR] Failed to load resource: the server responded with a status of 500 (Internal Server Error) @ http://localhost:3002/api/dashboard/weather:0 +[ 11197ms] [ERROR] Failed to load resource: the server responded with a status of 500 (Internal Server Error) @ http://localhost:3002/api/docs-analytics/summary?days=30:0 +[ 11198ms] [ERROR] Failed to load resource: the server responded with a status of 500 (Internal Server Error) @ http://localhost:3002/api/dashboard/chat-summary:0 +[ 11199ms] [ERROR] Failed to load resource: the server responded with a status of 500 (Internal Server Error) @ http://localhost:3002/api/dashboard/rocketchat-stats:0 +[ 11199ms] [ERROR] Failed to load resource: the server responded with a status of 500 (Internal Server Error) @ http://localhost:3002/api/dashboard/upcoming-shifts:0 +[ 11200ms] [ERROR] Failed to load resource: the server responded with a status of 500 (Internal Server Error) @ http://localhost:3002/api/jitsi/meetings:0 +[ 11201ms] [ERROR] Failed to load resource: the server responded with a status of 500 (Internal Server Error) @ http://localhost:3002/api/influence/effectiveness/overview:0 +[ 11201ms] [ERROR] Failed to load resource: the server responded with a status of 500 (Internal Server Error) @ http://localhost:3002/api/dashboard/top-videos:0 +[ 11203ms] [ERROR] Failed to load resource: the server responded with a status of 500 (Internal Server Error) @ http://localhost:3002/api/dashboard/recent-signups:0 +[ 11204ms] [ERROR] Failed to load resource: the server responded with a status of 500 (Internal Server Error) @ http://localhost:3002/api/dashboard/recent-comments:0 +[ 11205ms] [ERROR] Failed to load resource: the server responded with a status of 500 (Internal Server Error) @ http://localhost:3002/api/listmonk/stats:0 +[ 11206ms] [ERROR] Failed to load resource: the server responded with a status of 500 (Internal Server Error) @ http://localhost:3002/api/dashboard/listmonk-campaigns:0 +[ 11206ms] [ERROR] Failed to load resource: the server responded with a status of 500 (Internal Server Error) @ http://localhost:3002/api/listmonk:0 +[ 11207ms] [ERROR] Failed to load resource: the server responded with a status of 500 (Internal Server Error) @ http://localhost:3002/api/observability/alerts:0 +[ 11208ms] [ERROR] Failed to load resource: the server responded with a status of 500 (Internal Server Error) @ http://localhost:3002/api/payments/admin/dashboard:0 +[ 11209ms] [ERROR] Failed to load resource: the server responded with a status of 500 (Internal Server Error) @ http://localhost:3002/api/dashboard/gitea-activity:0 +[ 11209ms] [ERROR] Failed to load resource: the server responded with a status of 500 (Internal Server Error) @ http://localhost:3002/api/dashboard/vaultwarden-adoption:0 +[ 11210ms] [ERROR] Failed to load resource: the server responded with a status of 500 (Internal Server Error) @ http://localhost:3002/api/map/canvass/analytics/cuts:0 diff --git a/.playwright-mcp/console-2026-03-12T04-53-50-505Z.log b/.playwright-mcp/console-2026-03-12T04-53-50-505Z.log new file mode 100644 index 00000000..16933e53 --- /dev/null +++ b/.playwright-mcp/console-2026-03-12T04-53-50-505Z.log @@ -0,0 +1,8 @@ +[ 788ms] [ERROR] Failed to load resource: the server responded with a status of 500 (Internal Server Error) @ http://localhost:3002/api/auth/me:0 +[ 789ms] [ERROR] Failed to load resource: the server responded with a status of 500 (Internal Server Error) @ http://localhost:3002/api/settings:0 +[ 791ms] [ERROR] Unexpected auth error: AxiosError: Request failed with status code 500 + at settle (http://localhost:3002/node_modules/.vite/deps/axios.js?v=c83de56d:1281:12) + at XMLHttpRequest.onloadend (http://localhost:3002/node_modules/.vite/deps/axios.js?v=c83de56d:1638:7) + at Axios.request (http://localhost:3002/node_modules/.vite/deps/axios.js?v=c83de56d:2255:41) + at async Object.fetchMe (http://localhost:3002/src/stores/auth.store.ts:101:28) + at async hydrate (http://localhost:3002/src/stores/auth.store.ts:118:11) @ http://localhost:3002/src/stores/auth.store.ts:105 diff --git a/.playwright-mcp/console-2026-03-12T05-00-21-925Z.log b/.playwright-mcp/console-2026-03-12T05-00-21-925Z.log new file mode 100644 index 00000000..c2cc65eb --- /dev/null +++ b/.playwright-mcp/console-2026-03-12T05-00-21-925Z.log @@ -0,0 +1,30 @@ +[ 960624ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://localhost:3002/api/dashboard/summary:0 +[ 1920622ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://localhost:3002/api/dashboard/summary:0 +[ 2880624ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://localhost:3002/api/dashboard/summary:0 +[ 3840624ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://localhost:3002/api/dashboard/summary:0 +[ 4800623ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://localhost:3002/api/dashboard/summary:0 +[ 5760623ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://localhost:3002/api/dashboard/summary:0 +[ 6720616ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://localhost:3002/api/dashboard/summary:0 +[ 7680622ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://localhost:3002/api/dashboard/summary:0 +[ 8640625ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://localhost:3002/api/dashboard/summary:0 +[ 9600615ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://localhost:3002/api/dashboard/summary:0 +[10560615ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://localhost:3002/api/dashboard/summary:0 +[11520625ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://localhost:3002/api/dashboard/summary:0 +[12480623ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://localhost:3002/api/dashboard/summary:0 +[13440615ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://localhost:3002/api/dashboard/summary:0 +[14400616ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://localhost:3002/api/dashboard/summary:0 +[15360616ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://localhost:3002/api/dashboard/summary:0 +[16320615ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://localhost:3002/api/dashboard/summary:0 +[17280618ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://localhost:3002/api/dashboard/summary:0 +[18240616ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://localhost:3002/api/dashboard/summary:0 +[19200622ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://localhost:3002/api/dashboard/summary:0 +[20160621ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://localhost:3002/api/dashboard/summary:0 +[21120618ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://localhost:3002/api/dashboard/summary:0 +[22080623ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://localhost:3002/api/dashboard/summary:0 +[23040622ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://localhost:3002/api/dashboard/summary:0 +[24000616ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://localhost:3002/api/dashboard/summary:0 +[24960616ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://localhost:3002/api/dashboard/summary:0 +[25920615ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://localhost:3002/api/dashboard/summary:0 +[26880613ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://localhost:3002/api/dashboard/summary:0 +[27840614ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://localhost:3002/api/dashboard/summary:0 +[28800615ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://localhost:3002/api/dashboard/summary:0 diff --git a/.playwright-mcp/console-2026-03-12T13-15-19-805Z.log b/.playwright-mcp/console-2026-03-12T13-15-19-805Z.log new file mode 100644 index 00000000..a0a05f8f --- /dev/null +++ b/.playwright-mcp/console-2026-03-12T13-15-19-805Z.log @@ -0,0 +1,2 @@ +[ 92ms] [ERROR] Access to resource at 'http://localhost:4002/api/docs-analytics/track' from origin 'http://localhost:4003' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. @ http://localhost:4003/docs/admin/dashboard/:1574 +[ 92ms] [ERROR] Failed to load resource: net::ERR_FAILED @ http://localhost:4002/api/docs-analytics/track:0 diff --git a/.playwright-mcp/console-2026-03-12T13-20-20-354Z.log b/.playwright-mcp/console-2026-03-12T13-20-20-354Z.log new file mode 100644 index 00000000..31622ffa --- /dev/null +++ b/.playwright-mcp/console-2026-03-12T13-20-20-354Z.log @@ -0,0 +1,44 @@ +[ 1044ms] [ERROR] Failed to load resource: the server responded with a status of 404 (Not Found) @ http://localhost:3002/favicon.ico:0 +[ 1045ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://localhost:3002/api/auth/me:0 +[ 957294ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://localhost:3002/api/dashboard/summary:0 +[ 1915502ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://localhost:3002/api/dashboard/summary:0 +[ 2875494ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://localhost:3002/api/dashboard/summary:0 +[ 3835503ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://localhost:3002/api/dashboard/summary:0 +[ 4795505ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://localhost:3002/api/dashboard/summary:0 +[ 5755494ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://localhost:3002/api/dashboard/summary:0 +[ 6715495ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://localhost:3002/api/dashboard/summary:0 +[ 7675495ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://localhost:3002/api/dashboard/summary:0 +[ 8635495ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://localhost:3002/api/dashboard/summary:0 +[ 9595539ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://localhost:3002/api/dashboard/summary:0 +[10555496ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://localhost:3002/api/dashboard/summary:0 +[11515504ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://localhost:3002/api/dashboard/summary:0 +[12475494ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://localhost:3002/api/dashboard/summary:0 +[13435504ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://localhost:3002/api/dashboard/summary:0 +[14395501ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://localhost:3002/api/dashboard/summary:0 +[15355503ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://localhost:3002/api/dashboard/summary:0 +[16315505ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://localhost:3002/api/dashboard/summary:0 +[17275496ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://localhost:3002/api/dashboard/summary:0 +[18235494ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://localhost:3002/api/dashboard/summary:0 +[19195496ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://localhost:3002/api/dashboard/summary:0 +[20155502ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://localhost:3002/api/dashboard/summary:0 +[21115501ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://localhost:3002/api/dashboard/summary:0 +[22075494ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://localhost:3002/api/dashboard/summary:0 +[23035502ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://localhost:3002/api/dashboard/summary:0 +[23995496ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://localhost:3002/api/dashboard/summary:0 +[24955494ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://localhost:3002/api/dashboard/summary:0 +[25915495ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://localhost:3002/api/dashboard/summary:0 +[26875500ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://localhost:3002/api/dashboard/summary:0 +[27835504ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://localhost:3002/api/dashboard/summary:0 +[28795505ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://localhost:3002/api/dashboard/summary:0 +[29755503ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://localhost:3002/api/dashboard/summary:0 +[30715505ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://localhost:3002/api/dashboard/summary:0 +[31675500ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://localhost:3002/api/dashboard/summary:0 +[32635503ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://localhost:3002/api/dashboard/summary:0 +[33595504ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://localhost:3002/api/dashboard/summary:0 +[34555501ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://localhost:3002/api/dashboard/summary:0 +[35515495ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://localhost:3002/api/dashboard/summary:0 +[36475494ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://localhost:3002/api/dashboard/summary:0 +[37435493ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://localhost:3002/api/dashboard/summary:0 +[38395495ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://localhost:3002/api/dashboard/summary:0 +[39355494ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://localhost:3002/api/dashboard/summary:0 +[40315488ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://localhost:3002/api/dashboard/summary:0 diff --git a/.playwright-mcp/console-2026-03-13T00-33-00-576Z.log b/.playwright-mcp/console-2026-03-13T00-33-00-576Z.log new file mode 100644 index 00000000..45d513d0 --- /dev/null +++ b/.playwright-mcp/console-2026-03-13T00-33-00-576Z.log @@ -0,0 +1 @@ +[ 915ms] [ERROR] Failed to load resource: the server responded with a status of 404 (Not Found) @ http://localhost:3002/favicon.ico:0 diff --git a/.playwright-mcp/console-2026-03-13T00-35-31-307Z.log b/.playwright-mcp/console-2026-03-13T00-35-31-307Z.log new file mode 100644 index 00000000..d1517748 --- /dev/null +++ b/.playwright-mcp/console-2026-03-13T00-35-31-307Z.log @@ -0,0 +1,194 @@ +[ 719376ms] [ERROR] Failed to load resource: the server responded with a status of 401 (Unauthorized) @ http://localhost:3002/api/auth/me:0 +[ 949197ms] [ERROR] ReferenceError: MeetingAgendaPage is not defined + at App (http://localhost:3002/src/App.tsx?t=1773363079750:663:127) + at renderWithHooks (http://localhost:3002/node_modules/.vite/deps/chunk-2NI7C5SJ.js?v=c83de56d:3520:25) + at updateFunctionComponent (http://localhost:3002/node_modules/.vite/deps/chunk-2NI7C5SJ.js?v=c83de56d:5151:19) + at beginWork (http://localhost:3002/node_modules/.vite/deps/chunk-2NI7C5SJ.js?v=c83de56d:5762:18) + at performUnitOfWork (http://localhost:3002/node_modules/.vite/deps/chunk-2NI7C5SJ.js?v=c83de56d:8567:18) + at workLoopSync (http://localhost:3002/node_modules/.vite/deps/chunk-2NI7C5SJ.js?v=c83de56d:8465:41) + at renderRootSync (http://localhost:3002/node_modules/.vite/deps/chunk-2NI7C5SJ.js?v=c83de56d:8449:11) + at performWorkOnRoot (http://localhost:3002/node_modules/.vite/deps/chunk-2NI7C5SJ.js?v=c83de56d:8124:44) + at performSyncWorkOnRoot (http://localhost:3002/node_modules/.vite/deps/chunk-2NI7C5SJ.js?v=c83de56d:9134:7) + at flushSyncWorkAcrossRoots_impl (http://localhost:3002/node_modules/.vite/deps/chunk-2NI7C5SJ.js?v=c83de56d:9042:153) @ http://localhost:3002/node_modules/.vite/deps/chunk-2NI7C5SJ.js?v=c83de56d:4778 +[ 953711ms] [ERROR] Failed to load resource: the server responded with a status of 500 (Internal Server Error) @ http://localhost:3002/src/App.tsx?t=1773363084913:0 +[ 1676461ms] [ERROR] WebSocket connection to 'ws://localhost:3002/' failed: Error during WebSocket handshake: net::ERR_CONNECTION_RESET @ http://localhost:3002/@vite/client:1034 +[ 1677465ms] [ERROR] WebSocket connection to 'ws://localhost:3002/' failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED @ http://localhost:3002/@vite/client:1034 +[ 1678466ms] [ERROR] WebSocket connection to 'ws://localhost:3002/' failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED @ http://localhost:3002/@vite/client:1034 +[ 1679810ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/ListmonkPage.tsx:0 +[ 1679810ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/LandingPagesPage.tsx:0 +[ 1679815ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/DocsPage.tsx:0 +[ 1679815ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/MkDocsSettingsPage.tsx:0 +[ 1679815ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/CodeEditorPage.tsx:0 +[ 1679815ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/NocoDBPage.tsx:0 +[ 1679815ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/N8nPage.tsx:0 +[ 1679815ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/GiteaPage.tsx:0 +[ 1679815ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/MailHogPage.tsx:0 +[ 1679815ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/MiniQRPage.tsx:0 +[ 1679815ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/ExcalidrawPage.tsx:0 +[ 1679815ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/VaultwardenPage.tsx:0 +[ 1679815ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/RocketChatPage.tsx:0 +[ 1679815ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/GancioPage.tsx:0 +[ 1679816ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/JitsiMeetPage.tsx:0 +[ 1679816ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/SettingsPage.tsx:0 +[ 1679816ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/NavigationSettingsPage.tsx:0 +[ 1679816ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/PangolinPage.tsx:0 +[ 1679816ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/ObservabilityPage.tsx:0 +[ 1679816ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/DocsAnalyticsPage.tsx:0 +[ 1679816ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/DocsCommentsPage.tsx:0 +[ 1679816ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/payments/PaymentsDashboardPage.tsx:0 +[ 1679816ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/payments/SubscribersPage.tsx:0 +[ 1679816ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/payments/ProductsPage.tsx:0 +[ 1679816ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/payments/DonationsPage.tsx:0 +[ 1679818ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/payments/DonationPagesPage.tsx:0 +[ 1679818ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/payments/PlansPage.tsx:0 +[ 1679818ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/payments/PaymentSettingsPage.tsx:0 +[ 1679818ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/media/LibraryPage.tsx:0 +[ 1679818ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/media/AnalyticsDashboardPage.tsx:0 +[ 1679818ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/media/MediaJobsPage.tsx:0 +[ 1679818ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/media/CommentModerationPage.tsx:0 +[ 1679818ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/media/GalleryAdsPage.tsx:0 +[ 1679819ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/media/AdAnalyticsDashboardPage.tsx:0 +[ 1679819ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/influence/CampaignModerationPage.tsx:0 +[ 1679819ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/influence/CampaignEffectivenessPage.tsx:0 +[ 1679819ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/public/LandingPage.tsx:0 +[ 1679819ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/public/PagesIndexPage.tsx:0 +[ 1679820ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/public/EventsPage.tsx:0 +[ 1679820ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/public/HomePage.tsx:0 +[ 1679820ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/public/CampaignsListPage.tsx:0 +[ 1679820ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/public/CampaignPage.tsx:0 +[ 1679820ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/public/CreateCampaignPage.tsx:0 +[ 1679820ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/public/MyCampaignsPage.tsx:0 +[ 1679820ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/public/ResponseWallPage.tsx:0 +[ 1679820ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/public/MapPage.tsx:0 +[ 1679820ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/public/ShiftsPage.tsx:0 +[ 1679820ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/public/MediaGalleryPage.tsx:0 +[ 1679820ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/public/ShortsPage.tsx:0 +[ 1679820ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/public/MediaViewerPage.tsx:0 +[ 1679820ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/public/PlaylistBrowsePage.tsx:0 +[ 1679820ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/public/PlaylistViewerPage.tsx:0 +[ 1679820ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/media/PlaylistManagementPage.tsx:0 +[ 1679820ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/public/MyStatsPage.tsx:0 +[ 1679820ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/public/MySettingsPage.tsx:0 +[ 1679821ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/volunteer/VolunteerChatPage.tsx:0 +[ 1679821ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/public/PricingPage.tsx:0 +[ 1679821ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/public/ShopPage.tsx:0 +[ 1679821ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/public/ProductDetailPage.tsx:0 +[ 1679821ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/public/PlanDetailPage.tsx:0 +[ 1679821ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/public/DonatePage.tsx:0 +[ 1679821ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/public/DonationPagesListPage.tsx:0 +[ 1679821ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/public/PaymentSuccessPage.tsx:0 +[ 1679824ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/volunteer/MyActivityPage.tsx:0 +[ 1679824ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/volunteer/VolunteerShiftsPage.tsx:0 +[ 1679824ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/volunteer/MyRoutesPage.tsx:0 +[ 1679824ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/volunteer/VolunteerMapPage.tsx:0 +[ 1679824ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/volunteer/FriendsPage.tsx:0 +[ 1679824ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/volunteer/SocialProfilePage.tsx:0 +[ 1679824ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/volunteer/NotificationsPage.tsx:0 +[ 1679824ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/volunteer/SocialFeedPage.tsx:0 +[ 1679824ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/volunteer/DiscoverPage.tsx:0 +[ 1679825ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/volunteer/GroupDetailPage.tsx:0 +[ 1679825ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/volunteer/AchievementsPage.tsx:0 +[ 1679825ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/types/api.ts:0 +[ 1679825ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/utils/roles.ts:0 +[ 1679825ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/public/QuickJoinPage.tsx:0 +[ 1679825ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/VerifyEmailPage.tsx:0 +[ 1679825ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/ResetPasswordPage.tsx:0 +[ 1679825ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/sms/SmsDashboardPage.tsx:0 +[ 1679825ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/sms/SmsContactsPage.tsx:0 +[ 1679825ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/sms/SmsCampaignsPage.tsx:0 +[ 1679825ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/sms/SmsConversationsPage.tsx:0 +[ 1679825ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/sms/SmsTemplatesPage.tsx:0 +[ 1679825ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/sms/SmsSetupPage.tsx:0 +[ 1679825ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/PeoplePage.tsx:0 +[ 1679825ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/public/ContactProfilePage.tsx:0 +[ 1679825ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/social/SocialDashboardPage.tsx:0 +[ 1679825ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/social/SocialGraphPage.tsx:0 +[ 1679825ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/social/SocialModerationPage.tsx:0 +[ 1679825ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/social/ReferralAdminPage.tsx:0 +[ 1679825ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/social/SpotlightAdminPage.tsx:0 +[ 1679825ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/social/ChallengesAdminPage.tsx:0 +[ 1679825ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/influence/ImpactStoriesPage.tsx:0 +[ 1679826ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/volunteer/ReferralsPage.tsx:0 +[ 1679826ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/volunteer/ChallengesPage.tsx:0 +[ 1679826ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/volunteer/ChallengeDetailPage.tsx:0 +[ 1679826ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/public/WallOfFamePage.tsx:0 +[ 1679827ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/public/MeetingJoinPage.tsx:0 +[ 1679827ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/MeetingPlannerPage.tsx:0 +[ 1679827ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/MeetingAgendaPage.tsx:0 +[ 1679827ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/ActionItemsPage.tsx:0 +[ 1679827ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/public/SchedulingPollPage.tsx:0 +[ 1679827ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/public/PollsListPage.tsx:0 +[ 1679827ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/JitsiAuthPage.tsx:0 +[ 1679827ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/SchedulingCalendarPage.tsx:0 +[ 1679827ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/AdminCalendarViewPage.tsx:0 +[ 1679827ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/events/TicketedEventsPage.tsx:0 +[ 1679828ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/events/EventDetailPage.tsx:0 +[ 1679828ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/events/CheckInScannerPage.tsx:0 +[ 1679828ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/public/TicketedEventDetailPage.tsx:0 +[ 1679828ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/public/TicketConfirmationPage.tsx:0 +[ 1679828ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/volunteer/MyTicketsPage.tsx:0 +[ 1679828ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/volunteer/MyCalendarPage.tsx:0 +[ 1679828ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/volunteer/SharedCalendarsPage.tsx:0 +[ 1679829ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/volunteer/SharedCalendarViewPage.tsx:0 +[ 1679829ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/volunteer/FriendCalendarPage.tsx:0 +[ 1679829ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/NotFoundPage.tsx:0 +[ 1679829ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/components/command-palette/CommandPalette.tsx:0 +[ 1679829ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/lib/api.ts:0 +[ 1679829ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/components/VolunteerFooterNav.tsx:0 +[ 1679829ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/components/PublicNavBar.tsx:0 +[ 1679829ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/hooks/useSSE.ts:0 +[ 1679829ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/hooks/useLocalStorage.ts:0 +[ 1679829ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/lib/service-url.ts:0 +[ 1679829ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/lib/nav-defaults.ts:0 +[ 1679829ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/stores/command-palette.store.ts:0 +[ 1679829ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/stores/favorites.store.ts:0 +[ 1679829ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/utils/menu-items.ts:0 +[ 1679829ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/components/chat/RocketChatWidget.tsx:0 +[ 1679829ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/components/media/MediaSidebar.tsx:0 +[ 1679830ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/components/media/MediaBottomNav.tsx:0 +[ 1679830ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/components/media/ChatNotificationToast.tsx:0 +[ 1679831ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/components/media/chatbar/ChatBarContext.tsx:0 +[ 1679831ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/components/media/chatbar/ChatBar.tsx:0 +[ 1679831ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/hooks/useChatNotifications.ts:0 +[ 1679831ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/utils/color.ts:0 +[ 1679831ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/components/AuthModal.tsx:0 +[ 1679831ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/components/public/NewsletterSignup.tsx:0 +[ 1679831ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/pages/CampaignEmailsDrawer.tsx:0 +[ 1679831ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/components/canvass/ExportContactsModal.tsx:0 +[ 1679831ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/components/QrCodeModal.tsx:0 +[ 1679831ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/components/media/VideoPickerModal.tsx:0 +[ 1679831ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/components/dashboard/SystemGauges.tsx:0 +[ 1679831ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/components/dashboard/MiniDonutChart.tsx:0 +[ 1679831ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/components/dashboard/RequestTrafficChart.tsx:0 +[ 1679831ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/components/dashboard/LatencyBandsChart.tsx:0 +[ 1679831ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/components/dashboard/ContainerPopover.tsx:0 +[ 1679831ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/components/dashboard/ContainerMemoryChart.tsx:0 +[ 1679831ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/components/dashboard/ActivityFeedCard.tsx:0 +[ 1679831ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/components/dashboard/TodayEventsCard.tsx:0 +[ 1679832ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/components/dashboard/ChatNotifierCard.tsx:0 +[ 1679832ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/components/dashboard/TopVideosCard.tsx:0 +[ 1679832ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/components/dashboard/RecentCommentsCard.tsx:0 +[ 1679832ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/components/dashboard/DocsAnalyticsCard.tsx:0 +[ 1679832ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/components/dashboard/UpcomingShiftsCard.tsx:0 +[ 1679832ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/components/dashboard/MyActionItemsCard.tsx:0 +[ 1679832ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/components/dashboard/CampaignEffectivenessCard.tsx:0 +[ 1679832ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/components/dashboard/RecentSignupsCard.tsx:0 +[ 1679832ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/components/dashboard/NewsletterStatsCard.tsx:0 +[ 1679832ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/components/dashboard/DonationSummaryCard.tsx:0 +[ 1679833ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/components/dashboard/SystemAlertsCard.tsx:0 +[ 1679833ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/components/dashboard/GiteaActivityCard.tsx:0 +[ 1679833ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/components/dashboard/VaultwardenAdoptionCard.tsx:0 +[ 1679833ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/components/dashboard/UpcomingMeetingsCard.tsx:0 +[ 1679833ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/components/canvass/CutCampaignAnalyticsCard.tsx:0 +[ 1679833ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/components/email-templates/TestEmailModal.tsx:0 +[ 1679833ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/components/email-templates/VersionHistoryDrawer.tsx:0 +[ 1679833ms] [ERROR] Failed to load resource: net::ERR_NETWORK_CHANGED @ http://localhost:3002/src/components/email-templates/EmailTemplateEditor.tsx:0 +[ 1685249ms] [ERROR] Failed to load resource: the server responded with a status of 500 (Internal Server Error) @ http://localhost:3002/api/settings:0 +[ 1685251ms] [ERROR] Failed to load resource: the server responded with a status of 500 (Internal Server Error) @ http://localhost:3002/api/auth/me:0 +[ 1685252ms] [ERROR] Unexpected auth error: AxiosError: Request failed with status code 500 + at settle (http://localhost:3002/node_modules/.vite/deps/axios.js?v=c83de56d:1281:12) + at XMLHttpRequest.onloadend (http://localhost:3002/node_modules/.vite/deps/axios.js?v=c83de56d:1638:7) + at Axios.request (http://localhost:3002/node_modules/.vite/deps/axios.js?v=c83de56d:2255:41) + at async Object.fetchMe (http://localhost:3002/src/stores/auth.store.ts:101:28) + at async hydrate (http://localhost:3002/src/stores/auth.store.ts:118:11) @ http://localhost:3002/src/stores/auth.store.ts:105 +[ 1685344ms] [ERROR] Failed to load resource: the server responded with a status of 500 (Internal Server Error) @ http://localhost:3002/api/payments/plans:0 diff --git a/.playwright-mcp/page-2026-03-11T05-31-06-498Z.png b/.playwright-mcp/page-2026-03-11T05-31-06-498Z.png new file mode 100644 index 00000000..d4371acc Binary files /dev/null and b/.playwright-mcp/page-2026-03-11T05-31-06-498Z.png differ diff --git a/admin/src/App.tsx b/admin/src/App.tsx index 4b5e9482..4e789157 100644 --- a/admin/src/App.tsx +++ b/admin/src/App.tsx @@ -136,6 +136,8 @@ import ChallengeDetailPage from '@/pages/volunteer/ChallengeDetailPage'; import WallOfFamePage from '@/pages/public/WallOfFamePage'; import MeetingJoinPage from '@/pages/public/MeetingJoinPage'; import MeetingPlannerPage from '@/pages/MeetingPlannerPage'; +import MeetingAgendaPage from '@/pages/MeetingAgendaPage'; +import ActionItemsPage from '@/pages/ActionItemsPage'; import SchedulingPollPage from '@/pages/public/SchedulingPollPage'; import PollsListPage from '@/pages/public/PollsListPage'; import JitsiAuthPage from '@/pages/JitsiAuthPage'; @@ -803,6 +805,22 @@ export default function App() { } /> + + + + } + /> + + + + } + /> , label: 'Meeting Planner' }); + schedulingChildren.push({ key: '/app/meetings/agendas', icon: , label: 'Agendas' }); + schedulingChildren.push({ key: '/app/meetings/action-items', icon: , label: 'Action Items' }); } if (settings?.enableTicketedEvents) { schedulingChildren.push({ key: '/app/events', icon: , label: 'Events' }); diff --git a/admin/src/components/dashboard/MyActionItemsCard.tsx b/admin/src/components/dashboard/MyActionItemsCard.tsx new file mode 100644 index 00000000..d1cfdbd6 --- /dev/null +++ b/admin/src/components/dashboard/MyActionItemsCard.tsx @@ -0,0 +1,128 @@ +import { useState, useEffect, useCallback } from 'react'; +import { Card, Typography, Spin, Flex, Button, Tag, Tooltip } from 'antd'; +import { + OrderedListOutlined, + ReloadOutlined, + ExclamationCircleOutlined, +} from '@ant-design/icons'; +import { useNavigate } from 'react-router-dom'; +import dayjs from 'dayjs'; +import { api } from '@/lib/api'; +import type { ActionItem, ActionItemsListResponse } from '@/types/api'; +import { ACTION_ITEM_STATUS_COLORS, ACTION_ITEM_PRIORITY_COLORS } from '@/types/api'; + +const { Text } = Typography; + +function ActionItemRow({ item }: { item: ActionItem }) { + const navigate = useNavigate(); + const isOverdue = item.dueDate && item.status !== 'done' && dayjs(item.dueDate).isBefore(dayjs(), 'day'); + + return ( + navigate('/app/meetings/action-items')} + style={{ + padding: '5px 0', + borderBottom: '1px solid rgba(255,255,255,0.04)', + lineHeight: 1.4, + cursor: 'pointer', + }} + > + {isOverdue && } + + + {item.title} + + + + {item.status} + + {item.priority !== 'normal' && ( + + {item.priority} + + )} + {item.dueDate && ( + + {dayjs(item.dueDate).format('MMM D')} + + )} + + ); +} + +export default function MyActionItemsCard() { + const navigate = useNavigate(); + const [items, setItems] = useState([]); + const [total, setTotal] = useState(0); + const [loading, setLoading] = useState(true); + + const fetchItems = useCallback(async () => { + setLoading(true); + try { + const res = await api.get('/meetings/action-items/mine'); + setItems(res.data.actionItems.slice(0, 5)); + setTotal(res.data.pagination?.total ?? res.data.actionItems.length); + } catch { + // non-critical widget + } finally { + setLoading(false); + } + }, []); + + useEffect(() => { + fetchItems(); + const interval = setInterval(fetchItems, 5 * 60_000); + return () => clearInterval(interval); + }, [fetchItems]); + + const overdueCount = items.filter(i => i.dueDate && i.status !== 'done' && dayjs(i.dueDate).isBefore(dayjs(), 'day')).length; + + return ( + + + My Action Items + {overdueCount > 0 && ( + {overdueCount} overdue + )} + + } + size="small" + extra={ + + {total > 5 && ( + + )} + + ), + }, + { + title: 'Status', + dataIndex: 'status', + key: 'status', + width: 110, + render: (status: ActionItemStatus) => ( + {ACTION_ITEM_STATUS_LABELS[status]} + ), + }, + { + title: 'Priority', + dataIndex: 'priority', + key: 'priority', + width: 90, + render: (priority: ActionItemPriority) => ( + + {priority.charAt(0).toUpperCase() + priority.slice(1)} + + ), + }, + { + title: 'Assignee', + key: 'assignee', + width: 140, + render: (_, record) => ( + {record.assignee?.name || record.assignee?.email || '—'} + ), + responsive: ['md'], + }, + { + title: 'Due Date', + dataIndex: 'dueDate', + key: 'dueDate', + width: 120, + render: (date: string | null, record) => { + if (!date) return —; + const overdue = isOverdue(record); + return ( + + {dayjs(date).format('MMM D, YYYY')} + + ); + }, + }, + { + title: 'Meeting', + key: 'agenda', + width: 160, + render: (_, record) => ( + record.agenda ? ( + + {record.agenda.title} + + ) : ( + — + ) + ), + responsive: ['lg'], + }, + { + title: 'Actions', + key: 'actions', + width: 100, + render: (_, record) => ( + + + + + + + {/* Filters */} + + + } + value={search} + onChange={(e) => setSearch(e.target.value)} + allowClear + /> + + + searchUsers(v, setUserOptions, setUserSearchLoading)} + loading={userSearchLoading} + options={userOptions} + notFoundContent={userSearchLoading ? 'Searching...' : null} + /> + + + + + + + + + + setPagination((p) => ({ ...p, page })), + }} + size="small" + /> + + + {/* Create / Edit Drawer */} + { setDrawerOpen(false); setEditingItem(null); form.resetFields(); }} + width={isMobile ? '100%' : drawerWidth} + mask={false} + destroyOnHidden + rootStyle={{ position: 'absolute', top: 64, height: 'calc(100vh - 64px)' }} + extra={ + + + + + } + > +
+ + + + + + + + + + {editingItem && ( + + + + )} + +
+ + ); +} diff --git a/admin/src/pages/DashboardPage.tsx b/admin/src/pages/DashboardPage.tsx index 54401acc..a9744061 100644 --- a/admin/src/pages/DashboardPage.tsx +++ b/admin/src/pages/DashboardPage.tsx @@ -61,6 +61,7 @@ import TopVideosCard from '@/components/dashboard/TopVideosCard'; import RecentCommentsCard from '@/components/dashboard/RecentCommentsCard'; import DocsAnalyticsCard from '@/components/dashboard/DocsAnalyticsCard'; import UpcomingShiftsCard from '@/components/dashboard/UpcomingShiftsCard'; +import MyActionItemsCard from '@/components/dashboard/MyActionItemsCard'; import CampaignEffectivenessCard from '@/components/dashboard/CampaignEffectivenessCard'; import RecentSignupsCard from '@/components/dashboard/RecentSignupsCard'; import NewsletterStatsCard from '@/components/dashboard/NewsletterStatsCard'; @@ -686,6 +687,11 @@ export default function DashboardPage() { )} + {settings?.enableMeetingPlanner && ( +
+ +
+ )} {showMeet && (
diff --git a/admin/src/pages/MeetingAgendaPage.tsx b/admin/src/pages/MeetingAgendaPage.tsx new file mode 100644 index 00000000..86db336e --- /dev/null +++ b/admin/src/pages/MeetingAgendaPage.tsx @@ -0,0 +1,817 @@ +import { useState, useEffect, useCallback } from 'react'; +import { + Table, + Button, + Input, + Select, + Tag, + Space, + Form, + Popconfirm, + message, + Typography, + Row, + Col, + Drawer, + Card, + Grid, + InputNumber, + Switch, + List, +} from 'antd'; +import { + PlusOutlined, + DeleteOutlined, + SearchOutlined, + FileTextOutlined, + EditOutlined, + ArrowUpOutlined, + ArrowDownOutlined, + CheckCircleOutlined, +} from '@ant-design/icons'; +import type { ColumnsType } from 'antd/es/table'; +import dayjs from 'dayjs'; +import { api } from '@/lib/api'; +import type { + MeetingAgenda, + ActionItem, + AgendasListResponse, + AgendaStatus, + ActionItemStatus, + AgendaItem, +} from '@/types/api'; +import { + ACTION_ITEM_STATUS_COLORS, + ACTION_ITEM_STATUS_LABELS, + ACTION_ITEM_PRIORITY_COLORS, +} from '@/types/api'; + +const { Text, Title } = Typography; +const { TextArea } = Input; + +const AGENDA_STATUS_COLORS: Record = { + draft: 'default', + active: 'blue', + completed: 'green', +}; + +const AGENDA_STATUS_LABELS: Record = { + draft: 'Draft', + active: 'Active', + completed: 'Completed', +}; + +export default function MeetingAgendaPage() { + const screens = Grid.useBreakpoint(); + const isMobile = !screens.md; + + // Main table state + const [agendas, setAgendas] = useState([]); + const [pagination, setPagination] = useState({ page: 1, limit: 20, total: 0 }); + const [loading, setLoading] = useState(false); + const [search, setSearch] = useState(''); + const [statusFilter, setStatusFilter] = useState(); + + // Create drawer + const [createOpen, setCreateOpen] = useState(false); + const [createForm] = Form.useForm(); + const [creating, setCreating] = useState(false); + + // Detail drawer + const [detailOpen, setDetailOpen] = useState(false); + const [selectedAgenda, setSelectedAgenda] = useState(null); + const [detailLoading, setDetailLoading] = useState(false); + + // Minutes editing state + const [minutesNotes, setMinutesNotes] = useState(''); + const [minutesDecisions, setMinutesDecisions] = useState>([]); + const [minutesAttendees, setMinutesAttendees] = useState>([]); + const [savingMinutes, setSavingMinutes] = useState(false); + const [approvingMinutes, setApprovingMinutes] = useState(false); + + // Agenda items editing in detail drawer + const [editingItems, setEditingItems] = useState([]); + const [savingItems, setSavingItems] = useState(false); + + // New decision / attendee inputs + const [newDecisionText, setNewDecisionText] = useState(''); + const [newAttendeeName, setNewAttendeeName] = useState(''); + + // Polls and shifts for selects + const [pollOptions, setPollOptions] = useState>([]); + const [shiftOptions, setShiftOptions] = useState>([]); + + const fetchAgendas = useCallback(async () => { + setLoading(true); + try { + const params: Record = { page: pagination.page, limit: pagination.limit }; + if (search) params.search = search; + if (statusFilter) params.status = statusFilter; + const { data } = await api.get('/meetings/agendas', { params }); + setAgendas(data.agendas); + setPagination((p) => ({ ...p, total: data.pagination.total })); + } catch { + message.error('Failed to load agendas'); + } finally { + setLoading(false); + } + }, [pagination.page, pagination.limit, search, statusFilter]); + + useEffect(() => { fetchAgendas(); }, [fetchAgendas]); + + // Fetch poll/shift options when create drawer opens + useEffect(() => { + if (!createOpen) return; + const fetchOptions = async () => { + try { + const [pollsRes, shiftsRes] = await Promise.all([ + api.get('/meeting-planner', { params: { limit: 100 } }).catch(() => ({ data: { polls: [] } })), + api.get('/map/shifts', { params: { limit: 100 } }).catch(() => ({ data: { shifts: [] } })), + ]); + setPollOptions( + (pollsRes.data.polls || []).map((p: any) => ({ value: p.id, label: p.title })) + ); + setShiftOptions( + (shiftsRes.data.shifts || []).map((s: any) => ({ + value: s.id, + label: `${s.title} - ${dayjs(s.date).format('MMM D')}`, + })) + ); + } catch { + // Silent — selects will just be empty + } + }; + fetchOptions(); + }, [createOpen]); + + const fetchAgendaDetail = async (id: string) => { + setDetailLoading(true); + try { + const { data } = await api.get(`/meetings/agendas/${id}`); + setSelectedAgenda(data); + setEditingItems(data.items || []); + // Populate minutes state + if (data.minutes) { + setMinutesNotes(data.minutes.notes || ''); + setMinutesDecisions(data.minutes.decisions || []); + setMinutesAttendees(data.minutes.attendees || []); + } else { + setMinutesNotes(''); + setMinutesDecisions([]); + setMinutesAttendees([]); + } + setDetailOpen(true); + } catch { + message.error('Failed to load agenda details'); + } finally { + setDetailLoading(false); + } + }; + + const handleCreate = async (values: any) => { + setCreating(true); + try { + await api.post('/meetings/agendas', { + title: values.title, + pollId: values.pollId || null, + shiftId: values.shiftId || null, + }); + message.success('Agenda created'); + setCreateOpen(false); + createForm.resetFields(); + fetchAgendas(); + } catch { + message.error('Failed to create agenda'); + } finally { + setCreating(false); + } + }; + + const handleDelete = async (id: string) => { + try { + await api.delete(`/meetings/agendas/${id}`); + message.success('Agenda deleted'); + fetchAgendas(); + } catch { + message.error('Failed to delete agenda'); + } + }; + + // Agenda items management + const handleMoveItem = (index: number, direction: 'up' | 'down') => { + const items = [...editingItems]; + const swapIndex = direction === 'up' ? index - 1 : index + 1; + if (swapIndex < 0 || swapIndex >= items.length) return; + [items[index], items[swapIndex]] = [items[swapIndex]!, items[index]!]; + // Recalculate order + items.forEach((item, i) => { item.order = i; }); + setEditingItems(items); + }; + + const handleAddItem = () => { + const newItem: AgendaItem = { + id: `temp-${Date.now()}`, + title: '', + durationMinutes: 5, + order: editingItems.length, + }; + setEditingItems([...editingItems, newItem]); + }; + + const handleRemoveItem = (index: number) => { + const items = editingItems.filter((_, i) => i !== index); + items.forEach((item, i) => { item.order = i; }); + setEditingItems(items); + }; + + const handleUpdateItem = (index: number, field: keyof AgendaItem, value: any) => { + const items = [...editingItems]; + (items[index] as any)[field] = value; + setEditingItems(items); + }; + + const handleSaveItems = async () => { + if (!selectedAgenda) return; + setSavingItems(true); + try { + const items = editingItems.map((item, i) => ({ + id: item.id.startsWith('temp-') ? undefined : item.id, + title: item.title, + durationMinutes: item.durationMinutes, + order: i, + })); + await api.put(`/meetings/agendas/${selectedAgenda.id}`, { items }); + message.success('Agenda items saved'); + fetchAgendaDetail(selectedAgenda.id); + fetchAgendas(); + } catch { + message.error('Failed to save agenda items'); + } finally { + setSavingItems(false); + } + }; + + // Minutes management + const handleSaveMinutes = async () => { + if (!selectedAgenda) return; + setSavingMinutes(true); + try { + const payload = { + notes: minutesNotes, + decisions: minutesDecisions, + attendees: minutesAttendees, + }; + if (selectedAgenda.minutes) { + await api.put(`/meetings/agendas/${selectedAgenda.id}/minutes`, payload); + } else { + await api.post(`/meetings/agendas/${selectedAgenda.id}/minutes`, payload); + } + message.success('Minutes saved'); + fetchAgendaDetail(selectedAgenda.id); + } catch { + message.error('Failed to save minutes'); + } finally { + setSavingMinutes(false); + } + }; + + const handleApproveMinutes = async () => { + if (!selectedAgenda) return; + setApprovingMinutes(true); + try { + await api.post(`/meetings/agendas/${selectedAgenda.id}/minutes/approve`); + message.success('Minutes approved'); + fetchAgendaDetail(selectedAgenda.id); + } catch { + message.error('Failed to approve minutes'); + } finally { + setApprovingMinutes(false); + } + }; + + // Action item inline status change + const handleActionItemStatusChange = async (actionItem: ActionItem, newStatus: ActionItemStatus) => { + try { + await api.put(`/meetings/agendas/${actionItem.agendaId}/action-items/${actionItem.id}`, { + status: newStatus, + }); + message.success('Action item updated'); + if (selectedAgenda) fetchAgendaDetail(selectedAgenda.id); + } catch { + message.error('Failed to update action item'); + } + }; + + // Add decision + const handleAddDecision = () => { + if (!newDecisionText.trim()) return; + setMinutesDecisions([ + ...minutesDecisions, + { id: `d-${Date.now()}`, text: newDecisionText.trim(), passed: false }, + ]); + setNewDecisionText(''); + }; + + const handleRemoveDecision = (index: number) => { + setMinutesDecisions(minutesDecisions.filter((_, i) => i !== index)); + }; + + const handleToggleDecisionPassed = (index: number) => { + const decisions = [...minutesDecisions]; + decisions[index] = { ...decisions[index]!, passed: !decisions[index]!.passed }; + setMinutesDecisions(decisions); + }; + + // Add attendee + const handleAddAttendee = () => { + if (!newAttendeeName.trim()) return; + setMinutesAttendees([...minutesAttendees, { name: newAttendeeName.trim() }]); + setNewAttendeeName(''); + }; + + const handleRemoveAttendee = (index: number) => { + setMinutesAttendees(minutesAttendees.filter((_, i) => i !== index)); + }; + + const getLinkedLabel = (record: MeetingAgenda) => { + if (record.pollId) return Poll; + if (record.shiftId) return Shift; + return None; + }; + + const columns: ColumnsType = [ + { + title: 'Title', + dataIndex: 'title', + key: 'title', + render: (title: string, record) => ( + + ), + }, + { + title: 'Status', + dataIndex: 'status', + key: 'status', + width: 110, + render: (status: AgendaStatus) => ( + {AGENDA_STATUS_LABELS[status]} + ), + }, + { + title: 'Linked To', + key: 'linked', + width: 100, + render: (_, record) => getLinkedLabel(record), + responsive: ['md'], + }, + { + title: 'Items', + key: 'items', + width: 70, + render: (_, record) => record.items?.length ?? 0, + }, + { + title: 'Created', + dataIndex: 'createdAt', + key: 'createdAt', + width: 120, + render: (date: string) => dayjs(date).format('MMM D, YYYY'), + responsive: ['md'], + }, + { + title: 'Actions', + key: 'actions', + width: 100, + render: (_, record) => ( + +
+
setPagination((p) => ({ ...p, page })), + }} + size="small" + /> + + + {/* Create Agenda Drawer */} + { setCreateOpen(false); createForm.resetFields(); }} + width={isMobile ? '100%' : 560} + mask={false} + destroyOnHidden + rootStyle={{ position: 'absolute', top: 64, height: 'calc(100vh - 64px)' }} + extra={ + + + + + } + > +
+ + + + + + + +
+ + {/* Detail Drawer */} + { setDetailOpen(false); setSelectedAgenda(null); }} + width={isMobile ? '100%' : 720} + loading={detailLoading} + mask={false} + destroyOnHidden + rootStyle={{ position: 'absolute', top: 64, height: 'calc(100vh - 64px)' }} + > + {selectedAgenda && ( + <> + {/* Metadata */} + + + + {AGENDA_STATUS_LABELS[selectedAgenda.status]} + + + {getLinkedLabel(selectedAgenda)} + + + Created {dayjs(selectedAgenda.createdAt).format('MMM D, YYYY')} + {selectedAgenda.createdBy?.name ? ` by ${selectedAgenda.createdBy.name}` : ''} + + + + + {/* Agenda Items */} + + + + + } + > + {editingItems.length === 0 ? ( + No agenda items yet. Click Add to get started. + ) : ( + editingItems.map((item, index) => ( + + + + + handleUpdateItem(index, 'title', e.target.value)} + size="small" + /> + + + handleUpdateItem(index, 'durationMinutes', val)} + size="small" + style={{ width: 70 }} + addonAfter="min" + /> + + + + {selectedAgenda.minutes && !selectedAgenda.minutes.approvedAt && ( + + + + )} + {selectedAgenda.minutes?.approvedAt && ( + }> + Approved {dayjs(selectedAgenda.minutes.approvedAt).format('MMM D')} + + )} + + } + > + {/* Notes */} + Notes +