- Fix MQTT topic pattern matching (_mqtt_topic_matches):
* Implement proper # wildcard (multi-level)
* Implement proper + wildcard (single-level)
* Fix bug where first device got ALL messages
* Now shaperorigin/# only matches shaperorigin/* topics
- Fix Stop Connection button (Odoo-style):
* Remove manual commit() - let Odoo handle it
* Use write() to update state
* Handle case where service doesn't have connection
- Fix Test Connection hanging:
* Add proper cleanup with sleep after disconnect
* Catch cleanup exceptions
- Add @unittest.skip to real MQTT tests:
* TransactionCase incompatible with paho-mqtt threads
* See TODO.md M8 for details
- Fix run-tests.sh:
* Remove -i flag (was hanging)
* Simplify to direct output redirect
- Add TODO.md documentation
- Update .gitignore for test logs