113 chat interno - #114

Merged
rbxyz merged 2 commits into
mainfrom
113-chat-interno
Sep 23, 2025
Merged

113 chat interno#114
rbxyz merged 2 commits into
mainfrom
113-chat-interno

Conversation

@rbxyz

@rbxyzrbxyz commented Sep 23, 2025

Copy link
Copy Markdown
Collaborator

Summary by CodeRabbit

  • New Features

    • Internal chat with global, group, and private rooms, message history, and real‑time updates.
    • Image attachments with preview, expand, and download.
    • Online users list with presence indicators and sector grouping.
    • Admin management of chat groups: create, edit, delete, and add members.
    • Role-based access enabling chat for non‑TOTEM users.
  • Style

    • Refined News card hover/transition behavior for better responsiveness.
  • Documentation

    • Added Chat module overview and usage guide.

@rbxyzrbxyz linked an issue Sep 23, 2025 that may be closed by this pull request
@vercel

vercelBot commented Sep 23, 2025

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentPreviewCommentsUpdated (UTC)
eloReadyReadyPreviewCommentSep 23, 2025 0:54am

@coderabbitai

coderabbitaiBot commented Sep 23, 2025

Copy link
Copy Markdown
Contributor

Caution

Review failed

The pull request is closed.

Walkthrough

Adds a full internal chat system (UI, APIs, WebSocket server, Prisma models), admin chat-group management (UI + tRPC router), access control updates, Next.js config and dependencies for Socket.IO, several Spec-Driven Development scripts/templates, and supporting docs/tests. Updates TRPC context types and wires new routers into the API.

Changes

