Add project.created broadcast, debug log for bridge message delivery
Some checks failed
Deploy Tracker / deploy (push) Failing after 3s

This commit is contained in:
markov 2026-02-28 18:31:53 +01:00
parent c1fd50f28c
commit 5030c06d76
3 changed files with 27 additions and 1 deletions

View File

@ -11,6 +11,7 @@ from sqlalchemy.orm import selectinload
from ..database import get_db from ..database import get_db
from ..enums import ChatKind, MemberRole, ProjectStatus from ..enums import ChatKind, MemberRole, ProjectStatus
from ..models import Project, Chat, Member, ProjectMember from ..models import Project, Chat, Member, ProjectMember
from ..ws.manager import manager
from .schemas import ProjectOut from .schemas import ProjectOut
router = APIRouter(tags=["projects"]) router = APIRouter(tags=["projects"])
@ -107,7 +108,16 @@ async def create_project(req: ProjectCreate, db: AsyncSession = Depends(get_db))
db.add(chat) db.add(chat)
await db.commit() await db.commit()
return await _project_out(project, db)
out = await _project_out(project, db)
# Broadcast project.created to all connected clients
await manager.broadcast_all({
"type": "project.created",
"project": out.model_dump(),
})
return out
@router.patch("/projects/{project_id}", response_model=ProjectOut) @router.patch("/projects/{project_id}", response_model=ProjectOut)

View File

@ -92,6 +92,21 @@ async def seed_dev_data(session: AsyncSession):
session.add(ProjectMember(project_id=project.id, member_id=coder.id, role=MemberRole.MEMBER)) session.add(ProjectMember(project_id=project.id, member_id=coder.id, role=MemberRole.MEMBER))
session.add(ProjectMember(project_id=project.id, member_id=architect.id, role=MemberRole.MEMBER)) session.add(ProjectMember(project_id=project.id, member_id=architect.id, role=MemberRole.MEMBER))
# Bridge (Telegram)
bridge = Member(
name="Telegram Bridge",
slug="bridge",
type=MemberType.BRIDGE,
role=MemberRole.MEMBER,
auth_method=AuthMethod.TOKEN,
token="tb-bridge-dev-token",
status=MemberStatus.OFFLINE,
)
session.add(bridge)
await session.flush()
session.add(ProjectMember(project_id=project.id, member_id=bridge.id, role=MemberRole.MEMBER))
# Lobby chat # Lobby chat
lobby = Chat(kind=ChatKind.LOBBY, project_id=None) lobby = Chat(kind=ChatKind.LOBBY, project_id=None)
session.add(lobby) session.add(lobby)

View File

@ -122,6 +122,7 @@ class ConnectionManager:
# Humans/bridges get ALL messages # Humans/bridges get ALL messages
if client.member_type in (MemberType.HUMAN, MemberType.BRIDGE): if client.member_type in (MemberType.HUMAN, MemberType.BRIDGE):
logger.info("Sending message to %s (%s, type=%s)", client.member_slug, session_id[:8], client.member_type)
await self.send_to_session(session_id, payload) await self.send_to_session(session_id, payload)
continue continue