feat(endpoints): read_only флаг на LoRa endpoint - #32
Merged
Conversation
… мессенджера Знание read-only живёт на уровне endpoint (EndpointBase.read_only), не ноды. Bridge.admit() отклоняет сообщение из мессенджера в такой endpoint новой причиной RejectReason.READONLY до попадания в commit-очередь; RX из эндпоинта не затрагивается. Telegram получает эмодзи-реакцию 👎. LoRa-Bridge-92i Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Демонстрирует новое поле read_only на живом примере в config.example.yaml. LoRa-Bridge-92i Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Оставлен только general (единственный реально работающий на железе эндпоинт) — private/room_server и вторая нода были демонстрацией схемы, а не реальной конфигурацией; вводили в заблуждение как пример для копипасты.
…point # Conflicts: # config.example.yaml
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
read_only: boolнаEndpointBase— знание хранится на уровне LoRa-эндпоинта (public/private/room_server)Bridge.admit()отклоняет постинг из мессенджера в такой эндпоинт новой причинойRejectReason.READONLYдо попадания в commit-очередь; RX из эндпоинта не затрагиваетсяwiring.build_readonly_endpoints()собирает множество readonly-эндпоинтов из конфигаDropNotifier— текстовое уведомлениеconfig.example.yaml:general(public-канал) помеченread_only: trueкак живой примерCloses LoRa-Bridge-92i
Test plan
pytest -q— 351 passedruff check .— cleanmypy lora_bridge— cleantest_config_schema.py(валидация поля на всех 3 типах эндпоинтов),test_pipeline.py(unit: отказ + RX не затронут),test_wiring_integration.py(сквозной YAML→Bridge),test_telegram_reactions.py(эмодзи-маппинг)config.example.yamlвручную провалидирован против схемы🤖 Generated with Claude Code