Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
76 commits
Select commit Hold shift + click to select a range
56e44f8
pop up mode and chat buble toggle
pladisdev Nov 2, 2025
82db2b0
potential audio fix
pladisdev Nov 2, 2025
579683d
linux sh and better docker support
pladisdev Nov 2, 2025
fad6d1a
fixed linux build?
pladisdev Nov 2, 2025
a12de82
linux fix part 2
pladisdev Nov 2, 2025
5d79afe
docker fix part 1
pladisdev Nov 2, 2025
0f3af89
Initial plan
Copilot Nov 2, 2025
d5d90f6
Initial plan
Copilot Nov 2, 2025
cbf5fcd
Initial plan
Copilot Nov 2, 2025
5a5d1d5
Initial plan
Copilot Nov 2, 2025
207ba9b
Initial plan
Copilot Nov 2, 2025
76b9912
Initial plan
Copilot Nov 2, 2025
366b640
Initial plan
Copilot Nov 2, 2025
ebc7bb7
Update frontend/src/pages/YappersPage.jsx
pladisdev Nov 2, 2025
be9a086
Initial plan
Copilot Nov 2, 2025
3fc9146
Update frontend/src/pages/YappersPage.jsx
pladisdev Nov 2, 2025
914b789
Replace sys.platform with platform.system() for OS detection
Copilot Nov 2, 2025
938886f
Fix race condition in popup avatar lifecycle
Copilot Nov 2, 2025
7737a2f
Extract magic numbers to named constants for better readability
Copilot Nov 2, 2025
3ea0d45
Extract magic number -2.5px into avatarActiveOffset setting
Copilot Nov 2, 2025
ee4de2a
Fix audio cleanup in popup mode when play() fails
Copilot Nov 2, 2025
3ae0527
Merge pull request #17 from pladisdev/copilot/sub-pr-8-bf786502-ac5d-…
pladisdev Nov 2, 2025
25dc303
Extract hex opacity calculation to utility function
Copilot Nov 2, 2025
730dc88
Fix audio error handlers to clean up tracking references
Copilot Nov 2, 2025
bb266bd
Merge pull request #16 from pladisdev/copilot/sub-pr-8-4be2dd0e-06ec-…
pladisdev Nov 2, 2025
7d70a13
Merge pull request #15 from pladisdev/copilot/sub-pr-8-9e407134-0238-…
pladisdev Nov 2, 2025
d1f450d
Merge pull request #14 from pladisdev/copilot/sub-pr-8-please-work
pladisdev Nov 2, 2025
5436727
Merge pull request #13 from pladisdev/copilot/sub-pr-8-one-more-time
pladisdev Nov 2, 2025
d8c850e
Merge pull request #12 from pladisdev/copilot/sub-pr-8-yet-again
pladisdev Nov 2, 2025
1405787
Merge pull request #11 from pladisdev/copilot/sub-pr-8-another-one
pladisdev Nov 2, 2025
1ad53b1
Merge pull request #10 from pladisdev/copilot/sub-pr-8-again
pladisdev Nov 2, 2025
3956aed
Merge branch 'main' into development
pladisdev Nov 2, 2025
a0b1f82
update flow for builds
pladisdev Nov 2, 2025
a2d0cea
Merge branch 'main' into development
pladisdev Nov 2, 2025
6adf5b1
better build and release file
pladisdev Nov 2, 2025
57df8ef
workflow fix
pladisdev Nov 2, 2025
6bbabff
Merge branch 'main' into development
pladisdev Nov 2, 2025
7672520
build fix
pladisdev Nov 2, 2025
d56e12e
Merge branch 'development' of https://github.com/pladisdev/chat-yappe…
pladisdev Nov 2, 2025
5aca8cf
Merge branch 'main' into development
pladisdev Nov 2, 2025
f0cb455
usernames in chat bubbles
pladisdev Nov 6, 2025
dd0ffab
Merge branch 'development' of https://github.com/pladisdev/chat-yappe…
pladisdev Nov 6, 2025
4f534c8
twitch authentifcation
pladisdev Nov 6, 2025
9095db5
Merge branch 'main' into development
pladisdev Nov 6, 2025
979acca
tts limit
pladisdev Nov 22, 2025
008f0e0
notifcation that user needs to click page, quick status
pladisdev Nov 22, 2025
c09bdcc
update readme, version
pladisdev Nov 22, 2025
1cb53f6
Merge branch 'main' into development
pladisdev Nov 22, 2025
ee60426
emergency twitch fix
pladisdev Nov 22, 2025
56967e2
Merge branch 'main' into development
pladisdev Nov 22, 2025
cfcf2dd
Merge branch 'main' into development
pladisdev Nov 22, 2025
1aa6813
yep
pladisdev Nov 22, 2025
5844084
dang
pladisdev Nov 22, 2025
4a6a8e5
better twitch logging
pladisdev Nov 23, 2025
693bfbc
animations and avatar layout editor
pladisdev Nov 23, 2025
326928e
fix spin animation
pladisdev Nov 23, 2025
a80e583
twitch fix part 2
pladisdev Nov 23, 2025
69800d3
Merge branch 'main' into development
pladisdev Nov 23, 2025
365ef8e
twitch fix, better fonts, cleanup
pladisdev Nov 25, 2025
61d9dcf
Merge branch 'main' into development
pladisdev Nov 25, 2025
046c52f
fixed imports
pladisdev Nov 25, 2025
7b33d13
fixed things
pladisdev Nov 25, 2025
638fb4e
Merge branch 'main' into development
pladisdev Nov 25, 2025
59a7722
undefined fix
pladisdev Nov 25, 2025
4a09f0b
twitch test fix
pladisdev Nov 25, 2025
99b9642
another mock fix
pladisdev Nov 25, 2025
15efb3c
another fix for twitch creds tests
pladisdev Nov 25, 2025
6ca3832
better logging
pladisdev Nov 25, 2025
08355e7
twitch fixes?
pladisdev Nov 25, 2025
0d7bb86
another twitch fix
pladisdev Nov 25, 2025
484caaf
Merge branch 'main' into development
pladisdev Nov 25, 2025
a45dcfc
fix twitch io 3.x
pladisdev Nov 25, 2025
478e8ea
Merge branch 'development' of https://github.com/pladisdev/chat-yappe…
pladisdev Nov 25, 2025
6ad992d
fix pipelines for python to use 3.10
pladisdev Nov 25, 2025
2fcaa47
Merge branch 'main' into development
pladisdev Nov 25, 2025
4e39aa1
attempt to fix edge tts
pladisdev Feb 14, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .github/workflows/build-and-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,10 @@ jobs:
with:
fetch-depth: 0 # Fetch all history for proper versioning

