<feed xmlns='http://www.w3.org/2005/Atom'>
<title>npub12m5exm2uk3xa674cc5r0hlyvccs5xxn7qv83ezuteefv5972nquq4j4szl/esp32-tollgate, branch feature/tollgate-core-v2</title>
<subtitle>[no description]</subtitle>
<id>https://upleb.uk/npub12m5exm2uk3xa674cc5r0hlyvccs5xxn7qv83ezuteefv5972nquq4j4szl/esp32-tollgate/atom?h=feature%2Ftollgate-core-v2</id>
<link rel='self' href='https://upleb.uk/npub12m5exm2uk3xa674cc5r0hlyvccs5xxn7qv83ezuteefv5972nquq4j4szl/esp32-tollgate/atom?h=feature%2Ftollgate-core-v2'/>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub12m5exm2uk3xa674cc5r0hlyvccs5xxn7qv83ezuteefv5972nquq4j4szl/esp32-tollgate/'/>
<updated>2026-05-28T18:58:27+00:00</updated>
<entry>
<title>fix(firewall): remove blanket TCP allow for unpaid clients</title>
<updated>2026-05-28T18:58:27+00:00</updated>
<author>
<name>Your Name</name>
<email>you@example.com</email>
</author>
<published>2026-05-28T18:58:27+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub12m5exm2uk3xa674cc5r0hlyvccs5xxn7qv83ezuteefv5972nquq4j4szl/esp32-tollgate/commit/?id=57bcd53b14e1f795aa94b079c463d41ba8c02e94'/>
<id>urn:sha1:57bcd53b14e1f795aa94b079c463d41ba8c02e94</id>
<content type='text'>
The sandbox_mint_access=true default allowed ALL TCP forwarding from
unpaid clients, completely bypassing the firewall. Fix:
- Remove the blanket TCP allow when sandbox_mint_access is set
- Only allow traffic to AP IP on specific ports (80, 2121, 4869, mining)
- Allow ICMP to AP IP for diagnostics
- Default sandbox_mint_access to false
- Add port 4869 (local relay) to allowed sandbox ports

Verified on Board B: unpaid clients blocked from internet, local
services (portal, API, relay) still accessible.
</content>
</entry>
<entry>
<title>docs: update all plans with current board inventory and smoke test results</title>
<updated>2026-05-28T18:22:04+00:00</updated>
<author>
<name>Your Name</name>
<email>you@example.com</email>
</author>
<published>2026-05-28T18:22:04+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub12m5exm2uk3xa674cc5r0hlyvccs5xxn7qv83ezuteefv5972nquq4j4szl/esp32-tollgate/commit/?id=5e603764266568084eaae9ec0e0b130e7f233402'/>
<id>urn:sha1:5e603764266568084eaae9ec0e0b130e7f233402</id>
<content type='text'>
- Board A (ttyACM1): USB flash failing, cable issue
- Board B (ttyACM0): Flashed esp32-tollgate, smoke test 6/9 pass
- NerdAxe (ttyACM2, fan-damaged): TOLLGATE=1 flashed, crash loop in APIsFetcher
- Working NerdAxe (ttyACM1, 80:b5:4e:c7:7a:d0): Can't flash (USB brownout)
- Test mint intermittently down (TLS error)
- Firewall not blocking unpaid clients (needs investigation)
</content>
</entry>
<entry>
<title>chore: bump tollgate_core to v1.3.0</title>
<updated>2026-05-28T15:02:37+00:00</updated>
<author>
<name>Your Name</name>
<email>you@example.com</email>
</author>
<published>2026-05-28T15:02:37+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub12m5exm2uk3xa674cc5r0hlyvccs5xxn7qv83ezuteefv5972nquq4j4szl/esp32-tollgate/commit/?id=8f18b7ac6cf65a1de7f2ebddb19de9070c3b9657'/>
<id>urn:sha1:8f18b7ac6cf65a1de7f2ebddb19de9070c3b9657</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix: add extern C guards to mining and stratum_proxy headers</title>
<updated>2026-05-28T12:41:48+00:00</updated>
<author>
<name>Your Name</name>
<email>you@example.com</email>
</author>
<published>2026-05-28T12:41:48+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub12m5exm2uk3xa674cc5r0hlyvccs5xxn7qv83ezuteefv5972nquq4j4szl/esp32-tollgate/commit/?id=4deac9fd95284ac2770259059e2ab7c8ac98570f'/>
<id>urn:sha1:4deac9fd95284ac2770259059e2ab7c8ac98570f</id>
<content type='text'>
Needed for C++ consumers (NerdQAxePlus create_jobs_task, stratum_manager).
</content>
</entry>
<entry>
<title>feat: implement 3 missing API functions + test + fix plan</title>
<updated>2026-05-28T12:24:44+00:00</updated>
<author>
<name>Your Name</name>
<email>you@example.com</email>
</author>
<published>2026-05-28T12:24:44+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub12m5exm2uk3xa674cc5r0hlyvccs5xxn7qv83ezuteefv5972nquq4j4szl/esp32-tollgate/commit/?id=96589ce5d0bc49a3f6b006b0bb443b81d1dd8e03'/>
<id>urn:sha1:96589ce5d0bc49a3f6b006b0bb443b81d1dd8e03</id>
<content type='text'>
- tollgate_core_on_share_accepted(): tracks hashrate, creates/extends
  mining sessions, calls platform callback
