From 31eb6db537c5c8bcac549e59a823e9362c564d70 Mon Sep 17 00:00:00 2001 From: Panniantong Date: Wed, 25 Feb 2026 13:44:47 +0100 Subject: [PATCH] fix: use encoding='utf-8' with errors='replace' for bird subprocess calls Fixes non-UTF-8 character handling in Twitter content. Replaces text=True with explicit encoding parameters. Co-authored-by: dev-starlight Closes #3 --- agent_reach/channels/twitter.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/agent_reach/channels/twitter.py b/agent_reach/channels/twitter.py index 0e1d9ec..87b0a84 100644 --- a/agent_reach/channels/twitter.py +++ b/agent_reach/channels/twitter.py @@ -60,7 +60,8 @@ class TwitterChannel(Channel): async def _read_bird(self, url: str, bird: str, config=None) -> ReadResult: result = subprocess.run( [bird, "read", url], - capture_output=True, text=True, timeout=30, + capture_output=True, timeout=30, + encoding='utf-8', errors='replace', env=_bird_env(config), ) if result.returncode != 0: @@ -147,7 +148,8 @@ class TwitterChannel(Channel): try: result = subprocess.run( [bird, "search", query, "-n", str(limit)], - capture_output=True, text=True, timeout=30, + capture_output=True, timeout=30, + encoding='utf-8', errors='replace', env=_bird_env(config), ) if result.returncode != 0: