Skip to content

Remove Shin branding and duplicate Linux plugin packaging - #66

Merged
YashasVM merged 11 commits into
mainfrom
cleanup/remove-shin-branding
Sep 26, 2026
Merged

YashasVM merged 11 commits into
mainfrom
cleanup/remove-shin-branding

Conversation

@YashasVM

Copy link
Copy Markdown
Owner

The Android launcher and OBS source still showed Shin while the repository and setup flow use OpenStream. Linux also built and released shin-obs.so beside an existing OpenStream installer, leaving two plugin names to maintain.

This change uses OpenStream for visible Android and OBS labels, Linux build output, installer, package, and release artifact. It removes the duplicate Shin installer and old audit file. The OpenStream Linux installer removes an older Shin module after placing the new module. Wire protocol tokens, shin:// links, the saved OBS source ID, Android application ID, and signing remain unchanged for compatibility.

Validation: 115 Python contracts passed; four C++ tests passed; the Android debug APK built; the Linux plugin built; and the packaged Linux installer installed openstream-obs.so in an isolated directory. Physical Android pairing and OBS GUI loading still require device testing.

…, harden release paths

Android reservation now fully delegates to ReservationState:
pending selection is advertised but not busy, only /reserve
confirms. busy/advertised providers use isBusy/advertisedId,
45s lease split into pending rollback vs confirmed release.
Fixes MainActivity val-vs-assignment compile break.

Discovery prefers UDP peer with explicit manual override and
blank-host rejection. Encoder log tags unified to shinEncoder
with AVC hardware-only selection contract. Dock restores
peer-bound lens/torch/identify via bounded slots (8 buttons).
Worker exit documents release-before-clear destroy ordering.

Tests: 101 passed.
…tall destinations

- Android unit tests run on JVM against android.jar stubs where
  org.json.JSONObject throws 'not mocked'. Add test-only
  org.json:json so ObsDiscoveryProtocolTest exercises real parsing.
  On-device code still uses platform org.json.
- Windows CMake MODULE target needs LIBRARY (and ARCHIVE)
  destination; configure failed with 'install TARGETS given no
  LIBRARY DESTINATION'. RUNTIME-only was insufficient.

Tests: pytest -q 101 passed locally. Android unit-test + Windows
build verification via CI.
- Camera2Controller: appContext + nullable CameraManager, non-crashing
  select/open/switch with single-Back fallback and warnings.
- CameraControlServer: clientLock sync, bind errors surfaced via onError.
- SrtStreamClient: guarded native load (loadError/isAvailable), explicit
  unavailable error instead of UnsatisfiedLinkError crash.
- docs/architecture: canonical 51615/239.255.43.99/9100/9101.
- gitignore local .claude/ agent scaffolding.

Tests: pytest -q 113 passed.
Keep pending-advertised/confirmed-busy ReservationState model while
porting crash/ANR fixes: appContext, native-unavailable status, control
onError surface, onStop off-UI (shinActivityStop daemon), identify leak
fix, permission-denied UI, bitrate lock, lens restart off-UI with
single-flight lock, stopPhoneServer blockingWork off-UI with
Reserved escape hatch.

Tests: pytest -q 113 passed.
…rties

- Discovery registry bounded 64 evict-eldest with warning (AGENTS 3/16).
- Reserved names SRT target + control-OK log (TCP 9101 OK vs SRT 9100
  blocked diagnosable).
- Properties minimal: Test/Disconnect/Zoom/Identify only; torch/lens live
  in dock via bounded send (no duplication). Drop dead command table.

Tests: pytest -q 113 passed.
- New test_prod_hardening_contract: 12 guards covering crash-free
  Android, ReservationState preserved, bounded discovery, diagnosable
  Reserved, dock-full/properties-minimal split, canonical docs.
- test_srt_contract: accept guarded native wrappers (nativeSendVideo/
  nativeSendAudio) + require loadError/isAvailable.

Tests: pytest -q 113 passed.
@coderabbitai

coderabbitai Bot commented Sep 26, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Advanced

Run ID: e16bfd51-a2f7-4c22-a425-c2b8c6ca7bc4


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@YashasVM
YashasVM merged commit 87bb86d into main Sep 26, 2026
5 checks passed
@YashasVM
YashasVM deleted the cleanup/remove-shin-branding branch September 28, 2026 18: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.

1 participant