Skip to content

Instrument SpecBridge for Oakley Meta compatibility testing#1

Open
6latt with Copilot wants to merge 3 commits into
mainfrom
copilot/prepare-oakley-meta-compatibility
Open

Instrument SpecBridge for Oakley Meta compatibility testing#1
6latt with Copilot wants to merge 3 commits into
mainfrom
copilot/prepare-oakley-meta-compatibility

Conversation

Copilot AI commented Mar 28, 2026

Copy link
Copy Markdown
  • Explored repo structure and understood all existing code
  • Create DebugLogger.swift@MainActor singleton; nonisolated log(); state fields including rtmpFrameCount; 550-entry ring-buffer with batch-trim; resetSession() resets both frame counters
  • Create DebugPanelView.swift — in-app debug sheet with "Glasses Frames" and "RTMP Frames" rows
  • Update SpecBridgeApp.swift — log Wearables.configure() outcome
  • Update ContentView.swift — log onOpenURL/handleUrl, log startRegistration(); rename button; 🐛 overlay button
  • Update StreamManager.swift — full instrumentation + StreamQualityPreset enum + segmented picker
  • Update README.md — replace "Ray-Ban Meta" with "Meta AI Glasses"; document new features
  • Create OAKLEY_COMPATIBILITY_REPORT.md — assumptions audit, blockers, prioritized patch list
  • Resolve merge conflicts with origin/main — integrated rtmpFrameCount field added by c7af702 (RTMP pipeline instrumentation) and permission string genericization from 96eaad6
Original prompt

fork jasondukes/SpecBridge and prepare it for Oakley Meta compatibility testing.

goals:

  1. do not change the streaming architecture yet.
  2. add aggressive logging around the Meta DAT connection flow.
  3. identify whether Oakley Meta can register, request camera permission, start a stream session, and deliver first frames.

tasks:

  • inspect the full repo for any hardcoded “Ray-Ban” strings, product checks, bundle assumptions, or device filters.
  • inspect Info.plist, project settings, URL schemes, and entitlements for Meta View callback handling.
  • instrument the following with detailed logs:
    • app startup / Wearables.configure()
    • startRegistration()
    • onOpenURL / handleUrl(url)
    • permission status before and after requestPermission(.camera)
    • AutoDeviceSelector result if accessible
    • StreamSession creation
    • session.start() success/failure
    • first video frame arrival
    • session stop/disconnect reasons
  • surface these logs in both Xcode console and a visible debug panel in the UI.
  • add a “debug mode” screen that shows:
    • registration state
    • permission state
    • connected device name/model if exposed
    • stream state
    • frame count
    • last error
  • add fallback test configs for stream session:
    • high / 24 fps (current)
    • medium / 24 fps
    • medium / 15 fps
    • low / 15 fps
  • keep Twitch/RTMP code untouched except where necessary to avoid blocking frame tests.
  • rename user-facing copy from “Ray-Ban Meta” to generic “Meta AI Glasses” unless code comments require otherwise.
  • produce a short report:
    • visible app-level Ray-Ban assumptions found
    • likely SDK-level or entitlement-level blockers
    • exact files and lines that should be patched first for Oakley testing

💬 Send tasks to Copilot coding agent from Slack and Teams to turn conversations into code. Copilot posts an update in your thread when it's finished.

…ack quality presets

Agent-Logs-Url: https://github.com/6latt/meta2rtmp/sessions/94057c5f-f98f-4cb2-9277-91691813af3c

Co-authored-by: 6latt <103127735+6latt@users.noreply.github.com>
Copilot AI changed the title [WIP] Add aggressive logging for Meta DAT connection flow Instrument SpecBridge for Oakley Meta compatibility testing Mar 28, 2026
Copilot AI requested a review from 6latt March 28, 2026 12:23
@6latt

6latt commented Apr 21, 2026

Copy link
Copy Markdown
Owner

@copilot resolve the merge conflicts in this pull request

…gPanelView (add rtmpFrameCount)

Co-authored-by: 6latt <103127735+6latt@users.noreply.github.com>

Copilot AI commented Apr 21, 2026

Copy link
Copy Markdown
Author

@copilot resolve the merge conflicts in this pull request

Resolved in d420e05. There were two add/add conflicts in DebugLogger.swift and DebugPanelView.swift — both caused by origin/main adding rtmpFrameCount tracking (commit c7af702) while our branch had its own version of those files. Merged both sides: DebugLogger now exposes @Published var rtmpFrameCount and resets it in resetSession(), and the debug panel now shows separate Glasses Frames and RTMP Frames rows.

@6latt
6latt marked this pull request as ready for review April 22, 2026 06:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants