| Age | Commit message (Expand) | Author |
| 2026-05-17 | interop: ESP32 ↔ OpenWRT TollGate cross-platform test suite | Your Name |
| 2026-05-17 | test_cashu (10/10) + test_session (18/18): all 86 unit tests passing | Your Name |
| 2026-05-17 | test_nostr_event: 23/23 passing — NIP-01 event ID, Schnorr signing, JSON se... | Your Name |
| 2026-05-17 | test_identity: 24/24 passing — HMAC-SHA512 derivation, MAC bits, SSID/IP de... | Your Name |
| 2026-05-17 | Testing infrastructure: AGENTS.md rules + unit test framework + geohash tests... | Your Name |
| 2026-05-16 | Phase 3: Nostr identity derivation + wifistr service discovery | Your Name |
| 2026-05-16 | Phase 3: on-device Cashu wallet with mbedTLS secp256k1 + SPIFFS persistence +... | Your Name |
| 2026-05-16 | Fix test 22: use dynamic TOLLGATE_IP instead of hardcoded 192.168.4.1 for rou... | Your Name |
| 2026-05-16 | Fix captive portal detection on GrapheneOS + embed mint URL in portal HTML | Your Name |
| 2026-05-16 | Unique SSID/IP per board + captive detection fix + mint list in portal | Your Name |
| 2026-05-16 | Phase 2 Playwright tests: 10/10 passing (portal, captive detection, API) | Your Name |
| 2026-05-16 | Phase 2 tests 22-23 passing: session expiry + renewal (21/21) | Your Name |
| 2026-05-16 | Captive portal detection fix + Phase 2 tests 16-18,20 passing (17/17) | Your Name |
| 2026-05-16 | gitignore: exclude generated config.json (contains WiFi credentials) | Your Name |
| 2026-05-16 | Phase 2 WIP: token decode works, TLS checkstate succeeds (crashes after respo... | Your Name |
| 2026-05-15 | Fix stack overflow and heap-allocate large buffers in Cashu/payment path | Your Name |
| 2026-05-15 | Phase 2 WIP: Cashu payment endpoints, session tracking, updated checklist | Your Name |
| 2026-05-15 | Phase 1 working: captive portal, DNS hijack, NAT-based access control | Your Name |
| 2026-05-15 | initiall commit | Your Name |