- tollgate_core_calc_hashprice(): returns nbits-derived hashprice or
  manual override from platform
- tollgate_core_get_mining_status_json(): returns proxy stats as JSON
- test_mining_api: 19 assertions covering all 3 functions
- PLAN_BITAXE_FIXES.md: comprehensive fix plan with checklist
</content>
</entry>
<entry>
<title>chore: gitignore tollgate_core dist/ archive</title>
<updated>2026-05-24T09:01:29+00:00</updated>
<author>
<name>Your Name</name>
<email>you@example.com</email>
</author>
<published>2026-05-24T09:01:29+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub12m5exm2uk3xa674cc5r0hlyvccs5xxn7qv83ezuteefv5972nquq4j4szl/esp32-tollgate/commit/?id=953393da1617ff4d4f6cd065f7fe1346e9b9a00e'/>
<id>urn:sha1:953393da1617ff4d4f6cd065f7fe1346e9b9a00e</id>
<content type='text'>
Published v1.2.0 to IDF Component Registry at
https://components.espressif.com/components/c03rad0r/tollgate_core/versions/1.2.0
</content>
</entry>
<entry>
<title>ci: add Ansible CI/CD workflow with nostr relay listener</title>
<updated>2026-05-23T18:01:31+00:00</updated>
<author>
<name>Your Name</name>
<email>you@example.com</email>
</author>
<published>2026-05-23T18:01:31+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub12m5exm2uk3xa674cc5r0hlyvccs5xxn7qv83ezuteefv5972nquq4j4szl/esp32-tollgate/commit/?id=cfa17135a034207f4005f754a94093ebc3d547d2'/>
<id>urn:sha1:cfa17135a034207f4005f754a94093ebc3d547d2</id>
<content type='text'>
- ci_listener.py: WebSocket client subscribed to ngit.orangesync.tech
  for NIP-34 git state events (kind 30617), triggers pipeline on push
- run_pipeline.sh: clone + make test-unit + Docker ESP-IDF build
- systemd service: tollgate-ci-listener with auto-restart
- Ansible role ci_runner: Docker, ESP-IDF image, listener deployment
- 20-ci-runner.yml: playbook for CI runner setup
- 30-hardware-tests.yml: playbook for localhost board testing
</content>
</entry>
<entry>
<title>fix: add extern C guard to tollgate_core_portal.h</title>
<updated>2026-05-23T17:54:53+00:00</updated>
<author>
<name>Your Name</name>
<email>you@example.com</email>
</author>
<published>2026-05-23T17:54:53+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub12m5exm2uk3xa674cc5r0hlyvccs5xxn7qv83ezuteefv5972nquq4j4szl/esp32-tollgate/commit/?id=85ef20a2004c600dd04428520a79a0e47a54ed2d'/>
<id>urn:sha1:85ef20a2004c600dd04428520a79a0e47a54ed2d</id>
<content type='text'>
Needed for C++ consumers (NerdQAxePlus handler_tollgate.cpp).
</content>
</entry>
<entry>
<title>test: add relay_types, sub_manager, deletion unit tests</title>
<updated>2026-05-23T17:54:07+00:00</updated>
<author>
<name>Your Name</name>
<email>you@example.com</email>
</author>
<published>2026-05-23T17:54:07+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub12m5exm2uk3xa674cc5r0hlyvccs5xxn7qv83ezuteefv5972nquq4j4szl/esp32-tollgate/commit/?id=e40645e07e4076610abc8270fba421dbdd8fc217'/>
<id>urn:sha1:e40645e07e4076610abc8270fba421dbdd8fc217</id>
<content type='text'>
- test_relay_types: hex_to_bytes/bytes_to_hex with known vectors,
  roundtrip, edge cases (17 assertions)
- test_sub_manager: hex_prefix_match, filter_matches_event for
  NIP-01 kind/author/since/until filtering (23 assertions)
- test_deletion: extract_event_id_field, extract_pubkey_hex with
  valid/invalid JSON vectors (14 assertions)
- All 28 test files pass, 0 failures
</content>
</entry>
<entry>
<title>Phase 10a v1.2.0: MIT license, metadata update, full API docs</title>
<updated>2026-05-23T16:39:57+00:00</updated>
<author>
<name>Your Name</name>
<email>you@example.com</email>
</author>
<published>2026-05-23T16:39:57+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub12m5exm2uk3xa674cc5r0hlyvccs5xxn7qv83ezuteefv5972nquq4j4szl/esp32-tollgate/commit/?id=bf8e095b94fe500a9c35d7f2f616eb85569dbe5e'/>
<id>urn:sha1:bf8e095b94fe500a9c35d7f2f616eb85569dbe5e</id>
<content type='text'>
- Bump idf_component.yml to v1.2.0 with MIT license, targets, tags
- Add LICENSE (MIT) for IDF Component Registry compatibility
- Update CHANGELOG.md with v1.2.0 entries (portal, stratum_client, mint_health, client)
- Update README.md with all 13 modules documented, API reference table
- Add REMAINING_PLAN.md with full execution plan and checklist
- 25 unit tests pass, ESP-IDF build passes
</content>
</entry>
</feed>
