- Issue #56 (2026-03-09):
mastodon_control_botreacts only to explicit slash commands outside pending dialogs. - Pending dialog replies (
ja/nein) continue to work without slash. - Regression tests for command-trigger behavior are in
tests-unit/test_mastodon_control_bot_commands.py. - Issue #57 (2026-03-09): Telegram
data.jsonstorage migrated intonitter_bot.dbnormalized tables. - Normalized Telegram schema:
telegram_chats+telegram_filter_rules(no JSON keywords blob). state_store.migrate_telegram_json_to_db(...)imports legacydata.jsoninto DB when needed.modules/telegram_bot_module.pyandbots/telegram_control_bot.pyread/write Telegram state viastate_store.- Telegram migration tests:
tests-unit/test_storage_telegram_migration.py. - Dedicated CLI migration script:
tools/migrate_telegram_data_json_tool.py(--dry-run,--force, optional--db-path). - Utility layout: Python tools in
tools/(*_tool.py), shell helpers inscripts/, static templates inconfig/. - Central log level config:
BOTS_LOG_LEVEL(fallbackLOG_LEVEL) viamodules.paths_module.LOG_LEVEL. - New default settings file:
config/default_settings.json(central defaults forlog_level, DB/log/data paths, poll and retention values). - Default SQLite location moved to
config/nitter_bot.db; legacy root DB path is auto-migrated/fallback-safe inmodules/storage_module.py. config/data.json.exampleremoved; legacydata.jsonis now documented as optional local runtime file without committed template.bots/nitter_bot.pyandbots/bsky_bot.pynow read core defaults frommodules.paths_moduleconstants.- Canonical runtime layout:
bots/for executable bots,modules/for reusable modules. - Naming convention: bots use
*_bot.py/*_control_bot.py; modules use_module.py. modules/mastodon_bot_module.pyandmodules/telegram_bot_module.pyare modules (not bot entry files).