chore: add CI workflows, issue template, and EAS config#1
Merged
Conversation
Co-Authored-By: Volnei Munhoz <volnei.munhoz@gmail.com>
Contributor
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
Co-Authored-By: Volnei Munhoz <volnei.munhoz@gmail.com>
Co-Authored-By: Volnei Munhoz <volnei.munhoz@gmail.com>
Co-Authored-By: Volnei Munhoz <volnei.munhoz@gmail.com>
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds CI/CD infrastructure to the standalone companion repo, migrated and adapted from the monorepo (
calcom/cal.com). The companion app was previously a subdirectory in the monorepo where CI was orchestrated viaworkflow_calljobs inpr.yml. Now that companion lives in its own repo, it needs its own CI configuration.Changes:
.github/workflows/ci.yml— Standalone CI with three parallel jobs: lint, typecheck, and build (Expo web + browser extension). Triggers on PRs tomainand pushes tomain..github/ISSUE_TEMPLATE/companion.md— Bug/feature request template for iOS, Android, and browser extension issues (carried over from monorepo)..easignore— EAS Build ignore file, adapted from monorepo version by removingcompanion/path prefixes and the root-level exclusion pattern that was needed in the monorepo context.biome.json— Two fixes for standalone repo compatibility:"root": false→"root": trueso Biome doesn't look for a parent config that no longer exists outside the monorepo."noUnknownAtRules": "off"to suppress Biome 2.x flagging Tailwind's@tailwinddirectives as unknown CSS at-rules.Review & Testing Checklist for Human
package.json: The CI referencesbun run lint:all,bun run typecheck:all, andbun run ext:build— confirm these scripts are defined in the companion repo'spackage.json.secrets.CI_EXPO_PUBLIC_CAL_API_KEY/vars.CI_EXPO_PUBLIC_CAL_API_KEY/vars.EXPO_PUBLIC_CAL_API_KEY. At least one of these needs to be set in the companion repo's GitHub Settings → Secrets/Variables.biome.jsonchanges are appropriate:root: trueis correct for a standalone repo.noUnknownAtRules: "off"disables the rule globally (though it only applies to CSS in Biome 2.x) — confirm this is acceptable or if a more scoped approach is preferred.blacksmith-4vcpu-ubuntu-2404). This PR usesubuntu-latest. Confirm this is acceptable or if Blacksmith should be configured for this repo too.https://github.com/calcom/companion/blob/main/CONTRIBUTING.md— verify this file exists or update the link.Notes
workflow_call(invoked by the monorepo'spr.yml) to directpull_request/pushtriggers for standalone use.working-directory: companiondirectives were removed since the repo root is now the companion app..easignorewas simplified — the monorepo version had to ignore everything at root exceptcompanion/, which is no longer needed.Link to Devin run: https://app.devin.ai/sessions/c426fbde722b4a668333a803306fd36e
Requested by: @volnei