feat: full parity with Android beacon provisioner #23

Closed
koda wants to merge 1 commit from koda/full-parity-with-android into main
Collaborator

Summary

  • BeaconShardPool.swift: Replaced all 64 shard UUIDs to match Android BeaconShardPool.kt and migration.sql. iOS had a completely different set of UUIDs that would cause shard resolution failures in production.
  • BeaconProvisioner.swift: Added frames 3-6 disable to the write sequence (16 → 24 steps). Now matches Android's DXSmartProvisioner.writeBeaconConfig() exactly: DeviceName → Frame1 config → Frame2 iBeacon → TriggerOff → Frames 3-6 disable → SaveConfig.
  • CLAUDE.md: Added full project documentation with API endpoints, DX-Smart protocol reference, 24-step write sequence, and project structure.

What changed

Area Before After
Shard Pool 64 wrong UUIDs 64 correct UUIDs (matches DB + Android)
Write sequence 16 steps (skipped frames 3-6) 24 steps (disables frames 3-6)
Documentation No CLAUDE.md Full CLAUDE.md

Test plan

  • Build in Xcode — verify no compile errors
  • Provision a DX-Smart CP28 beacon — verify all 24 commands write successfully
  • Verify frames 3-6 are disabled after provisioning (read config back)
  • Verify shard UUID resolution works with server

🤖 Generated with Claude Code

## Summary - **BeaconShardPool.swift**: Replaced all 64 shard UUIDs to match Android `BeaconShardPool.kt` and `migration.sql`. iOS had a completely different set of UUIDs that would cause shard resolution failures in production. - **BeaconProvisioner.swift**: Added frames 3-6 disable to the write sequence (16 → 24 steps). Now matches Android's `DXSmartProvisioner.writeBeaconConfig()` exactly: DeviceName → Frame1 config → Frame2 iBeacon → TriggerOff → Frames 3-6 disable → SaveConfig. - **CLAUDE.md**: Added full project documentation with API endpoints, DX-Smart protocol reference, 24-step write sequence, and project structure. ## What changed | Area | Before | After | |------|--------|-------| | Shard Pool | 64 wrong UUIDs | 64 correct UUIDs (matches DB + Android) | | Write sequence | 16 steps (skipped frames 3-6) | 24 steps (disables frames 3-6) | | Documentation | No CLAUDE.md | Full CLAUDE.md | ## Test plan - [ ] Build in Xcode — verify no compile errors - [ ] Provision a DX-Smart CP28 beacon — verify all 24 commands write successfully - [ ] Verify frames 3-6 are disabled after provisioning (read config back) - [ ] Verify shard UUID resolution works with server 🤖 Generated with [Claude Code](https://claude.com/claude-code)
koda added 1 commit 2026-03-22 17:41:01 +00:00
- Fix BeaconShardPool: replace all 64 UUIDs to match Android + migration.sql
  (iOS had a completely different set of UUIDs — would cause shard resolution failures)
- Add frames 3-6 disable to write sequence (16 → 24 steps, matches Android's
  DXSmartProvisioner.writeBeaconConfig() exactly)
- Add CLAUDE.md with full project docs, API endpoints, protocol reference

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
schwifty closed this pull request 2026-03-22 18:44:11 +00:00

Pull request closed

Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: payfrit/payfrit-beacon-ios#23
No description provided.