{"record":{"id":"08d97a3d750d3fa0","repo":"HKUDS/nanobot","slug":"group-message-buffer-size-must-be-0","errorCode":null,"errorMessage":"group_message_buffer_size must be > 0","messagePattern":"group_message_buffer_size must be > 0","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"nanobot/channels/signal/runtime.py","lineNumber":339,"sourceCode":"\n    enabled: bool = False\n    phone_number: str = \"\"  # Your Signal phone number (e.g., \"+1234567890\")\n    daemon_host: str = \"localhost\"\n    daemon_port: int = 8080\n    group_message_buffer_size: int = 20  # Number of recent group messages to keep for context\n    # Override the directory signal-cli writes inbound attachments to. When\n    # None, defaults to ~/.local/share/signal-cli/attachments (the daemon's\n    # platform default on Linux). Set this if the daemon is running with a\n    # custom XDG_DATA_HOME or on macOS/Windows where the default path differs.\n    attachments_dir: str | None = None\n    dm: SignalDMConfig = Field(default_factory=SignalDMConfig)\n    group: SignalGroupConfig = Field(default_factory=SignalGroupConfig)\n\n    @field_validator(\"group_message_buffer_size\")\n    @classmethod\n    def _validate_buffer_size(cls, v: int) -> int:\n        if v <= 0:\n            raise ValueError(\"group_message_buffer_size must be > 0\")\n        return v\n\n    @computed_field  # type: ignore[prop-decorator]\n    @property\n    def allow_from(self) -> list[str]:\n        \"\"\"Aggregate allowlist for the base-class is_allowed() check.\n\n        Returns the union of dm.allow_from and group.allow_from so the base\n        channel gate sees a populated list when either sub-policy is configured.\n        A ``\"*\"`` wildcard in either sub-list propagates to allow all.\n        \"\"\"\n        return list(dict.fromkeys(self.dm.allow_from + self.group.allow_from))\n\n\nclass SignalChannel(BaseChannel):\n    \"\"\"\n    Signal channel using signal-cli daemon via HTTP JSON-RPC interface.\n","sourceCodeStart":321,"sourceCodeEnd":357,"githubUrl":"https://github.com/HKUDS/nanobot/blob/42f37dc4c0e409eac7818a82d165c5f2757bc075/nanobot/channels/signal/runtime.py#L321-L357","documentation":"Error \"group_message_buffer_size must be > 0\" thrown in HKUDS/nanobot.","triggerScenarios":"Thrown at nanobot/channels/signal/runtime.py:339 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"42f37dc4c0e409eac7818a82d165c5f2757bc075","analyzedAt":"2026-08-26T00:18:52.276Z","schemaVersion":2},"datasetVersion":"2026-08-26T04:18:47.238Z"}