Commit Graph

454 Commits

Author SHA1 Message Date
SpudGunMan
e66af5c068 bug in leaderboard fix 2025-10-11 12:47:24 -07:00
SpudGunMan
d62990b6db Update system.py
seriously open a window
2025-10-11 12:10:03 -07:00
SpudGunMan
0784aaebd9 enhance 2025-10-11 12:09:18 -07:00
SpudGunMan
e348854a50 cleanup 2025-10-11 11:46:09 -07:00
SpudGunMan
cc7461929e cleanup 2025-10-11 11:19:52 -07:00
SpudGunMan
260e52fe81 Update system.py 2025-10-10 11:53:33 -07:00
SpudGunMan
2273b481ad NEW CHUNKER
what day is it, chunker day!
2025-10-10 11:38:01 -07:00
SpudGunMan
ee1391f6e7 2fa.ini 2025-10-10 07:41:18 -07:00
SpudGunMan
b7a0d7cd8e Update system.py 2025-10-10 07:30:18 -07:00
SpudGunMan
b48377de5f Update system.py 2025-10-10 00:42:31 -07:00
SpudGunMan
855c2e08cc Update system.py 2025-10-10 00:41:30 -07:00
SpudGunMan
d0aa07ed7d Update system.py
i should snooze
2025-10-10 00:39:43 -07:00
SpudGunMan
7328a92535 Update system.py 2025-10-10 00:36:34 -07:00
SpudGunMan
35c8dc6f70 resetLeaderboard 2025-10-10 00:36:22 -07:00
SpudGunMan
b74dc1ff25 not this or that 2025-10-09 23:31:21 -07:00
SpudGunMan
8c752dff3e Update system.py 2025-10-09 23:11:08 -07:00
SpudGunMan
b3b45a4335 Update system.py 2025-10-09 19:10:58 -07:00
SpudGunMan
4da3e68c62 readrss
thanks FJRP you can now return an rss feed
2025-10-09 19:06:38 -07:00
SpudGunMan
e47907ebeb Update system.py 2025-10-09 18:38:35 -07:00
SpudGunMan
f63278ae8f Update system.py 2025-10-09 18:37:04 -07:00
SpudGunMan
0e0d2f11d7 Update system.py 2025-10-09 18:11:40 -07:00
SpudGunMan
6587ba61e2 Update system.py 2025-10-09 18:10:02 -07:00
SpudGunMan
b46697c0c4 enhance leaderboard 2025-10-09 18:08:38 -07:00
SpudGunMan
f5f8539924 segassem
reverse the order of the messages
2025-10-09 17:21:07 -07:00
SpudGunMan
e8063fcf3f Update system.py 2025-10-09 17:05:01 -07:00
SpudGunMan
169f9b27a5 Update system.py 2025-10-09 17:03:39 -07:00
SpudGunMan
4ceb23bcff Update system.py 2025-10-09 17:02:14 -07:00
Kelly
cb55aba498 Merge pull request #203 from SpudGunMan/copilot/add-local-wiki-search-functionality
Add Kiwix local wiki server support for offline Wikipedia searches
2025-10-08 20:38:17 -07:00
SpudGunMan
413f2a24d9 Kiwix in wiki
@NomDeTom its finally done
2025-10-08 20:29:52 -07:00
SpudGunMan
c75782d559 Update system.py 2025-10-08 20:03:05 -07:00
SpudGunMan
d38314a21c Update system.py 2025-10-08 19:31:30 -07:00
SpudGunMan
65dfe90edc Update system.py 2025-10-08 19:24:14 -07:00
SpudGunMan
3ce24fb7c9 Update system.py 2025-10-08 12:48:26 -07:00
SpudGunMan
8765e5a871 🥒
ahh pickles
2025-10-08 12:45:37 -07:00
SpudGunMan
b4f0421423 Update system.py 2025-10-08 12:37:52 -07:00
SpudGunMan
2b8906ae55 colon
KFC🍗
2025-10-08 11:11:14 -07:00
SpudGunMan
1f8bf5a700 bytes&bits 2025-10-08 11:01:21 -07:00
copilot-swe-agent[bot]
c74e4f99b2 Add mesh leaderboard feature to track extreme metrics
Co-authored-by: SpudGunMan <12676665+SpudGunMan@users.noreply.github.com>
2025-10-08 16:50:46 +00:00
copilot-swe-agent[bot]
1e4e5e6627 Add documentation and fix deprecated BeautifulSoup method
Co-authored-by: SpudGunMan <12676665+SpudGunMan@users.noreply.github.com>
2025-10-08 15:05:09 +00:00
copilot-swe-agent[bot]
c97004b410 Add Kiwix local wiki server support with configuration options
Co-authored-by: SpudGunMan <12676665+SpudGunMan@users.noreply.github.com>
2025-10-08 15:00:44 +00:00
SpudGunMan
6c078b4d17 Survey Says!
is this cool?
2025-10-07 22:39:08 -07:00
SpudGunMan
48a57e875f QuizMaster
let me know if this is cool
2025-10-07 17:48:22 -07:00
SpudGunMan
6c27b5d5de xoxo
enhance
2025-10-06 18:03:22 -07:00
SpudGunMan
a31fa90942 Update system.py 2025-10-06 14:57:40 -07:00
SpudGunMan
a9da8336cc enhance 2025-10-06 14:40:08 -07:00
Kelly
42e07d44e6 Merge pull request #198 from martinbogo/feature/tictactoe-game
Feature/tictactoe game
2025-10-06 14:11:23 -07:00
SpudGunMan
ae1a3040b5 patches
dont need no stinking patches. thanks again.
2025-10-06 12:54:41 -07:00
Martin Bogomolni
84b6b48d60 feat: Add tic-tac-toe game with compact messaging
🎮 New Tic-Tac-Toe Game Features:
- Compact 3x3 board display using ASCII art
- Smart AI opponent with win/block/random strategy
- All messages under 200-character meshtastic limit (tested: 10-50 chars)
- Player vs Bot gameplay with X (player) vs O (bot)
- Win detection for rows, columns, and diagonals
- Tie game detection when board is full
- Game statistics tracking (games played, won)