- name: Set up Python 3.11
- name: Set up Python 3.10
uses: actions/setup-python@v4
with:
python-version: '3.11'
python-version: '3.10'
Comment on lines +26 to +29
Copy link

Copilot AI Feb 14, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Python version in the build workflow is being downgraded from 3.11 to 3.10. While this aligns with the test workflow changes, there's no explanation in the PR description for why this downgrade is necessary. If there's a compatibility issue with Python 3.11, it should be documented. The README.md still states "Python 3.9+" as a requirement, so this change should be compatible, but the rationale should be clear.

Copilot uses AI. Check for mistakes.
cache: 'pip'

- name: Set up Node.js
Expand Down Expand Up @@ -412,10 +412,10 @@ jobs:
with:
fetch-depth: 0

- name: Set up Python 3.11
- name: Set up Python 3.10
uses: actions/setup-python@v4
with:
python-version: '3.11'
python-version: '3.10'
cache: 'pip'

- name: Set up Node.js
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ['3.9', '3.10', '3.11']
python-version: ['3.10']
Copy link

Copilot AI Feb 14, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The test matrix has been reduced from testing multiple Python versions (3.9, 3.10, 3.11) to only testing Python 3.10. This reduces test coverage and may allow bugs to slip through that only manifest on other Python versions. The test documentation in backend/tests/README.md:184 still mentions "Backend tests (Python 3.9, 3.10, 3.11)" which is now outdated. If there's a specific reason to drop testing on 3.9 and 3.11, it should be documented, otherwise the full matrix should be retained to ensure compatibility.

Suggested change
python-version: ['3.10']
python-version: ['3.9', '3.10', '3.11']

Copilot uses AI. Check for mistakes.

steps:
- name: Checkout code
Expand Down
8 changes: 6 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -225,14 +225,18 @@ chat-yapper/

## Changelog

### v1.3.0 (Latest)
### v1.3.1 (Latest)
- **New Features:**
- Twitch fix
- Allow random avatar assignment
- More fonts to select from

### v1.3.0 (Latest)
Copy link

Copilot AI Feb 14, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The formatting of the v1.3.0 and v1.3.1 changelog entries is inconsistent. v1.3.1 includes "- New Features:" as a header before the list items, while v1.3.0 removed this header (as shown in the diff). For consistency, all version entries should follow the same format. Either add the "- New Features:" header to v1.3.0 or remove it from v1.3.1.

Suggested change
### v1.3.0 (Latest)
### v1.3.0 (Latest)
- **New Features:**

Copilot uses AI. Check for mistakes.
- Better control of avatar placement in Avatar Layout Editor
- Select and Adjust speaking animations for crowd mode
- Added idle animations for crowd mode

