From 274294c1838e82b574ba16e8358aab4381aeb9be Mon Sep 17 00:00:00 2001 From: markov Date: Sat, 14 Mar 2026 17:10:02 +0100 Subject: [PATCH] feat: mentionable flag for agents + labels in create --- src/tracker/api/converters.py | 1 + src/tracker/api/members.py | 3 +++ src/tracker/api/schemas.py | 1 + src/tracker/models/member.py | 1 + 4 files changed, 6 insertions(+) diff --git a/src/tracker/api/converters.py b/src/tracker/api/converters.py index 82efdd7..079b6b1 100644 --- a/src/tracker/api/converters.py +++ b/src/tracker/api/converters.py @@ -40,6 +40,7 @@ def member_out(m: Member) -> MemberOut: task_listen=m.agent_config.task_listen, prompt=m.agent_config.prompt, model=m.agent_config.model, + mentionable=m.agent_config.mentionable if m.agent_config.mentionable is not None else True, ) return MemberOut( id=str(m.id), diff --git a/src/tracker/api/members.py b/src/tracker/api/members.py index 50b2ba9..a723b34 100644 --- a/src/tracker/api/members.py +++ b/src/tracker/api/members.py @@ -28,6 +28,7 @@ class AgentConfigSchema(BaseModel): task_listen: str = ListenMode.MENTIONS prompt: str | None = None model: str | None = None + mentionable: bool = True class MemberCreate(BaseModel): @@ -119,10 +120,12 @@ async def create_member(req: MemberCreate, db: AsyncSession = Depends(get_db)): config = AgentConfig( member_id=member.id, capabilities=ac.capabilities if ac else [], + labels=ac.labels if ac else [], chat_listen=ac.chat_listen if ac else ListenMode.ALL, task_listen=ac.task_listen if ac else ListenMode.ALL, prompt=ac.prompt if ac else None, model=ac.model if ac else None, + mentionable=ac.mentionable if ac else True, ) db.add(config) diff --git a/src/tracker/api/schemas.py b/src/tracker/api/schemas.py index 54d0dc0..51e0e68 100644 --- a/src/tracker/api/schemas.py +++ b/src/tracker/api/schemas.py @@ -87,6 +87,7 @@ class AgentConfigOut(BaseModel): task_listen: str prompt: str | None = None model: str | None = None + mentionable: bool = True class MemberOut(BaseModel): diff --git a/src/tracker/models/member.py b/src/tracker/models/member.py index cf634df..4c49b23 100644 --- a/src/tracker/models/member.py +++ b/src/tracker/models/member.py @@ -51,5 +51,6 @@ class AgentConfig(Base): model: Mapped[str | None] = mapped_column(String(100)) provider: Mapped[str | None] = mapped_column(String(50)) max_concurrent_tasks: Mapped[int] = mapped_column(default=2) + mentionable: Mapped[bool] = mapped_column(default=True) member: Mapped["Member"] = relationship(back_populates="agent_config")