🔧 Integration Features:
- Follows established game patterns from hangman/hamtest
- Added to restrictedCommands (DM-only like other games)
- Integrated with game tracker system for memory cleanup
- Added configuration option in config.template
- Automatic cleanup of stale game sessions

🎯 Game Mechanics:
- Players pick positions 1-9 corresponding to board layout
- Simple input parsing (extracts first digit from message)
- Graceful error handling for invalid moves
- 'end' command to quit game
- Automatic game cleanup on completion

📊 Message Examples:
- New game: 39 chars
- Game moves: 50 chars
- Win/lose: 40 chars
- Invalid move: 23 chars
- All well under 200-char limit

Tested: Complete game scenarios, AI behavior, message lengths
Follows: Existing game implementation patterns and memory management
2025-10-06 00:08:56 -07:00
Martin Bogomolni
9f3446b605 feat: Implement comprehensive memory management and stability improvements
🔧 Memory Management Enhancements:
- Add memory cleanup constants (MAX_CMD_HISTORY=1000, MAX_SEEN_NODES=500, MAX_MSG_HISTORY=100)
- Implement cleanup_memory() function to prevent unbounded list growth
- Add periodic cleanup every hour via watchdog process
- Clean up stale game tracker entries automatically
- Limit cmdHistory and msg_history sizes to prevent memory bloat

🚀 Async Task Management Improvements:
- Fix async task management in both mesh_bot.py and pong_bot.py
- Implement proper task cleanup and cancellation on shutdown
- Add task names for better debugging and monitoring
- Use asyncio.gather() with return_exceptions=True for better error handling
- Prevent task hanging and resource leaks

🛡️ Enhanced Resource Management:
- Improve exit_handler() with proper interface cleanup
- Add atexit.register() for automatic graceful shutdown
- Ensure all meshtastic interfaces are properly closed
- Save persistent data (BBS, email, SMS, game scores) on exit
- Perform final memory cleanup during shutdown

🔍 Better Exception Handling:
- Replace bare except: blocks with specific exception handling
- Add proper error logging throughout the codebase
- Improve BBS database operations with better error recovery
- Add try/catch blocks for file operations and imports

📈 System Stability Improvements:
- Prevent memory leaks from growing lists and dictionaries
- Add automatic cleanup of stale player tracking data
- Improve error recovery in watchdog and async loops
- Better handling of interface connection failures

These changes address critical memory management issues that could cause
the bot to consume increasing memory over time, eventually leading to
system instability. The improvements ensure long-term reliability and
better resource utilization.

Fixes: Memory leaks, async task hanging, resource cleanup issues
Improves: System stability, error handling, resource management
Tested: Code analysis and review completed
2025-10-05 23:45:40 -07:00
SpudGunMan
10add3147d Update system.py 2025-10-05 23:10:23 -07:00