Cohort / File(s)Summary of changes
Command Workflows
.cursor/commands/*
Adds constitution, implement, plan, specify, and tasks command documents describing workflows and execution steps.
Constitution Memory
.specify/memory/constitution.md
Adds governance/spec template with placeholders and versioning headers.
Spec Scripts (PowerShell)
.specify/scripts/powershell/common.ps1, check-prerequisites.ps1, create-new-feature.ps1, setup-plan.ps1, update-agent-context.ps1
Introduces shared helpers and scripts to create features, validate env, set up plans, and update agent files. Includes JSON/CLI outputs and git-aware behavior.
Spec/Templates
.specify/templates/*
Adds templates for agent files, implementation plan, feature spec, and tasks generation.
Next Config & Deps
next.config.js, package.json
Adds headers() for CORS on /api routes; exposes socket.io packages for RSC. Adds socket.io and socket.io-client dependencies.
Database Schema
prisma/schema.prisma
Adds chat models: chat_group, chat_group_member, chat_message; relations on User; adds NotificationType.CHAT_MESSAGE.
Admin UI — Chat Groups
src/app/(authenticated)/admin/chat-groups/_components/*
Adds dialogs and list UI: create/edit group, add members, user selection; TRPC-integrated with toasts and validation.
Admin Page
src/app/(authenticated)/admin/chat-groups/page.tsx
Adds admin page wiring list and dialogs with access check and stats UI.
Chat App UI
src/app/(authenticated)/chat/_components/users-list.tsx, src/app/(authenticated)/chat/page.tsx
Adds users list with presence polling and main chat page with sidebar-room-users layout and private chat initiation.
Chat API Routes
src/app/api/chat/online/route.ts, src/app/api/chat/poll/route.ts, src/app/api/chat/send/route.ts
Adds REST endpoints for presence reporting, message polling, and sending with access checks and Prisma persistence.
Chat Components
src/components/chat/*
Adds ChatRoom (polling, messaging, images), ChatSidebar (rooms), ImageMessage, ImageUpload, README, and barrel exports.
Tests
src/components/chat/ChatRoom.test.tsx
Adds test suite for ChatRoom with mocks for TRPC, sockets, and auth.
API Wiring & Routers
src/server/api/root.ts, .../routers/admin-chat-groups.ts, .../routers/chat-message.ts, .../routers/user.ts
Wires new routers; adds adminChatGroups and chatMessage routers; userRouter gains getById.
TRPC Context
src/server/api/trpc.ts
Introduces explicit TRPC context interfaces; updates createTRPCContext signature and init typing.
WebSocket Server
src/server/websocket/chat-server.ts
Adds Socket.IO server with join, typing, send, and presence tracking; notification emission.
Constants & Routes
src/const/admin-routes.ts, src/const/routes.ts
Adds admin route for chat groups; minor commented/unused import in routes.
UI Tweak
src/components/dashboard/news-displ.tsx
Adjusts styling/hover behaviors and image sizing; removes backdrop blur.

Sequence Diagram(s)

sequenceDiagram
autonumber
actor User as User
participant UI as Chat UI (ChatRoom)
participant WS as Socket.IO Server
participant DB as Prisma
User->>UI: Open room (roomId)
UI->>WS: joinChat(userId, roomId)
alt group_*
WS->>DB: Verify membership (chat_group_member)
DB-->>WS: Exists/Not
else private_*
WS->>DB: Verify both users exist
DB-->>WS: OK/Fail
end
WS-->>UI: joinedRoom or error
note over UI,WS: On success, broadcast userJoined to room
Loading
sequenceDiagram
autonumber
actor User as User
participant UI as Chat UI (ChatRoom)
participant API as POST /api/chat/send
participant DB as Prisma
participant WS as Socket.IO Server
participant Others as Other Clients
User->>UI: Type message / attach image
UI->>API: POST { userId, roomId, content|imageUrl }
alt group_/private_
API->>DB: Validate access (membership/participants)
end
API->>DB: Create chat_message
DB-->>API: Saved message (+user)
API-->>UI: 200 Created (message)
WS-->>Others: receiveMessage(roomId, message)
UI->>API: GET /api/chat/poll?roomId&lastMessageId
API->>DB: Fetch new messages
DB-->>API: Messages
API-->>UI: Messages
Loading

Estimated code review effort

🎯 5 (Critical) | ⏱️ ~120 minutes

Possibly related PRs

Poem

A tap-tap on keys, a socket ignites,
Groups gather softly in pixel-lit nights.
Rabbits relay messages, swift as the breeze,
Polling and posting with effortless ease.
New rooms, new rules, a chorus of ping—
In burrows of code, the chats take wing. 🐇💬

✨ Finishing touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch 113-chat-interno

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 80915bd and d02fbdb.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (46)
  • .cursor/commands/constitution.md (1 hunks)
  • .cursor/commands/implement.md (1 hunks)
  • .cursor/commands/plan.md (1 hunks)
  • .cursor/commands/specify.md (1 hunks)
  • .cursor/commands/tasks.md (1 hunks)
  • .specify/memory/constitution.md (1 hunks)
  • .specify/scripts/powershell/check-prerequisites.ps1 (1 hunks)
  • .specify/scripts/powershell/common.ps1 (1 hunks)
  • .specify/scripts/powershell/create-new-feature.ps1 (1 hunks)
  • .specify/scripts/powershell/setup-plan.ps1 (1 hunks)
  • .specify/scripts/powershell/update-agent-context.ps1 (1 hunks)
  • .specify/templates/agent-file-template.md (1 hunks)
  • .specify/templates/plan-template.md (1 hunks)
  • .specify/templates/spec-template.md (1 hunks)
  • .specify/templates/tasks-template.md (1 hunks)
  • next.config.js (1 hunks)
  • package.json (1 hunks)
  • prisma/schema.prisma (3 hunks)
  • src/app/(authenticated)/admin/chat-groups/_components/add-members-dialog.tsx (1 hunks)
  • src/app/(authenticated)/admin/chat-groups/_components/chat-groups-list.tsx (1 hunks)
  • src/app/(authenticated)/admin/chat-groups/_components/create-group-dialog.tsx (1 hunks)
  • src/app/(authenticated)/admin/chat-groups/_components/edit-group-dialog.tsx (1 hunks)
  • src/app/(authenticated)/admin/chat-groups/_components/user-selection.tsx (1 hunks)
  • src/app/(authenticated)/admin/chat-groups/page.tsx (1 hunks)
  • src/app/(authenticated)/chat/_components/users-list.tsx (1 hunks)
  • src/app/(authenticated)/chat/page.tsx (1 hunks)
  • src/app/api/chat/online/route.ts (1 hunks)
  • src/app/api/chat/poll/route.ts (1 hunks)
  • src/app/api/chat/send/route.ts (1 hunks)
  • src/components/chat/ChatRoom.test.tsx (1 hunks)
  • src/components/chat/ChatRoom.tsx (1 hunks)
  • src/components/chat/ChatSidebar.tsx (1 hunks)
  • src/components/chat/ImageMessage.tsx (1 hunks)
  • src/components/chat/ImageUpload.tsx (1 hunks)
  • src/components/chat/README.md (1 hunks)
  • src/components/chat/index.ts (1 hunks)
  • src/components/dashboard/news-displ.tsx (3 hunks)
  • src/const/admin-routes.ts (2 hunks)
  • src/const/routes.ts (2 hunks)
  • src/hooks/use-access-control.tsx (2 hunks)
  • src/server/api/root.ts (2 hunks)
  • src/server/api/routers/admin-chat-groups.ts (1 hunks)
  • src/server/api/routers/chat-message.ts (1 hunks)
  • src/server/api/routers/user.ts (1 hunks)
  • src/server/api/trpc.ts (3 hunks)
  • src/server/websocket/chat-server.ts (1 hunks)

Tip

👮 Agentic pre-merge checks are now available in preview!

Pro plan users can now enable pre-merge checks in their settings to enforce checklists before merging PRs.

  • Built-in checks – Quickly apply ready-made checks to enforce title conventions, require pull request descriptions that follow templates, validate linked issues for compliance, and more.
  • Custom agentic checks – Define your own rules using CodeRabbit’s advanced agentic capabilities to enforce organization-specific policies and workflows. For example, you can instruct CodeRabbit’s agent to verify that API documentation is updated whenever API schema files are modified in a PR. Note: Upto 5 custom checks are currently allowed during the preview period. Pricing for this feature will be announced in a few weeks.

Please see the documentation for more information.

Example:

reviews:
pre_merge_checks:
custom_checks:
- name: "Undocumented Breaking Changes"mode: "warning"instructions: | Pass/fail criteria: All breaking changes to public APIs, CLI flags, environment variables, configuration keys, database schemas, or HTTP/GraphQL endpoints must be documented in the "Breaking Change" section of the PR description and in CHANGELOG.md. Exclude purely internal or private changes (e.g., code not exported from package entry points or explicitly marked as internal).

Please share your feedback with us on this Discord post.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@rbxyz
rbxyz merged commit b174ef1 into mainSep 23, 2025
5 of 6 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

chat interno

1 participant

@rbxyz
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

113 chat interno - #114

Merged
rbxyz merged 2 commits into
mainfrom
113-chat-interno
Sep 23, 2025
Merged

113 chat interno#114
rbxyz merged 2 commits into
mainfrom
113-chat-interno

Conversation

@rbxyz

@rbxyzrbxyz commented Sep 23, 2025

Copy link
Copy Markdown
Collaborator

Summary by CodeRabbit

  • New Features

    • Internal chat with global, group, and private rooms, message history, and real‑time updates.
    • Image attachments with preview, expand, and download.
    • Online users list with presence indicators and sector grouping.
    • Admin management of chat groups: create, edit, delete, and add members.
    • Role-based access enabling chat for non‑TOTEM users.
  • Style

    • Refined News card hover/transition behavior for better responsiveness.
  • Documentation

    • Added Chat module overview and usage guide.

@rbxyzrbxyz linked an issue Sep 23, 2025 that may be closed by this pull request
@vercel

vercelBot commented Sep 23, 2025

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentPreviewCommentsUpdated (UTC)
eloReadyReadyPreviewCommentSep 23, 2025 0:54am

@coderabbitai

coderabbitaiBot commented Sep 23, 2025

Copy link
Copy Markdown
Contributor

Caution

Review failed

The pull request is closed.

Walkthrough

Adds a full internal chat system (UI, APIs, WebSocket server, Prisma models), admin chat-group management (UI + tRPC router), access control updates, Next.js config and dependencies for Socket.IO, several Spec-Driven Development scripts/templates, and supporting docs/tests. Updates TRPC context types and wires new routers into the API.

Changes

Cohort / File(s)Summary of changes
Command Workflows
.cursor/commands/*
Adds constitution, implement, plan, specify, and tasks command documents describing workflows and execution steps.
Constitution Memory
.specify/memory/constitution.md
Adds governance/spec template with placeholders and versioning headers.
Spec Scripts (PowerShell)
.specify/scripts/powershell/common.ps1, check-prerequisites.ps1, create-new-feature.ps1, setup-plan.ps1, update-agent-context.ps1
Introduces shared helpers and scripts to create features, validate env, set up plans, and update agent files. Includes JSON/CLI outputs and git-aware behavior.
Spec/Templates
.specify/templates/*
Adds templates for agent files, implementation plan, feature spec, and tasks generation.
Next Config & Deps
next.config.js, package.json
Adds headers() for CORS on /api routes; exposes socket.io packages for RSC. Adds socket.io and socket.io-client dependencies.
Database Schema
prisma/schema.prisma
Adds chat models: chat_group, chat_group_member, chat_message; relations on User; adds NotificationType.CHAT_MESSAGE.
Admin UI — Chat Groups
src/app/(authenticated)/admin/chat-groups/_components/*
Adds dialogs and list UI: create/edit group, add members, user selection; TRPC-integrated with toasts and validation.
Admin Page
src/app/(authenticated)/admin/chat-groups/page.tsx
Adds admin page wiring list and dialogs with access check and stats UI.
Chat App UI
src/app/(authenticated)/chat/_components/users-list.tsx, src/app/(authenticated)/chat/page.tsx
Adds users list with presence polling and main chat page with sidebar-room-users layout and private chat initiation.
Chat API Routes
src/app/api/chat/online/route.ts, src/app/api/chat/poll/route.ts, src/app/api/chat/send/route.ts
Adds REST endpoints for presence reporting, message polling, and sending with access checks and Prisma persistence.
Chat Components
src/components/chat/*
Adds ChatRoom (polling, messaging, images), ChatSidebar (rooms), ImageMessage, ImageUpload, README, and barrel exports.
Tests
src/components/chat/ChatRoom.test.tsx
Adds test suite for ChatRoom with mocks for TRPC, sockets, and auth.
API Wiring & Routers
src/server/api/root.ts, .../routers/admin-chat-groups.ts, .../routers/chat-message.ts, .../routers/user.ts
Wires new routers; adds adminChatGroups and chatMessage routers; userRouter gains getById.
TRPC Context
src/server/api/trpc.ts
Introduces explicit TRPC context interfaces; updates createTRPCContext signature and init typing.
WebSocket Server
src/server/websocket/chat-server.ts
Adds Socket.IO server with join, typing, send, and presence tracking; notification emission.
Constants & Routes
src/const/admin-routes.ts, src/const/routes.ts
Adds admin route for chat groups; minor commented/unused import in routes.
UI Tweak
src/components/dashboard/news-displ.tsx
Adjusts styling/hover behaviors and image sizing; removes backdrop blur.

Sequence Diagram(s)

sequenceDiagram
autonumber
actor User as User
participant UI as Chat UI (ChatRoom)
participant WS as Socket.IO Server
participant DB as Prisma
User->>UI: Open room (roomId)
UI->>WS: joinChat(userId, roomId)
alt group_*
WS->>DB: Verify membership (chat_group_member)
DB-->>WS: Exists/Not
else private_*
WS->>DB: Verify both users exist
DB-->>WS: OK/Fail
end
WS-->>UI: joinedRoom or error
note over UI,WS: On success, broadcast userJoined to room
Loading
sequenceDiagram
autonumber
actor User as User
participant UI as Chat UI (ChatRoom)
participant API as POST /api/chat/send
participant DB as Prisma
participant WS as Socket.IO Server
participant Others as Other Clients
User->>UI: Type message / attach image
UI->>API: POST { userId, roomId, content|imageUrl }
alt group_/private_
API->>DB: Validate access (membership/participants)
end
API->>DB: Create chat_message
DB-->>API: Saved message (+user)
API-->>UI: 200 Created (message)
WS-->>Others: receiveMessage(roomId, message)
UI->>API: GET /api/chat/poll?roomId&lastMessageId
API->>DB: Fetch new messages
DB-->>API: Messages
API-->>UI: Messages
Loading

Estimated code review effort

🎯 5 (Critical) | ⏱️ ~120 minutes

Possibly related PRs

Poem

A tap-tap on keys, a socket ignites,
Groups gather softly in pixel-lit nights.
Rabbits relay messages, swift as the breeze,
Polling and posting with effortless ease.
New rooms, new rules, a chorus of ping—
In burrows of code, the chats take wing. 🐇💬

✨ Finishing touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch 113-chat-interno

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 80915bd and d02fbdb.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (46)
  • .cursor/commands/constitution.md (1 hunks)
  • .cursor/commands/implement.md (1 hunks)
  • .cursor/commands/plan.md (1 hunks)
  • .cursor/commands/specify.md (1 hunks)
  • .cursor/commands/tasks.md (1 hunks)
  • .specify/memory/constitution.md (1 hunks)
  • .specify/scripts/powershell/check-prerequisites.ps1 (1 hunks)
  • .specify/scripts/powershell/common.ps1 (1 hunks)
  • .specify/scripts/powershell/create-new-feature.ps1 (1 hunks)
  • .specify/scripts/powershell/setup-plan.ps1 (1 hunks)
  • .specify/scripts/powershell/update-agent-context.ps1 (1 hunks)
  • .specify/templates/agent-file-template.md (1 hunks)
  • .specify/templates/plan-template.md (1 hunks)
  • .specify/templates/spec-template.md (1 hunks)
  • .specify/templates/tasks-template.md (1 hunks)
  • next.config.js (1 hunks)
  • package.json (1 hunks)
  • prisma/schema.prisma (3 hunks)
  • src/app/(authenticated)/admin/chat-groups/_components/add-members-dialog.tsx (1 hunks)
  • src/app/(authenticated)/admin/chat-groups/_components/chat-groups-list.tsx (1 hunks)
  • src/app/(authenticated)/admin/chat-groups/_components/create-group-dialog.tsx (1 hunks)
  • src/app/(authenticated)/admin/chat-groups/_components/edit-group-dialog.tsx (1 hunks)
  • src/app/(authenticated)/admin/chat-groups/_components/user-selection.tsx (1 hunks)
  • src/app/(authenticated)/admin/chat-groups/page.tsx (1 hunks)
  • src/app/(authenticated)/chat/_components/users-list.tsx (1 hunks)
  • src/app/(authenticated)/chat/page.tsx (1 hunks)
  • src/app/api/chat/online/route.ts (1 hunks)
  • src/app/api/chat/poll/route.ts (1 hunks)
  • src/app/api/chat/send/route.ts (1 hunks)
  • src/components/chat/ChatRoom.test.tsx (1 hunks)
  • src/components/chat/ChatRoom.tsx (1 hunks)
  • src/components/chat/ChatSidebar.tsx (1 hunks)
  • src/components/chat/ImageMessage.tsx (1 hunks)
  • src/components/chat/ImageUpload.tsx (1 hunks)
  • src/components/chat/README.md (1 hunks)
  • src/components/chat/index.ts (1 hunks)
  • src/components/dashboard/news-displ.tsx (3 hunks)
  • src/const/admin-routes.ts (2 hunks)
  • src/const/routes.ts (2 hunks)
  • src/hooks/use-access-control.tsx (2 hunks)
  • src/server/api/root.ts (2 hunks)
  • src/server/api/routers/admin-chat-groups.ts (1 hunks)
  • src/server/api/routers/chat-message.ts (1 hunks)
  • src/server/api/routers/user.ts (1 hunks)
  • src/server/api/trpc.ts (3 hunks)
  • src/server/websocket/chat-server.ts (1 hunks)

Tip

👮 Agentic pre-merge checks are now available in preview!

Pro plan users can now enable pre-merge checks in their settings to enforce checklists before merging PRs.

  • Built-in checks – Quickly apply ready-made checks to enforce title conventions, require pull request descriptions that follow templates, validate linked issues for compliance, and more.
  • Custom agentic checks – Define your own rules using CodeRabbit’s advanced agentic capabilities to enforce organization-specific policies and workflows. For example, you can instruct CodeRabbit’s agent to verify that API documentation is updated whenever API schema files are modified in a PR. Note: Upto 5 custom checks are currently allowed during the preview period. Pricing for this feature will be announced in a few weeks.

Please see the documentation for more information.

Example:

reviews:
pre_merge_checks:
custom_checks:
- name: "Undocumented Breaking Changes"mode: "warning"instructions: | Pass/fail criteria: All breaking changes to public APIs, CLI flags, environment variables, configuration keys, database schemas, or HTTP/GraphQL endpoints must be documented in the "Breaking Change" section of the PR description and in CHANGELOG.md. Exclude purely internal or private changes (e.g., code not exported from package entry points or explicitly marked as internal).

Please share your feedback with us on this Discord post.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@rbxyz
rbxyz merged commit b174ef1 into mainSep 23, 2025
5 of 6 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

chat interno

1 participant

@rbxyz
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

113 chat interno - #114

Merged
rbxyz merged 2 commits into
mainfrom
113-chat-interno
Sep 23, 2025
Merged

113 chat interno#114
rbxyz merged 2 commits into
mainfrom
113-chat-interno

Conversation

@rbxyz

@rbxyzrbxyz commented Sep 23, 2025

Copy link
Copy Markdown
Collaborator

Summary by CodeRabbit

  • New Features

    • Internal chat with global, group, and private rooms, message history, and real‑time updates.
    • Image attachments with preview, expand, and download.
    • Online users list with presence indicators and sector grouping.
    • Admin management of chat groups: create, edit, delete, and add members.
    • Role-based access enabling chat for non‑TOTEM users.
  • Style

    • Refined News card hover/transition behavior for better responsiveness.
  • Documentation

    • Added Chat module overview and usage guide.

@rbxyzrbxyz linked an issue Sep 23, 2025 that may be closed by this pull request
@vercel

vercelBot commented Sep 23, 2025

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentPreviewCommentsUpdated (UTC)
eloReadyReadyPreviewCommentSep 23, 2025 0:54am

@coderabbitai

coderabbitaiBot commented Sep 23, 2025

Copy link
Copy Markdown
Contributor

Caution

Review failed

The pull request is closed.

Walkthrough

Adds a full internal chat system (UI, APIs, WebSocket server, Prisma models), admin chat-group management (UI + tRPC router), access control updates, Next.js config and dependencies for Socket.IO, several Spec-Driven Development scripts/templates, and supporting docs/tests. Updates TRPC context types and wires new routers into the API.

Changes

Cohort / File(s)Summary of changes
Command Workflows
.cursor/commands/*
Adds constitution, implement, plan, specify, and tasks command documents describing workflows and execution steps.
Constitution Memory
.specify/memory/constitution.md
Adds governance/spec template with placeholders and versioning headers.
Spec Scripts (PowerShell)
.specify/scripts/powershell/common.ps1, check-prerequisites.ps1, create-new-feature.ps1, setup-plan.ps1, update-agent-context.ps1
Introduces shared helpers and scripts to create features, validate env, set up plans, and update agent files. Includes JSON/CLI outputs and git-aware behavior.
Spec/Templates
.specify/templates/*
Adds templates for agent files, implementation plan, feature spec, and tasks generation.
Next Config & Deps
next.config.js, package.json
Adds headers() for CORS on /api routes; exposes socket.io packages for RSC. Adds socket.io and socket.io-client dependencies.
Database Schema
prisma/schema.prisma
Adds chat models: chat_group, chat_group_member, chat_message; relations on User; adds NotificationType.CHAT_MESSAGE.
Admin UI — Chat Groups
src/app/(authenticated)/admin/chat-groups/_components/*
Adds dialogs and list UI: create/edit group, add members, user selection; TRPC-integrated with toasts and validation.
Admin Page
src/app/(authenticated)/admin/chat-groups/page.tsx
Adds admin page wiring list and dialogs with access check and stats UI.
Chat App UI
src/app/(authenticated)/chat/_components/users-list.tsx, src/app/(authenticated)/chat/page.tsx
Adds users list with presence polling and main chat page with sidebar-room-users layout and private chat initiation.
Chat API Routes
src/app/api/chat/online/route.ts, src/app/api/chat/poll/route.ts, src/app/api/chat/send/route.ts
Adds REST endpoints for presence reporting, message polling, and sending with access checks and Prisma persistence.
Chat Components
src/components/chat/*
Adds ChatRoom (polling, messaging, images), ChatSidebar (rooms), ImageMessage, ImageUpload, README, and barrel exports.
Tests
src/components/chat/ChatRoom.test.tsx
Adds test suite for ChatRoom with mocks for TRPC, sockets, and auth.
API Wiring & Routers
src/server/api/root.ts, .../routers/admin-chat-groups.ts, .../routers/chat-message.ts, .../routers/user.ts
Wires new routers; adds adminChatGroups and chatMessage routers; userRouter gains getById.
TRPC Context
src/server/api/trpc.ts
Introduces explicit TRPC context interfaces; updates createTRPCContext signature and init typing.
WebSocket Server
src/server/websocket/chat-server.ts
Adds Socket.IO server with join, typing, send, and presence tracking; notification emission.
Constants & Routes
src/const/admin-routes.ts, src/const/routes.ts
Adds admin route for chat groups; minor commented/unused import in routes.
UI Tweak
src/components/dashboard/news-displ.tsx
Adjusts styling/hover behaviors and image sizing; removes backdrop blur.

Sequence Diagram(s)

sequenceDiagram
autonumber
actor User as User
participant UI as Chat UI (ChatRoom)
participant WS as Socket.IO Server
participant DB as Prisma
User->>UI: Open room (roomId)
UI->>WS: joinChat(userId, roomId)
alt group_*
WS->>DB: Verify membership (chat_group_member)
DB-->>WS: Exists/Not
else private_*
WS->>DB: Verify both users exist
DB-->>WS: OK/Fail
end
WS-->>UI: joinedRoom or error
note over UI,WS: On success, broadcast userJoined to room
Loading
sequenceDiagram
autonumber
actor User as User
participant UI as Chat UI (ChatRoom)
participant API as POST /api/chat/send
participant DB as Prisma
participant WS as Socket.IO Server
participant Others as Other Clients
User->>UI: Type message / attach image
UI->>API: POST { userId, roomId, content|imageUrl }
alt group_/private_
API->>DB: Validate access (membership/participants)
end
API->>DB: Create chat_message
DB-->>API: Saved message (+user)
API-->>UI: 200 Created (message)
WS-->>Others: receiveMessage(roomId, message)
UI->>API: GET /api/chat/poll?roomId&lastMessageId
API->>DB: Fetch new messages
DB-->>API: Messages
API-->>UI: Messages
Loading

Estimated code review effort

🎯 5 (Critical) | ⏱️ ~120 minutes

Possibly related PRs

Poem

A tap-tap on keys, a socket ignites,
Groups gather softly in pixel-lit nights.
Rabbits relay messages, swift as the breeze,
Polling and posting with effortless ease.
New rooms, new rules, a chorus of ping—
In burrows of code, the chats take wing. 🐇💬

✨ Finishing touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch 113-chat-interno

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 80915bd and d02fbdb.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (46)
  • .cursor/commands/constitution.md (1 hunks)
  • .cursor/commands/implement.md (1 hunks)
  • .cursor/commands/plan.md (1 hunks)
  • .cursor/commands/specify.md (1 hunks)
  • .cursor/commands/tasks.md (1 hunks)
  • .specify/memory/constitution.md (1 hunks)
  • .specify/scripts/powershell/check-prerequisites.ps1 (1 hunks)
  • .specify/scripts/powershell/common.ps1 (1 hunks)
  • .specify/scripts/powershell/create-new-feature.ps1 (1 hunks)
  • .specify/scripts/powershell/setup-plan.ps1 (1 hunks)
  • .specify/scripts/powershell/update-agent-context.ps1 (1 hunks)
  • .specify/templates/agent-file-template.md (1 hunks)
  • .specify/templates/plan-template.md (1 hunks)
  • .specify/templates/spec-template.md (1 hunks)
  • .specify/templates/tasks-template.md (1 hunks)
  • next.config.js (1 hunks)
  • package.json (1 hunks)
  • prisma/schema.prisma (3 hunks)
  • src/app/(authenticated)/admin/chat-groups/_components/add-members-dialog.tsx (1 hunks)
  • src/app/(authenticated)/admin/chat-groups/_components/chat-groups-list.tsx (1 hunks)
  • src/app/(authenticated)/admin/chat-groups/_components/create-group-dialog.tsx (1 hunks)
  • src/app/(authenticated)/admin/chat-groups/_components/edit-group-dialog.tsx (1 hunks)
  • src/app/(authenticated)/admin/chat-groups/_components/user-selection.tsx (1 hunks)
  • src/app/(authenticated)/admin/chat-groups/page.tsx (1 hunks)
  • src/app/(authenticated)/chat/_components/users-list.tsx (1 hunks)
  • src/app/(authenticated)/chat/page.tsx (1 hunks)
  • src/app/api/chat/online/route.ts (1 hunks)
  • src/app/api/chat/poll/route.ts (1 hunks)
  • src/app/api/chat/send/route.ts (1 hunks)
  • src/components/chat/ChatRoom.test.tsx (1 hunks)
  • src/components/chat/ChatRoom.tsx (1 hunks)
  • src/components/chat/ChatSidebar.tsx (1 hunks)
  • src/components/chat/ImageMessage.tsx (1 hunks)
  • src/components/chat/ImageUpload.tsx (1 hunks)
  • src/components/chat/README.md (1 hunks)
  • src/components/chat/index.ts (1 hunks)
  • src/components/dashboard/news-displ.tsx (3 hunks)
  • src/const/admin-routes.ts (2 hunks)
  • src/const/routes.ts (2 hunks)
  • src/hooks/use-access-control.tsx (2 hunks)
  • src/server/api/root.ts (2 hunks)
  • src/server/api/routers/admin-chat-groups.ts (1 hunks)
  • src/server/api/routers/chat-message.ts (1 hunks)
  • src/server/api/routers/user.ts (1 hunks)
  • src/server/api/trpc.ts (3 hunks)
  • src/server/websocket/chat-server.ts (1 hunks)

Tip

👮 Agentic pre-merge checks are now available in preview!

Pro plan users can now enable pre-merge checks in their settings to enforce checklists before merging PRs.

  • Built-in checks – Quickly apply ready-made checks to enforce title conventions, require pull request descriptions that follow templates, validate linked issues for compliance, and more.
  • Custom agentic checks – Define your own rules using CodeRabbit’s advanced agentic capabilities to enforce organization-specific policies and workflows. For example, you can instruct CodeRabbit’s agent to verify that API documentation is updated whenever API schema files are modified in a PR. Note: Upto 5 custom checks are currently allowed during the preview period. Pricing for this feature will be announced in a few weeks.

Please see the documentation for more information.

Example:

reviews:
pre_merge_checks:
custom_checks:
- name: "Undocumented Breaking Changes"mode: "warning"instructions: | Pass/fail criteria: All breaking changes to public APIs, CLI flags, environment variables, configuration keys, database schemas, or HTTP/GraphQL endpoints must be documented in the "Breaking Change" section of the PR description and in CHANGELOG.md. Exclude purely internal or private changes (e.g., code not exported from package entry points or explicitly marked as internal).

Please share your feedback with us on this Discord post.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@rbxyz
rbxyz merged commit b174ef1 into mainSep 23, 2025
5 of 6 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

chat interno

1 participant

@rbxyz
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

113 chat interno - #114

Merged
rbxyz merged 2 commits into
mainfrom
113-chat-interno
Sep 23, 2025
Merged

113 chat interno#114
rbxyz merged 2 commits into
mainfrom
113-chat-interno

Conversation

@rbxyz

@rbxyzrbxyz commented Sep 23, 2025

Copy link
Copy Markdown
Collaborator

Summary by CodeRabbit

  • New Features

    • Internal chat with global, group, and private rooms, message history, and real‑time updates.
    • Image attachments with preview, expand, and download.
    • Online users list with presence indicators and sector grouping.
    • Admin management of chat groups: create, edit, delete, and add members.
    • Role-based access enabling chat for non‑TOTEM users.
  • Style

    • Refined News card hover/transition behavior for better responsiveness.
  • Documentation

    • Added Chat module overview and usage guide.

@rbxyzrbxyz linked an issue Sep 23, 2025 that may be closed by this pull request
@vercel

vercelBot commented Sep 23, 2025

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentPreviewCommentsUpdated (UTC)
eloReadyReadyPreviewCommentSep 23, 2025 0:54am

@coderabbitai

coderabbitaiBot commented Sep 23, 2025

Copy link
Copy Markdown
Contributor

Caution

Review failed

The pull request is closed.

Walkthrough

Adds a full internal chat system (UI, APIs, WebSocket server, Prisma models), admin chat-group management (UI + tRPC router), access control updates, Next.js config and dependencies for Socket.IO, several Spec-Driven Development scripts/templates, and supporting docs/tests. Updates TRPC context types and wires new routers into the API.

Changes

Cohort / File(s)Summary of changes
Command Workflows
.cursor/commands/*
Adds constitution, implement, plan, specify, and tasks command documents describing workflows and execution steps.
Constitution Memory
.specify/memory/constitution.md
Adds governance/spec template with placeholders and versioning headers.
Spec Scripts (PowerShell)
.specify/scripts/powershell/common.ps1, check-prerequisites.ps1, create-new-feature.ps1, setup-plan.ps1, update-agent-context.ps1
Introduces shared helpers and scripts to create features, validate env, set up plans, and update agent files. Includes JSON/CLI outputs and git-aware behavior.
Spec/Templates
.specify/templates/*
Adds templates for agent files, implementation plan, feature spec, and tasks generation.
Next Config & Deps
next.config.js, package.json
Adds headers() for CORS on /api routes; exposes socket.io packages for RSC. Adds socket.io and socket.io-client dependencies.
Database Schema
prisma/schema.prisma
Adds chat models: chat_group, chat_group_member, chat_message; relations on User; adds NotificationType.CHAT_MESSAGE.
Admin UI — Chat Groups
src/app/(authenticated)/admin/chat-groups/_components/*
Adds dialogs and list UI: create/edit group, add members, user selection; TRPC-integrated with toasts and validation.
Admin Page
src/app/(authenticated)/admin/chat-groups/page.tsx
Adds admin page wiring list and dialogs with access check and stats UI.
Chat App UI
src/app/(authenticated)/chat/_components/users-list.tsx, src/app/(authenticated)/chat/page.tsx
Adds users list with presence polling and main chat page with sidebar-room-users layout and private chat initiation.
Chat API Routes
src/app/api/chat/online/route.ts, src/app/api/chat/poll/route.ts, src/app/api/chat/send/route.ts
Adds REST endpoints for presence reporting, message polling, and sending with access checks and Prisma persistence.
Chat Components
src/components/chat/*
Adds ChatRoom (polling, messaging, images), ChatSidebar (rooms), ImageMessage, ImageUpload, README, and barrel exports.
Tests
src/components/chat/ChatRoom.test.tsx
Adds test suite for ChatRoom with mocks for TRPC, sockets, and auth.
API Wiring & Routers
src/server/api/root.ts, .../routers/admin-chat-groups.ts, .../routers/chat-message.ts, .../routers/user.ts
Wires new routers; adds adminChatGroups and chatMessage routers; userRouter gains getById.
TRPC Context
src/server/api/trpc.ts
Introduces explicit TRPC context interfaces; updates createTRPCContext signature and init typing.
WebSocket Server
src/server/websocket/chat-server.ts
Adds Socket.IO server with join, typing, send, and presence tracking; notification emission.
Constants & Routes
src/const/admin-routes.ts, src/const/routes.ts
Adds admin route for chat groups; minor commented/unused import in routes.
UI Tweak
src/components/dashboard/news-displ.tsx
Adjusts styling/hover behaviors and image sizing; removes backdrop blur.

Sequence Diagram(s)

sequenceDiagram
autonumber
actor User as User
participant UI as Chat UI (ChatRoom)
participant WS as Socket.IO Server
participant DB as Prisma
User->>UI: Open room (roomId)
UI->>WS: joinChat(userId, roomId)
alt group_*
WS->>DB: Verify membership (chat_group_member)
DB-->>WS: Exists/Not
else private_*
WS->>DB: Verify both users exist
DB-->>WS: OK/Fail
end
WS-->>UI: joinedRoom or error
note over UI,WS: On success, broadcast userJoined to room
Loading
sequenceDiagram
autonumber
actor User as User
participant UI as Chat UI (ChatRoom)
participant API as POST /api/chat/send
participant DB as Prisma
participant WS as Socket.IO Server
participant Others as Other Clients
User->>UI: Type message / attach image
UI->>API: POST { userId, roomId, content|imageUrl }
alt group_/private_
API->>DB: Validate access (membership/participants)
end
API->>DB: Create chat_message
DB-->>API: Saved message (+user)
API-->>UI: 200 Created (message)
WS-->>Others: receiveMessage(roomId, message)
UI->>API: GET /api/chat/poll?roomId&lastMessageId
API->>DB: Fetch new messages
DB-->>API: Messages
API-->>UI: Messages
Loading

Estimated code review effort

🎯 5 (Critical) | ⏱️ ~120 minutes

Possibly related PRs

Poem

A tap-tap on keys, a socket ignites,
Groups gather softly in pixel-lit nights.
Rabbits relay messages, swift as the breeze,
Polling and posting with effortless ease.
New rooms, new rules, a chorus of ping—
In burrows of code, the chats take wing. 🐇💬

✨ Finishing touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch 113-chat-interno

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 80915bd and d02fbdb.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (46)
  • .cursor/commands/constitution.md (1 hunks)
  • .cursor/commands/implement.md (1 hunks)
  • .cursor/commands/plan.md (1 hunks)
  • .cursor/commands/specify.md (1 hunks)
  • .cursor/commands/tasks.md (1 hunks)
  • .specify/memory/constitution.md (1 hunks)
  • .specify/scripts/powershell/check-prerequisites.ps1 (1 hunks)
  • .specify/scripts/powershell/common.ps1 (1 hunks)
  • .specify/scripts/powershell/create-new-feature.ps1 (1 hunks)
  • .specify/scripts/powershell/setup-plan.ps1 (1 hunks)
  • .specify/scripts/powershell/update-agent-context.ps1 (1 hunks)
  • .specify/templates/agent-file-template.md (1 hunks)
  • .specify/templates/plan-template.md (1 hunks)
  • .specify/templates/spec-template.md (1 hunks)
  • .specify/templates/tasks-template.md (1 hunks)
  • next.config.js (1 hunks)
  • package.json (1 hunks)
  • prisma/schema.prisma (3 hunks)
  • src/app/(authenticated)/admin/chat-groups/_components/add-members-dialog.tsx (1 hunks)
  • src/app/(authenticated)/admin/chat-groups/_components/chat-groups-list.tsx (1 hunks)
  • src/app/(authenticated)/admin/chat-groups/_components/create-group-dialog.tsx (1 hunks)
  • src/app/(authenticated)/admin/chat-groups/_components/edit-group-dialog.tsx (1 hunks)
  • src/app/(authenticated)/admin/chat-groups/_components/user-selection.tsx (1 hunks)
  • src/app/(authenticated)/admin/chat-groups/page.tsx (1 hunks)
  • src/app/(authenticated)/chat/_components/users-list.tsx (1 hunks)
  • src/app/(authenticated)/chat/page.tsx (1 hunks)
  • src/app/api/chat/online/route.ts (1 hunks)
  • src/app/api/chat/poll/route.ts (1 hunks)
  • src/app/api/chat/send/route.ts (1 hunks)
  • src/components/chat/ChatRoom.test.tsx (1 hunks)
  • src/components/chat/ChatRoom.tsx (1 hunks)
  • src/components/chat/ChatSidebar.tsx (1 hunks)
  • src/components/chat/ImageMessage.tsx (1 hunks)
  • src/components/chat/ImageUpload.tsx (1 hunks)
  • src/components/chat/README.md (1 hunks)
  • src/components/chat/index.ts (1 hunks)
  • src/components/dashboard/news-displ.tsx (3 hunks)
  • src/const/admin-routes.ts (2 hunks)
  • src/const/routes.ts (2 hunks)
  • src/hooks/use-access-control.tsx (2 hunks)
  • src/server/api/root.ts (2 hunks)
  • src/server/api/routers/admin-chat-groups.ts (1 hunks)
  • src/server/api/routers/chat-message.ts (1 hunks)
  • src/server/api/routers/user.ts (1 hunks)
  • src/server/api/trpc.ts (3 hunks)
  • src/server/websocket/chat-server.ts (1 hunks)

Tip

👮 Agentic pre-merge checks are now available in preview!

Pro plan users can now enable pre-merge checks in their settings to enforce checklists before merging PRs.

  • Built-in checks – Quickly apply ready-made checks to enforce title conventions, require pull request descriptions that follow templates, validate linked issues for compliance, and more.
  • Custom agentic checks – Define your own rules using CodeRabbit’s advanced agentic capabilities to enforce organization-specific policies and workflows. For example, you can instruct CodeRabbit’s agent to verify that API documentation is updated whenever API schema files are modified in a PR. Note: Upto 5 custom checks are currently allowed during the preview period. Pricing for this feature will be announced in a few weeks.

Please see the documentation for more information.

Example:

reviews:
pre_merge_checks:
custom_checks:
- name: "Undocumented Breaking Changes"mode: "warning"instructions: | Pass/fail criteria: All breaking changes to public APIs, CLI flags, environment variables, configuration keys, database schemas, or HTTP/GraphQL endpoints must be documented in the "Breaking Change" section of the PR description and in CHANGELOG.md. Exclude purely internal or private changes (e.g., code not exported from package entry points or explicitly marked as internal).

Please share your feedback with us on this Discord post.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@rbxyz
rbxyz merged commit b174ef1 into mainSep 23, 2025
5 of 6 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

chat interno

1 participant

@rbxyz
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

113 chat interno - #114

Merged
rbxyz merged 2 commits into
mainfrom
113-chat-interno
Sep 23, 2025
Merged

113 chat interno#114
rbxyz merged 2 commits into
mainfrom
113-chat-interno

Conversation

@rbxyz

@rbxyzrbxyz commented Sep 23, 2025

Copy link
Copy Markdown
Collaborator

Summary by CodeRabbit

  • New Features

    • Internal chat with global, group, and private rooms, message history, and real‑time updates.
    • Image attachments with preview, expand, and download.
    • Online users list with presence indicators and sector grouping.
    • Admin management of chat groups: create, edit, delete, and add members.
    • Role-based access enabling chat for non‑TOTEM users.
  • Style

    • Refined News card hover/transition behavior for better responsiveness.
  • Documentation

    • Added Chat module overview and usage guide.

@rbxyzrbxyz linked an issue Sep 23, 2025 that may be closed by this pull request
@vercel

vercelBot commented Sep 23, 2025

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentPreviewCommentsUpdated (UTC)
eloReadyReadyPreviewCommentSep 23, 2025 0:54am

@coderabbitai

coderabbitaiBot commented Sep 23, 2025

Copy link
Copy Markdown
Contributor

Caution

Review failed

The pull request is closed.

Walkthrough

Adds a full internal chat system (UI, APIs, WebSocket server, Prisma models), admin chat-group management (UI + tRPC router), access control updates, Next.js config and dependencies for Socket.IO, several Spec-Driven Development scripts/templates, and supporting docs/tests. Updates TRPC context types and wires new routers into the API.

Changes

Cohort / File(s)Summary of changes
Command Workflows
.cursor/commands/*
Adds constitution, implement, plan, specify, and tasks command documents describing workflows and execution steps.
Constitution Memory
.specify/memory/constitution.md
Adds governance/spec template with placeholders and versioning headers.
Spec Scripts (PowerShell)
.specify/scripts/powershell/common.ps1, check-prerequisites.ps1, create-new-feature.ps1, setup-plan.ps1, update-agent-context.ps1
Introduces shared helpers and scripts to create features, validate env, set up plans, and update agent files. Includes JSON/CLI outputs and git-aware behavior.
Spec/Templates
.specify/templates/*
Adds templates for agent files, implementation plan, feature spec, and tasks generation.
Next Config & Deps
next.config.js, package.json
Adds headers() for CORS on /api routes; exposes socket.io packages for RSC. Adds socket.io and socket.io-client dependencies.
Database Schema
prisma/schema.prisma
Adds chat models: chat_group, chat_group_member, chat_message; relations on User; adds NotificationType.CHAT_MESSAGE.
Admin UI — Chat Groups
src/app/(authenticated)/admin/chat-groups/_components/*
Adds dialogs and list UI: create/edit group, add members, user selection; TRPC-integrated with toasts and validation.
Admin Page
src/app/(authenticated)/admin/chat-groups/page.tsx
Adds admin page wiring list and dialogs with access check and stats UI.
Chat App UI
src/app/(authenticated)/chat/_components/users-list.tsx, src/app/(authenticated)/chat/page.tsx
Adds users list with presence polling and main chat page with sidebar-room-users layout and private chat initiation.
Chat API Routes
src/app/api/chat/online/route.ts, src/app/api/chat/poll/route.ts, src/app/api/chat/send/route.ts
Adds REST endpoints for presence reporting, message polling, and sending with access checks and Prisma persistence.
Chat Components
src/components/chat/*
Adds ChatRoom (polling, messaging, images), ChatSidebar (rooms), ImageMessage, ImageUpload, README, and barrel exports.
Tests
src/components/chat/ChatRoom.test.tsx
Adds test suite for ChatRoom with mocks for TRPC, sockets, and auth.
API Wiring & Routers
src/server/api/root.ts, .../routers/admin-chat-groups.ts, .../routers/chat-message.ts, .../routers/user.ts
Wires new routers; adds adminChatGroups and chatMessage routers; userRouter gains getById.
TRPC Context
src/server/api/trpc.ts
Introduces explicit TRPC context interfaces; updates createTRPCContext signature and init typing.
WebSocket Server
src/server/websocket/chat-server.ts
Adds Socket.IO server with join, typing, send, and presence tracking; notification emission.
Constants & Routes
src/const/admin-routes.ts, src/const/routes.ts
Adds admin route for chat groups; minor commented/unused import in routes.
UI Tweak
src/components/dashboard/news-displ.tsx
Adjusts styling/hover behaviors and image sizing; removes backdrop blur.

Sequence Diagram(s)

sequenceDiagram
autonumber
actor User as User
participant UI as Chat UI (ChatRoom)
participant WS as Socket.IO Server
participant DB as Prisma
User->>UI: Open room (roomId)
UI->>WS: joinChat(userId, roomId)
alt group_*
WS->>DB: Verify membership (chat_group_member)
DB-->>WS: Exists/Not
else private_*
WS->>DB: Verify both users exist
DB-->>WS: OK/Fail
end
WS-->>UI: joinedRoom or error
note over UI,WS: On success, broadcast userJoined to room
Loading
sequenceDiagram
autonumber
actor User as User
participant UI as Chat UI (ChatRoom)
participant API as POST /api/chat/send
participant DB as Prisma
participant WS as Socket.IO Server
participant Others as Other Clients
User->>UI: Type message / attach image
UI->>API: POST { userId, roomId, content|imageUrl }
alt group_/private_
API->>DB: Validate access (membership/participants)
end
API->>DB: Create chat_message
DB-->>API: Saved message (+user)
API-->>UI: 200 Created (message)
WS-->>Others: receiveMessage(roomId, message)
UI->>API: GET /api/chat/poll?roomId&lastMessageId
API->>DB: Fetch new messages
DB-->>API: Messages
API-->>UI: Messages
Loading

Estimated code review effort

🎯 5 (Critical) | ⏱️ ~120 minutes

Possibly related PRs

Poem

A tap-tap on keys, a socket ignites,
Groups gather softly in pixel-lit nights.
Rabbits relay messages, swift as the breeze,
Polling and posting with effortless ease.
New rooms, new rules, a chorus of ping—
In burrows of code, the chats take wing. 🐇💬

✨ Finishing touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch 113-chat-interno

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 80915bd and d02fbdb.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (46)
  • .cursor/commands/constitution.md (1 hunks)
  • .cursor/commands/implement.md (1 hunks)
  • .cursor/commands/plan.md (1 hunks)
  • .cursor/commands/specify.md (1 hunks)
  • .cursor/commands/tasks.md (1 hunks)
  • .specify/memory/constitution.md (1 hunks)
  • .specify/scripts/powershell/check-prerequisites.ps1 (1 hunks)
  • .specify/scripts/powershell/common.ps1 (1 hunks)
  • .specify/scripts/powershell/create-new-feature.ps1 (1 hunks)
  • .specify/scripts/powershell/setup-plan.ps1 (1 hunks)
  • .specify/scripts/powershell/update-agent-context.ps1 (1 hunks)
  • .specify/templates/agent-file-template.md (1 hunks)
  • .specify/templates/plan-template.md (1 hunks)
  • .specify/templates/spec-template.md (1 hunks)
  • .specify/templates/tasks-template.md (1 hunks)
  • next.config.js (1 hunks)
  • package.json (1 hunks)
  • prisma/schema.prisma (3 hunks)
  • src/app/(authenticated)/admin/chat-groups/_components/add-members-dialog.tsx (1 hunks)
  • src/app/(authenticated)/admin/chat-groups/_components/chat-groups-list.tsx (1 hunks)
  • src/app/(authenticated)/admin/chat-groups/_components/create-group-dialog.tsx (1 hunks)
  • src/app/(authenticated)/admin/chat-groups/_components/edit-group-dialog.tsx (1 hunks)
  • src/app/(authenticated)/admin/chat-groups/_components/user-selection.tsx (1 hunks)
  • src/app/(authenticated)/admin/chat-groups/page.tsx (1 hunks)
  • src/app/(authenticated)/chat/_components/users-list.tsx (1 hunks)
  • src/app/(authenticated)/chat/page.tsx (1 hunks)
  • src/app/api/chat/online/route.ts (1 hunks)
  • src/app/api/chat/poll/route.ts (1 hunks)
  • src/app/api/chat/send/route.ts (1 hunks)
  • src/components/chat/ChatRoom.test.tsx (1 hunks)
  • src/components/chat/ChatRoom.tsx (1 hunks)
  • src/components/chat/ChatSidebar.tsx (1 hunks)
  • src/components/chat/ImageMessage.tsx (1 hunks)
  • src/components/chat/ImageUpload.tsx (1 hunks)
  • src/components/chat/README.md (1 hunks)
  • src/components/chat/index.ts (1 hunks)
  • src/components/dashboard/news-displ.tsx (3 hunks)
  • src/const/admin-routes.ts (2 hunks)
  • src/const/routes.ts (2 hunks)
  • src/hooks/use-access-control.tsx (2 hunks)
  • src/server/api/root.ts (2 hunks)
  • src/server/api/routers/admin-chat-groups.ts (1 hunks)
  • src/server/api/routers/chat-message.ts (1 hunks)
  • src/server/api/routers/user.ts (1 hunks)
  • src/server/api/trpc.ts (3 hunks)
  • src/server/websocket/chat-server.ts (1 hunks)

Tip

👮 Agentic pre-merge checks are now available in preview!

Pro plan users can now enable pre-merge checks in their settings to enforce checklists before merging PRs.

  • Built-in checks – Quickly apply ready-made checks to enforce title conventions, require pull request descriptions that follow templates, validate linked issues for compliance, and more.
  • Custom agentic checks – Define your own rules using CodeRabbit’s advanced agentic capabilities to enforce organization-specific policies and workflows. For example, you can instruct CodeRabbit’s agent to verify that API documentation is updated whenever API schema files are modified in a PR. Note: Upto 5 custom checks are currently allowed during the preview period. Pricing for this feature will be announced in a few weeks.

Please see the documentation for more information.

Example:

reviews:
pre_merge_checks:
custom_checks:
- name: "Undocumented Breaking Changes"mode: "warning"instructions: | Pass/fail criteria: All breaking changes to public APIs, CLI flags, environment variables, configuration keys, database schemas, or HTTP/GraphQL endpoints must be documented in the "Breaking Change" section of the PR description and in CHANGELOG.md. Exclude purely internal or private changes (e.g., code not exported from package entry points or explicitly marked as internal).

Please share your feedback with us on this Discord post.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@rbxyz
rbxyz merged commit b174ef1 into mainSep 23, 2025
5 of 6 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

chat interno

1 participant

@rbxyz
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

113 chat interno - #114

Merged
rbxyz merged 2 commits into
mainfrom
113-chat-interno
Sep 23, 2025
Merged

113 chat interno#114
rbxyz merged 2 commits into
mainfrom
113-chat-interno

Conversation

@rbxyz

@rbxyzrbxyz commented Sep 23, 2025

Copy link
Copy Markdown
Collaborator

Summary by CodeRabbit

  • New Features

    • Internal chat with global, group, and private rooms, message history, and real‑time updates.
    • Image attachments with preview, expand, and download.
    • Online users list with presence indicators and sector grouping.
    • Admin management of chat groups: create, edit, delete, and add members.
    • Role-based access enabling chat for non‑TOTEM users.
  • Style

    • Refined News card hover/transition behavior for better responsiveness.
  • Documentation

    • Added Chat module overview and usage guide.

@rbxyzrbxyz linked an issue Sep 23, 2025 that may be closed by this pull request
@vercel

vercelBot commented Sep 23, 2025

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentPreviewCommentsUpdated (UTC)
eloReadyReadyPreviewCommentSep 23, 2025 0:54am

@coderabbitai

coderabbitaiBot commented Sep 23, 2025

Copy link
Copy Markdown
Contributor

Caution

Review failed

The pull request is closed.

Walkthrough

Adds a full internal chat system (UI, APIs, WebSocket server, Prisma models), admin chat-group management (UI + tRPC router), access control updates, Next.js config and dependencies for Socket.IO, several Spec-Driven Development scripts/templates, and supporting docs/tests. Updates TRPC context types and wires new routers into the API.

Changes

Cohort / File(s)Summary of changes
Command Workflows
.cursor/commands/*
Adds constitution, implement, plan, specify, and tasks command documents describing workflows and execution steps.
Constitution Memory
.specify/memory/constitution.md
Adds governance/spec template with placeholders and versioning headers.
Spec Scripts (PowerShell)
.specify/scripts/powershell/common.ps1, check-prerequisites.ps1, create-new-feature.ps1, setup-plan.ps1, update-agent-context.ps1
Introduces shared helpers and scripts to create features, validate env, set up plans, and update agent files. Includes JSON/CLI outputs and git-aware behavior.
Spec/Templates
.specify/templates/*
Adds templates for agent files, implementation plan, feature spec, and tasks generation.
Next Config & Deps
next.config.js, package.json
Adds headers() for CORS on /api routes; exposes socket.io packages for RSC. Adds socket.io and socket.io-client dependencies.
Database Schema
prisma/schema.prisma
Adds chat models: chat_group, chat_group_member, chat_message; relations on User; adds NotificationType.CHAT_MESSAGE.
Admin UI — Chat Groups
src/app/(authenticated)/admin/chat-groups/_components/*
Adds dialogs and list UI: create/edit group, add members, user selection; TRPC-integrated with toasts and validation.
Admin Page
src/app/(authenticated)/admin/chat-groups/page.tsx
Adds admin page wiring list and dialogs with access check and stats UI.
Chat App UI
src/app/(authenticated)/chat/_components/users-list.tsx, src/app/(authenticated)/chat/page.tsx
Adds users list with presence polling and main chat page with sidebar-room-users layout and private chat initiation.
Chat API Routes
src/app/api/chat/online/route.ts, src/app/api/chat/poll/route.ts, src/app/api/chat/send/route.ts
Adds REST endpoints for presence reporting, message polling, and sending with access checks and Prisma persistence.
Chat Components
src/components/chat/*
Adds ChatRoom (polling, messaging, images), ChatSidebar (rooms), ImageMessage, ImageUpload, README, and barrel exports.
Tests
src/components/chat/ChatRoom.test.tsx
Adds test suite for ChatRoom with mocks for TRPC, sockets, and auth.
API Wiring & Routers
src/server/api/root.ts, .../routers/admin-chat-groups.ts, .../routers/chat-message.ts, .../routers/user.ts
Wires new routers; adds adminChatGroups and chatMessage routers; userRouter gains getById.
TRPC Context
src/server/api/trpc.ts
Introduces explicit TRPC context interfaces; updates createTRPCContext signature and init typing.
WebSocket Server
src/server/websocket/chat-server.ts
Adds Socket.IO server with join, typing, send, and presence tracking; notification emission.
Constants & Routes
src/const/admin-routes.ts, src/const/routes.ts
Adds admin route for chat groups; minor commented/unused import in routes.
UI Tweak
src/components/dashboard/news-displ.tsx
Adjusts styling/hover behaviors and image sizing; removes backdrop blur.

Sequence Diagram(s)

sequenceDiagram
autonumber
actor User as User
participant UI as Chat UI (ChatRoom)
participant WS as Socket.IO Server
participant DB as Prisma
User->>UI: Open room (roomId)
UI->>WS: joinChat(userId, roomId)
alt group_*
WS->>DB: Verify membership (chat_group_member)
DB-->>WS: Exists/Not
else private_*
WS->>DB: Verify both users exist
DB-->>WS: OK/Fail
end
WS-->>UI: joinedRoom or error
note over UI,WS: On success, broadcast userJoined to room
Loading
sequenceDiagram
autonumber
actor User as User
participant UI as Chat UI (ChatRoom)
participant API as POST /api/chat/send
participant DB as Prisma
participant WS as Socket.IO Server
participant Others as Other Clients
User->>UI: Type message / attach image
UI->>API: POST { userId, roomId, content|imageUrl }
alt group_/private_
API->>DB: Validate access (membership/participants)
end
API->>DB: Create chat_message
DB-->>API: Saved message (+user)
API-->>UI: 200 Created (message)
WS-->>Others: receiveMessage(roomId, message)
UI->>API: GET /api/chat/poll?roomId&lastMessageId
API->>DB: Fetch new messages
DB-->>API: Messages
API-->>UI: Messages
Loading

Estimated code review effort

🎯 5 (Critical) | ⏱️ ~120 minutes

Possibly related PRs

Poem

A tap-tap on keys, a socket ignites,
Groups gather softly in pixel-lit nights.
Rabbits relay messages, swift as the breeze,
Polling and posting with effortless ease.
New rooms, new rules, a chorus of ping—
In burrows of code, the chats take wing. 🐇💬

✨ Finishing touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch 113-chat-interno

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 80915bd and d02fbdb.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (46)
  • .cursor/commands/constitution.md (1 hunks)
  • .cursor/commands/implement.md (1 hunks)
  • .cursor/commands/plan.md (1 hunks)
  • .cursor/commands/specify.md (1 hunks)
  • .cursor/commands/tasks.md (1 hunks)
  • .specify/memory/constitution.md (1 hunks)
  • .specify/scripts/powershell/check-prerequisites.ps1 (1 hunks)
  • .specify/scripts/powershell/common.ps1 (1 hunks)
  • .specify/scripts/powershell/create-new-feature.ps1 (1 hunks)
  • .specify/scripts/powershell/setup-plan.ps1 (1 hunks)
  • .specify/scripts/powershell/update-agent-context.ps1 (1 hunks)
  • .specify/templates/agent-file-template.md (1 hunks)
  • .specify/templates/plan-template.md (1 hunks)
  • .specify/templates/spec-template.md (1 hunks)
  • .specify/templates/tasks-template.md (1 hunks)
  • next.config.js (1 hunks)
  • package.json (1 hunks)
  • prisma/schema.prisma (3 hunks)
  • src/app/(authenticated)/admin/chat-groups/_components/add-members-dialog.tsx (1 hunks)
  • src/app/(authenticated)/admin/chat-groups/_components/chat-groups-list.tsx (1 hunks)
  • src/app/(authenticated)/admin/chat-groups/_components/create-group-dialog.tsx (1 hunks)
  • src/app/(authenticated)/admin/chat-groups/_components/edit-group-dialog.tsx (1 hunks)
  • src/app/(authenticated)/admin/chat-groups/_components/user-selection.tsx (1 hunks)
  • src/app/(authenticated)/admin/chat-groups/page.tsx (1 hunks)
  • src/app/(authenticated)/chat/_components/users-list.tsx (1 hunks)
  • src/app/(authenticated)/chat/page.tsx (1 hunks)
  • src/app/api/chat/online/route.ts (1 hunks)
  • src/app/api/chat/poll/route.ts (1 hunks)
  • src/app/api/chat/send/route.ts (1 hunks)
  • src/components/chat/ChatRoom.test.tsx (1 hunks)
  • src/components/chat/ChatRoom.tsx (1 hunks)
  • src/components/chat/ChatSidebar.tsx (1 hunks)
  • src/components/chat/ImageMessage.tsx (1 hunks)
  • src/components/chat/ImageUpload.tsx (1 hunks)
  • src/components/chat/README.md (1 hunks)
  • src/components/chat/index.ts (1 hunks)
  • src/components/dashboard/news-displ.tsx (3 hunks)
  • src/const/admin-routes.ts (2 hunks)
  • src/const/routes.ts (2 hunks)
  • src/hooks/use-access-control.tsx (2 hunks)
  • src/server/api/root.ts (2 hunks)
  • src/server/api/routers/admin-chat-groups.ts (1 hunks)
  • src/server/api/routers/chat-message.ts (1 hunks)
  • src/server/api/routers/user.ts (1 hunks)
  • src/server/api/trpc.ts (3 hunks)
  • src/server/websocket/chat-server.ts (1 hunks)

Tip

👮 Agentic pre-merge checks are now available in preview!

Pro plan users can now enable pre-merge checks in their settings to enforce checklists before merging PRs.

  • Built-in checks – Quickly apply ready-made checks to enforce title conventions, require pull request descriptions that follow templates, validate linked issues for compliance, and more.
  • Custom agentic checks – Define your own rules using CodeRabbit’s advanced agentic capabilities to enforce organization-specific policies and workflows. For example, you can instruct CodeRabbit’s agent to verify that API documentation is updated whenever API schema files are modified in a PR. Note: Upto 5 custom checks are currently allowed during the preview period. Pricing for this feature will be announced in a few weeks.

Please see the documentation for more information.

Example:

reviews:
pre_merge_checks:
custom_checks:
- name: "Undocumented Breaking Changes"mode: "warning"instructions: | Pass/fail criteria: All breaking changes to public APIs, CLI flags, environment variables, configuration keys, database schemas, or HTTP/GraphQL endpoints must be documented in the "Breaking Change" section of the PR description and in CHANGELOG.md. Exclude purely internal or private changes (e.g., code not exported from package entry points or explicitly marked as internal).

Please share your feedback with us on this Discord post.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@rbxyz
rbxyz merged commit b174ef1 into mainSep 23, 2025
5 of 6 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

chat interno

1 participant

@rbxyz
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

113 chat interno - #114

Merged
rbxyz merged 2 commits into
mainfrom
113-chat-interno
Sep 23, 2025
Merged

113 chat interno#114
rbxyz merged 2 commits into
mainfrom
113-chat-interno

Conversation

@rbxyz

@rbxyzrbxyz commented Sep 23, 2025

Copy link
Copy Markdown
Collaborator

Summary by CodeRabbit

  • New Features

    • Internal chat with global, group, and private rooms, message history, and real‑time updates.
    • Image attachments with preview, expand, and download.
    • Online users list with presence indicators and sector grouping.
    • Admin management of chat groups: create, edit, delete, and add members.
    • Role-based access enabling chat for non‑TOTEM users.
  • Style

    • Refined News card hover/transition behavior for better responsiveness.
  • Documentation

    • Added Chat module overview and usage guide.

@rbxyzrbxyz linked an issue Sep 23, 2025 that may be closed by this pull request
@vercel

vercelBot commented Sep 23, 2025

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentPreviewCommentsUpdated (UTC)
eloReadyReadyPreviewCommentSep 23, 2025 0:54am

@coderabbitai

coderabbitaiBot commented Sep 23, 2025

Copy link
Copy Markdown
Contributor

Caution

Review failed

The pull request is closed.

Walkthrough

Adds a full internal chat system (UI, APIs, WebSocket server, Prisma models), admin chat-group management (UI + tRPC router), access control updates, Next.js config and dependencies for Socket.IO, several Spec-Driven Development scripts/templates, and supporting docs/tests. Updates TRPC context types and wires new routers into the API.

Changes

Cohort / File(s)Summary of changes
Command Workflows
.cursor/commands/*
Adds constitution, implement, plan, specify, and tasks command documents describing workflows and execution steps.
Constitution Memory
.specify/memory/constitution.md
Adds governance/spec template with placeholders and versioning headers.
Spec Scripts (PowerShell)
.specify/scripts/powershell/common.ps1, check-prerequisites.ps1, create-new-feature.ps1, setup-plan.ps1, update-agent-context.ps1
Introduces shared helpers and scripts to create features, validate env, set up plans, and update agent files. Includes JSON/CLI outputs and git-aware behavior.
Spec/Templates
.specify/templates/*
Adds templates for agent files, implementation plan, feature spec, and tasks generation.
Next Config & Deps
next.config.js, package.json
Adds headers() for CORS on /api routes; exposes socket.io packages for RSC. Adds socket.io and socket.io-client dependencies.
Database Schema
prisma/schema.prisma
Adds chat models: chat_group, chat_group_member, chat_message; relations on User; adds NotificationType.CHAT_MESSAGE.
Admin UI — Chat Groups
src/app/(authenticated)/admin/chat-groups/_components/*
Adds dialogs and list UI: create/edit group, add members, user selection; TRPC-integrated with toasts and validation.
Admin Page
src/app/(authenticated)/admin/chat-groups/page.tsx
Adds admin page wiring list and dialogs with access check and stats UI.
Chat App UI
src/app/(authenticated)/chat/_components/users-list.tsx, src/app/(authenticated)/chat/page.tsx
Adds users list with presence polling and main chat page with sidebar-room-users layout and private chat initiation.
Chat API Routes
src/app/api/chat/online/route.ts, src/app/api/chat/poll/route.ts, src/app/api/chat/send/route.ts
Adds REST endpoints for presence reporting, message polling, and sending with access checks and Prisma persistence.
Chat Components
src/components/chat/*
Adds ChatRoom (polling, messaging, images), ChatSidebar (rooms), ImageMessage, ImageUpload, README, and barrel exports.
Tests
src/components/chat/ChatRoom.test.tsx
Adds test suite for ChatRoom with mocks for TRPC, sockets, and auth.
API Wiring & Routers
src/server/api/root.ts, .../routers/admin-chat-groups.ts, .../routers/chat-message.ts, .../routers/user.ts
Wires new routers; adds adminChatGroups and chatMessage routers; userRouter gains getById.
TRPC Context
src/server/api/trpc.ts
Introduces explicit TRPC context interfaces; updates createTRPCContext signature and init typing.
WebSocket Server
src/server/websocket/chat-server.ts
Adds Socket.IO server with join, typing, send, and presence tracking; notification emission.
Constants & Routes
src/const/admin-routes.ts, src/const/routes.ts
Adds admin route for chat groups; minor commented/unused import in routes.
UI Tweak
src/components/dashboard/news-displ.tsx
Adjusts styling/hover behaviors and image sizing; removes backdrop blur.

Sequence Diagram(s)

sequenceDiagram
autonumber
actor User as User
participant UI as Chat UI (ChatRoom)
participant WS as Socket.IO Server
participant DB as Prisma
User->>UI: Open room (roomId)
UI->>WS: joinChat(userId, roomId)
alt group_*
WS->>DB: Verify membership (chat_group_member)
DB-->>WS: Exists/Not
else private_*
WS->>DB: Verify both users exist
DB-->>WS: OK/Fail
end
WS-->>UI: joinedRoom or error
note over UI,WS: On success, broadcast userJoined to room
Loading
sequenceDiagram
autonumber
actor User as User
participant UI as Chat UI (ChatRoom)
participant API as POST /api/chat/send
participant DB as Prisma
participant WS as Socket.IO Server
participant Others as Other Clients
User->>UI: Type message / attach image
UI->>API: POST { userId, roomId, content|imageUrl }
alt group_/private_
API->>DB: Validate access (membership/participants)
end
API->>DB: Create chat_message
DB-->>API: Saved message (+user)
API-->>UI: 200 Created (message)
WS-->>Others: receiveMessage(roomId, message)
UI->>API: GET /api/chat/poll?roomId&lastMessageId
API->>DB: Fetch new messages
DB-->>API: Messages
API-->>UI: Messages
Loading

Estimated code review effort

🎯 5 (Critical) | ⏱️ ~120 minutes

Possibly related PRs

Poem

A tap-tap on keys, a socket ignites,
Groups gather softly in pixel-lit nights.
Rabbits relay messages, swift as the breeze,
Polling and posting with effortless ease.
New rooms, new rules, a chorus of ping—
In burrows of code, the chats take wing. 🐇💬

✨ Finishing touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch 113-chat-interno

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 80915bd and d02fbdb.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (46)
  • .cursor/commands/constitution.md (1 hunks)
  • .cursor/commands/implement.md (1 hunks)
  • .cursor/commands/plan.md (1 hunks)
  • .cursor/commands/specify.md (1 hunks)
  • .cursor/commands/tasks.md (1 hunks)
  • .specify/memory/constitution.md (1 hunks)
  • .specify/scripts/powershell/check-prerequisites.ps1 (1 hunks)
  • .specify/scripts/powershell/common.ps1 (1 hunks)
  • .specify/scripts/powershell/create-new-feature.ps1 (1 hunks)
  • .specify/scripts/powershell/setup-plan.ps1 (1 hunks)
  • .specify/scripts/powershell/update-agent-context.ps1 (1 hunks)
  • .specify/templates/agent-file-template.md (1 hunks)
  • .specify/templates/plan-template.md (1 hunks)
  • .specify/templates/spec-template.md (1 hunks)
  • .specify/templates/tasks-template.md (1 hunks)
  • next.config.js (1 hunks)
  • package.json (1 hunks)
  • prisma/schema.prisma (3 hunks)
  • src/app/(authenticated)/admin/chat-groups/_components/add-members-dialog.tsx (1 hunks)
  • src/app/(authenticated)/admin/chat-groups/_components/chat-groups-list.tsx (1 hunks)
  • src/app/(authenticated)/admin/chat-groups/_components/create-group-dialog.tsx (1 hunks)
  • src/app/(authenticated)/admin/chat-groups/_components/edit-group-dialog.tsx (1 hunks)
  • src/app/(authenticated)/admin/chat-groups/_components/user-selection.tsx (1 hunks)
  • src/app/(authenticated)/admin/chat-groups/page.tsx (1 hunks)
  • src/app/(authenticated)/chat/_components/users-list.tsx (1 hunks)
  • src/app/(authenticated)/chat/page.tsx (1 hunks)
  • src/app/api/chat/online/route.ts (1 hunks)
  • src/app/api/chat/poll/route.ts (1 hunks)
  • src/app/api/chat/send/route.ts (1 hunks)
  • src/components/chat/ChatRoom.test.tsx (1 hunks)
  • src/components/chat/ChatRoom.tsx (1 hunks)
  • src/components/chat/ChatSidebar.tsx (1 hunks)
  • src/components/chat/ImageMessage.tsx (1 hunks)
  • src/components/chat/ImageUpload.tsx (1 hunks)
  • src/components/chat/README.md (1 hunks)
  • src/components/chat/index.ts (1 hunks)
  • src/components/dashboard/news-displ.tsx (3 hunks)
  • src/const/admin-routes.ts (2 hunks)
  • src/const/routes.ts (2 hunks)
  • src/hooks/use-access-control.tsx (2 hunks)
  • src/server/api/root.ts (2 hunks)
  • src/server/api/routers/admin-chat-groups.ts (1 hunks)
  • src/server/api/routers/chat-message.ts (1 hunks)
  • src/server/api/routers/user.ts (1 hunks)
  • src/server/api/trpc.ts (3 hunks)
  • src/server/websocket/chat-server.ts (1 hunks)

Tip

👮 Agentic pre-merge checks are now available in preview!

Pro plan users can now enable pre-merge checks in their settings to enforce checklists before merging PRs.

  • Built-in checks – Quickly apply ready-made checks to enforce title conventions, require pull request descriptions that follow templates, validate linked issues for compliance, and more.
  • Custom agentic checks – Define your own rules using CodeRabbit’s advanced agentic capabilities to enforce organization-specific policies and workflows. For example, you can instruct CodeRabbit’s agent to verify that API documentation is updated whenever API schema files are modified in a PR. Note: Upto 5 custom checks are currently allowed during the preview period. Pricing for this feature will be announced in a few weeks.

Please see the documentation for more information.

Example:

reviews:
pre_merge_checks:
custom_checks:
- name: "Undocumented Breaking Changes"mode: "warning"instructions: | Pass/fail criteria: All breaking changes to public APIs, CLI flags, environment variables, configuration keys, database schemas, or HTTP/GraphQL endpoints must be documented in the "Breaking Change" section of the PR description and in CHANGELOG.md. Exclude purely internal or private changes (e.g., code not exported from package entry points or explicitly marked as internal).

Please share your feedback with us on this Discord post.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@rbxyz
rbxyz merged commit b174ef1 into mainSep 23, 2025
5 of 6 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

chat interno

1 participant

@rbxyz
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

113 chat interno - #114

Merged
rbxyz merged 2 commits into
mainfrom
113-chat-interno
Sep 23, 2025
Merged

113 chat interno#114
rbxyz merged 2 commits into
mainfrom
113-chat-interno

Conversation

@rbxyz

@rbxyzrbxyz commented Sep 23, 2025

Copy link
Copy Markdown
Collaborator

Summary by CodeRabbit

  • New Features

    • Internal chat with global, group, and private rooms, message history, and real‑time updates.
    • Image attachments with preview, expand, and download.
    • Online users list with presence indicators and sector grouping.
    • Admin management of chat groups: create, edit, delete, and add members.
    • Role-based access enabling chat for non‑TOTEM users.
  • Style

    • Refined News card hover/transition behavior for better responsiveness.
  • Documentation

    • Added Chat module overview and usage guide.

@rbxyzrbxyz linked an issue Sep 23, 2025 that may be closed by this pull request
@vercel

vercelBot commented Sep 23, 2025

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentPreviewCommentsUpdated (UTC)
eloReadyReadyPreviewCommentSep 23, 2025 0:54am

@coderabbitai

coderabbitaiBot commented Sep 23, 2025

Copy link
Copy Markdown
Contributor

Caution

Review failed

The pull request is closed.

Walkthrough

Adds a full internal chat system (UI, APIs, WebSocket server, Prisma models), admin chat-group management (UI + tRPC router), access control updates, Next.js config and dependencies for Socket.IO, several Spec-Driven Development scripts/templates, and supporting docs/tests. Updates TRPC context types and wires new routers into the API.

Changes

Cohort / File(s)Summary of changes
Command Workflows
.cursor/commands/*
Adds constitution, implement, plan, specify, and tasks command documents describing workflows and execution steps.
Constitution Memory
.specify/memory/constitution.md
Adds governance/spec template with placeholders and versioning headers.
Spec Scripts (PowerShell)
.specify/scripts/powershell/common.ps1, check-prerequisites.ps1, create-new-feature.ps1, setup-plan.ps1, update-agent-context.ps1
Introduces shared helpers and scripts to create features, validate env, set up plans, and update agent files. Includes JSON/CLI outputs and git-aware behavior.
Spec/Templates
.specify/templates/*
Adds templates for agent files, implementation plan, feature spec, and tasks generation.
Next Config & Deps
next.config.js, package.json
Adds headers() for CORS on /api routes; exposes socket.io packages for RSC. Adds socket.io and socket.io-client dependencies.
Database Schema
prisma/schema.prisma
Adds chat models: chat_group, chat_group_member, chat_message; relations on User; adds NotificationType.CHAT_MESSAGE.
Admin UI — Chat Groups
src/app/(authenticated)/admin/chat-groups/_components/*
Adds dialogs and list UI: create/edit group, add members, user selection; TRPC-integrated with toasts and validation.
Admin Page
src/app/(authenticated)/admin/chat-groups/page.tsx
Adds admin page wiring list and dialogs with access check and stats UI.
Chat App UI
src/app/(authenticated)/chat/_components/users-list.tsx, src/app/(authenticated)/chat/page.tsx
Adds users list with presence polling and main chat page with sidebar-room-users layout and private chat initiation.
Chat API Routes
src/app/api/chat/online/route.ts, src/app/api/chat/poll/route.ts, src/app/api/chat/send/route.ts
Adds REST endpoints for presence reporting, message polling, and sending with access checks and Prisma persistence.
Chat Components
src/components/chat/*
Adds ChatRoom (polling, messaging, images), ChatSidebar (rooms), ImageMessage, ImageUpload, README, and barrel exports.
Tests
src/components/chat/ChatRoom.test.tsx
Adds test suite for ChatRoom with mocks for TRPC, sockets, and auth.
API Wiring & Routers
src/server/api/root.ts, .../routers/admin-chat-groups.ts, .../routers/chat-message.ts, .../routers/user.ts
Wires new routers; adds adminChatGroups and chatMessage routers; userRouter gains getById.
TRPC Context
src/server/api/trpc.ts
Introduces explicit TRPC context interfaces; updates createTRPCContext signature and init typing.
WebSocket Server
src/server/websocket/chat-server.ts
Adds Socket.IO server with join, typing, send, and presence tracking; notification emission.
Constants & Routes
src/const/admin-routes.ts, src/const/routes.ts
Adds admin route for chat groups; minor commented/unused import in routes.
UI Tweak
src/components/dashboard/news-displ.tsx
Adjusts styling/hover behaviors and image sizing; removes backdrop blur.

Sequence Diagram(s)

sequenceDiagram
autonumber
actor User as User
participant UI as Chat UI (ChatRoom)
participant WS as Socket.IO Server
participant DB as Prisma
User->>UI: Open room (roomId)
UI->>WS: joinChat(userId, roomId)
alt group_*
WS->>DB: Verify membership (chat_group_member)
DB-->>WS: Exists/Not
else private_*
WS->>DB: Verify both users exist
DB-->>WS: OK/Fail
end
WS-->>UI: joinedRoom or error
note over UI,WS: On success, broadcast userJoined to room
Loading
sequenceDiagram
autonumber
actor User as User
participant UI as Chat UI (ChatRoom)
participant API as POST /api/chat/send
participant DB as Prisma
participant WS as Socket.IO Server
participant Others as Other Clients
User->>UI: Type message / attach image
UI->>API: POST { userId, roomId, content|imageUrl }
alt group_/private_
API->>DB: Validate access (membership/participants)
end
API->>DB: Create chat_message
DB-->>API: Saved message (+user)
API-->>UI: 200 Created (message)
WS-->>Others: receiveMessage(roomId, message)
UI->>API: GET /api/chat/poll?roomId&lastMessageId
API->>DB: Fetch new messages
DB-->>API: Messages
API-->>UI: Messages
Loading

Estimated code review effort

🎯 5 (Critical) | ⏱️ ~120 minutes

Possibly related PRs

Poem

A tap-tap on keys, a socket ignites,
Groups gather softly in pixel-lit nights.
Rabbits relay messages, swift as the breeze,
Polling and posting with effortless ease.
New rooms, new rules, a chorus of ping—
In burrows of code, the chats take wing. 🐇💬

✨ Finishing touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch 113-chat-interno

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 80915bd and d02fbdb.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (46)
  • .cursor/commands/constitution.md (1 hunks)
  • .cursor/commands/implement.md (1 hunks)
  • .cursor/commands/plan.md (1 hunks)
  • .cursor/commands/specify.md (1 hunks)
  • .cursor/commands/tasks.md (1 hunks)
  • .specify/memory/constitution.md (1 hunks)
  • .specify/scripts/powershell/check-prerequisites.ps1 (1 hunks)
  • .specify/scripts/powershell/common.ps1 (1 hunks)
  • .specify/scripts/powershell/create-new-feature.ps1 (1 hunks)
  • .specify/scripts/powershell/setup-plan.ps1 (1 hunks)
  • .specify/scripts/powershell/update-agent-context.ps1 (1 hunks)
  • .specify/templates/agent-file-template.md (1 hunks)
  • .specify/templates/plan-template.md (1 hunks)
  • .specify/templates/spec-template.md (1 hunks)
  • .specify/templates/tasks-template.md (1 hunks)
  • next.config.js (1 hunks)
  • package.json (1 hunks)
  • prisma/schema.prisma (3 hunks)
  • src/app/(authenticated)/admin/chat-groups/_components/add-members-dialog.tsx (1 hunks)
  • src/app/(authenticated)/admin/chat-groups/_components/chat-groups-list.tsx (1 hunks)
  • src/app/(authenticated)/admin/chat-groups/_components/create-group-dialog.tsx (1 hunks)
  • src/app/(authenticated)/admin/chat-groups/_components/edit-group-dialog.tsx (1 hunks)
  • src/app/(authenticated)/admin/chat-groups/_components/user-selection.tsx (1 hunks)
  • src/app/(authenticated)/admin/chat-groups/page.tsx (1 hunks)
  • src/app/(authenticated)/chat/_components/users-list.tsx (1 hunks)
  • src/app/(authenticated)/chat/page.tsx (1 hunks)
  • src/app/api/chat/online/route.ts (1 hunks)
  • src/app/api/chat/poll/route.ts (1 hunks)
  • src/app/api/chat/send/route.ts (1 hunks)
  • src/components/chat/ChatRoom.test.tsx (1 hunks)
  • src/components/chat/ChatRoom.tsx (1 hunks)
  • src/components/chat/ChatSidebar.tsx (1 hunks)
  • src/components/chat/ImageMessage.tsx (1 hunks)
  • src/components/chat/ImageUpload.tsx (1 hunks)
  • src/components/chat/README.md (1 hunks)
  • src/components/chat/index.ts (1 hunks)
  • src/components/dashboard/news-displ.tsx (3 hunks)
  • src/const/admin-routes.ts (2 hunks)
  • src/const/routes.ts (2 hunks)
  • src/hooks/use-access-control.tsx (2 hunks)
  • src/server/api/root.ts (2 hunks)
  • src/server/api/routers/admin-chat-groups.ts (1 hunks)
  • src/server/api/routers/chat-message.ts (1 hunks)
  • src/server/api/routers/user.ts (1 hunks)
  • src/server/api/trpc.ts (3 hunks)
  • src/server/websocket/chat-server.ts (1 hunks)

Tip

👮 Agentic pre-merge checks are now available in preview!

Pro plan users can now enable pre-merge checks in their settings to enforce checklists before merging PRs.

  • Built-in checks – Quickly apply ready-made checks to enforce title conventions, require pull request descriptions that follow templates, validate linked issues for compliance, and more.
  • Custom agentic checks – Define your own rules using CodeRabbit’s advanced agentic capabilities to enforce organization-specific policies and workflows. For example, you can instruct CodeRabbit’s agent to verify that API documentation is updated whenever API schema files are modified in a PR. Note: Upto 5 custom checks are currently allowed during the preview period. Pricing for this feature will be announced in a few weeks.

Please see the documentation for more information.

Example:

reviews:
pre_merge_checks:
custom_checks:
- name: "Undocumented Breaking Changes"mode: "warning"instructions: | Pass/fail criteria: All breaking changes to public APIs, CLI flags, environment variables, configuration keys, database schemas, or HTTP/GraphQL endpoints must be documented in the "Breaking Change" section of the PR description and in CHANGELOG.md. Exclude purely internal or private changes (e.g., code not exported from package entry points or explicitly marked as internal).

Please share your feedback with us on this Discord post.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@rbxyz
rbxyz merged commit b174ef1 into mainSep 23, 2025
5 of 6 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

chat interno

1 participant

@rbxyz