### v1.2.2 (Latest)
Comment on lines +234 to 239
Copy link

Copilot AI Feb 14, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Multiple versions are marked as "(Latest)" in the changelog. Only the most recent version (v1.3.1) should have the "(Latest)" tag. The "(Latest)" marker should be removed from v1.3.0 and v1.2.2.

Suggested change
### v1.3.0 (Latest)
- Better control of avatar placement in Avatar Layout Editor
- Select and Adjust speaking animations for crowd mode
- Added idle animations for crowd mode
### v1.2.2 (Latest)
### v1.3.0
- Better control of avatar placement in Avatar Layout Editor
- Select and Adjust speaking animations for crowd mode
- Added idle animations for crowd mode
### v1.2.2

Copilot uses AI. Check for mistakes.
- **New Features:**
- Quick status view
- Limit concurrent TTS messages
- Some more twitch fixes and improved notifcations
Copy link

Copilot AI Feb 14, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Spelling error: "notifcations" should be "notifications".

Suggested change
- Some more twitch fixes and improved notifcations
- Some more twitch fixes and improved notifications

Copilot uses AI. Check for mistakes.
Expand Down
12 changes: 9 additions & 3 deletions backend/modules/twitch_listener.py
Original file line number Diff line number Diff line change
Expand Up @@ -331,9 +331,15 @@ async def event_ready(self):
who = getattr(self, "nick", None) or self._nick or "unknown"
try:
logger.info(f"Twitch bot ready as {who}, listening to {self.channel_name}")
# Join the channel to start receiving messages (required in TwitchIO 3.x)
await self.join_channels([self.channel_name])
logger.info(f"Joined channel: {self.channel_name}")

# In TwitchIO 3.x, channels from initial_channels should auto-join
# But we can verify by checking connected channels
if hasattr(self, 'connected_channels'):
logger.info(f"Connected channels: {list(self.connected_channels)}")

# Log available methods for debugging
logger.debug(f"Bot methods: {[m for m in dir(self) if 'channel' in m.lower() or 'join' in m.lower()]}")

Comment on lines +334 to +342
Copy link

Copilot AI Feb 14, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The code that explicitly joins channels has been replaced with debugging logs. While the comment states "channels from initial_channels should auto-join" in TwitchIO 3.x, this change removes the explicit join_channels call that was previously documented as "required in TwitchIO 3.x". If auto-joining is unreliable or doesn't work as expected, removing this explicit call could break Twitch chat functionality. Consider keeping the explicit join or adding a fallback mechanism if the auto-join doesn't work, rather than just logging debug information. The PR description mentions "Twitch fix" but this change appears to remove functionality rather than fix it.

Suggested change
# In TwitchIO 3.x, channels from initial_channels should auto-join
# But we can verify by checking connected channels
if hasattr(self, 'connected_channels'):
logger.info(f"Connected channels: {list(self.connected_channels)}")
# Log available methods for debugging
logger.debug(f"Bot methods: {[m for m in dir(self) if 'channel' in m.lower() or 'join' in m.lower()]}")
# In TwitchIO 3.x, channels from initial_channels should auto-join
# But we can verify by checking connected channels
connected_names = set()
if hasattr(self, "connected_channels"):
try:
# connected_channels is typically a list of Channel objects
connected_names = {
getattr(c, "name", str(c)).lower()
for c in (self.connected_channels or [])
}
logger.info(f"Connected channels: {list(self.connected_channels)}")
except Exception:
# If anything goes wrong, fall back to empty set and try explicit join
connected_names = set()
# Explicitly join the target channel if not already connected.
# This preserves behavior in TwitchIO versions where auto-join is unreliable.
target = (self.channel_name or "").lower()
if target and target not in connected_names and hasattr(self, "join_channels"):
try:
logger.info(f"Twitch bot explicitly joining channel: {self.channel_name}")
await self.join_channels([self.channel_name])
except Exception as join_exc:
logger.error(f"Failed to explicitly join channel {self.channel_name}: {join_exc}", exc_info=True)
# Log available methods for debugging
logger.debug(
f"Bot methods: {[m for m in dir(self) if 'channel' in m.lower() or 'join' in m.lower()]}"
)

Copilot uses AI. Check for mistakes.
except Exception as e:
logger.error(f"Error in event_ready: {e}", exc_info=True)

Expand Down
2 changes: 1 addition & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ python-multipart>=0.0.6
python-dotenv>=1.0.0

# TTS and audio
edge-tts==7.0.2
edge-tts==7.2.7
mutagen>=1.45.0

# Streaming platforms
Expand Down
Loading