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 ..enums import ChatKind, MemberRole, ProjectStatus
from ..models import Project, Chat, Member, ProjectMember
from ..ws.manager import manager
from .schemas import ProjectOut
router = APIRouter(tags=["projects"])
@ -107,7 +108,16 @@ async def create_project(req: ProjectCreate, db: AsyncSession = Depends(get_db))
db.add(chat)
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)

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=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(kind=ChatKind.LOBBY, project_id=None)
session.add(lobby)

View File

@ -122,6 +122,7 @@ class ConnectionManager:
# Humans/bridges get ALL messages
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)
continue