Skip to content

docs: add README for companion app and browser extensions#2

Merged
keithwillcode merged 2 commits into
mainfrom
devin/1771116426-add-readme
Feb 15, 2026
Merged

docs: add README for companion app and browser extensions#2
keithwillcode merged 2 commits into
mainfrom
devin/1771116426-add-readme

Conversation

@keithwillcode
Copy link
Copy Markdown
Contributor

@keithwillcode keithwillcode commented Feb 15, 2026

Summary

Adds a comprehensive README to the companion repo covering both the mobile app (iOS/Android) and the browser extensions (Chrome, Firefox, Safari, Edge). Includes feature overview, tech stack, getting started instructions, project structure, available scripts, and contributing guidelines.

Review & Testing Checklist for Human

  • Verify store links — The App Store (id6746080498), Google Play (com.calcom.companion), and Chrome Web Store links should be checked to confirm they resolve to the correct listings
  • Verify logo URLhttps://cal.com/logo.svg is used for the header image; confirm it renders correctly on GitHub
  • Feature accuracy — Skim the Mobile App and Browser Extensions sections to make sure nothing is overstated or missing relative to the current state of the product

Notes

  • The react-native-android-widget GitHub link points to nickkraakman/react-native-android-widget — worth confirming this is the correct upstream repo
  • No code changes; zero functional risk
  • Requested by @keithwillcode
  • Link to Devin run

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
@devin-ai-integration
Copy link
Copy Markdown
Contributor

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR that start with 'DevinAI' or '@devin'.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
@keithwillcode keithwillcode marked this pull request as ready for review February 15, 2026 00:58
@keithwillcode keithwillcode self-assigned this Feb 15, 2026
@keithwillcode keithwillcode merged commit 058653b into main Feb 15, 2026
4 checks passed
devin-ai-integration Bot pushed a commit that referenced this pull request May 29, 2026
…registration races

Addresses parallel-review findings:
- #1/#2: add a monotonic auth generation (epoch) bumped on clearAuth and every
  new login. Refreshes discard their result if the epoch changed mid-flight, and
  401 retries abort instead of replaying a stale request under a new identity.
- #3: loginFromWebSession now clears the query cache before flipping auth state
  so a previous user's in-memory cache can't be re-persisted under the new owner.
- #4: a registration that completes after logout/switch is not persisted as the
  active record; it is parked for retry instead of leaving a live subscription.
- #5: compare the full {token,userId,region,deviceId} tuple and keep unresolved
  prior registrations in a retry queue instead of clobbering the single slot.
dhairyashiil added a commit that referenced this pull request Jun 2, 2026
…es (epoch guard + auth-transition lock) (#97)

* fix(mobile): durable push registration, single-flight token refresh, identity-scoped query cache

* fix(mobile): address review feedback on push/auth/cache hardening

- write cal_auth_user_id in loginFromWebSession so web-session users keep persisted cache
- treat backend 404 on unregister as already-gone (region-aware) and clear stale record
- resolve a differing previous push registration before overwriting it
- add safe, PII-free logs (region, userId, deviceId, token hash) to push cleanup paths

* fix(mobile): guard auth session with a generation/epoch; harden push registration races

Addresses parallel-review findings:
- #1/#2: add a monotonic auth generation (epoch) bumped on clearAuth and every
  new login. Refreshes discard their result if the epoch changed mid-flight, and
  401 retries abort instead of replaying a stale request under a new identity.
- #3: loginFromWebSession now clears the query cache before flipping auth state
  so a previous user's in-memory cache can't be re-persisted under the new owner.
- #4: a registration that completes after logout/switch is not persisted as the
  active record; it is parked for retry instead of leaving a live subscription.
- #5: compare the full {token,userId,region,deviceId} tuple and keep unresolved
  prior registrations in a retry queue instead of clobbering the single slot.

* fix(mobile): close epoch-guard gaps in refresh/boot/logout/push paths

* fix(mobile): close residual epoch/partial-write and push-404 ownership gaps

* fix(mobile): close rollback/web-login/push-cleanup gaps from round 4

* fix(mobile): epoch-guard setupAfterLogin/loginWithOAuth, tighten rollback marker + late-registration cleanup

* fix(mobile): close remaining setupAfterLogin/loginWithOAuth/web-session epoch windows

* fix(mobile): serialize auth/storage marker mutations via auth-transition lock; pre-POST generation check for push registration

* fix(mobile): recheck auth generation after setupAfterLogin before installing refresh fn

* fix(mobile): coalesce concurrent logouts, re-entrancy guard for auth lock, region-safe cache envelope, pending-queue cap
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