fix: clarify client release channels - #45
Open
tmad4000 wants to merge 2 commits into
Open
Conversation
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.
Intent
Clarify OpenChat's client hierarchy for an early project. Do not encourage public installation or TestFlight enrollment for the actual native iOS or Android apps; keep native builds as private experiments. Treat the shared apps/mobile React Native/Expo implementation as the forward path for mobile web and responsive desktop web, but label both /m and /d clearly as experimental previews while under active development. Mark the older apps/web Vite client at /legacy as out of date and potentially missing features, retaining it only as a compatibility fallback. Remove native acquisition links from the public landing page, per-user invite landing page, and both client settings/invite surfaces. Document the architecture: /m and /d share one codebase; /d uses a master-detail layout at desktop widths and is PWA-installable. Preserve web/mobile parity and include regression coverage for these release-channel labels and link constraints.
What Changed
/mand/dweb previews while removing public TestFlight and Android acquisition links./legacyas an out-of-date compatibility fallback and document the shared React Native web architecture, desktop master-detail/PWA behavior, and private native builds.Risk Assessment
🚨 High: The implementation removes acquisition links from the named app surfaces, but a public TestFlight enrollment path remains documented and authenticated /m users lack the clear release-channel label required by the stated intent.
Testing
After installing the locked dependencies, the focused release-channel regression test passed; desktop and mobile-responsive browser checks confirmed the intended hierarchy, route selection, private-native messaging, legacy warning, and absence of acquisition links, with screenshots captured. A direct Expo login render was attempted but its dev server did not respond, and all transient files were cleaned up.
/var/folders/7w/cfzyk2q1135bh_qr4jsm7ft40000gp/T/no-mistakes-evidence/01M1GVNYJ2YE0M8JJQ5DP3M25A/release-channels-desktop.png)/var/folders/7w/cfzyk2q1135bh_qr4jsm7ft40000gp/T/no-mistakes-evidence/01M1GVNYJ2YE0M8JJQ5DP3M25A/release-channels-narrow-web.png)Pipeline
Updates from git push no-mistakes
✅ **intent** - passed
✅ No issues found.
✅ **Rebase** - passed
✅ No issues found.
docs/gcp-production.md:25- The requirement says native builds must remain private and must not encourage public TestFlight enrollment, but the public tester guide still publishes the external join URL and step-by-step enrollment instructions (docs/testers.md:14-28), contradicting this new “Internal development only” claim. Remove the public join link and describe invitation-only/private testing instead, or explicitly approve the tester guide as an exception.apps/mobile/src/components/MasterDetailLayout.tsx:287- The requirement says to “label both /m and /d clearly as experimental previews,” but this persistent badge was added only to the desktop master-detail path. An already-authenticated user opening /m goes directly to ConversationsScreen, whose visible header only says “Chats”; the experimental label appears only on login or inside Settings. Put the release label at shared authenticated chrome so both paths expose it, or confirm that landing/login/settings-only labeling is intended.✅ **Test** - passed
✅ No issues found.
npx vitest run test/releaseChannels.test.ts(initially blocked by missing dependencies, then passed afternpm ci --ignore-scripts)Renderedapps/server/src/landing.htmlat 1440×1100 and inspected visible release labels and link destinationsEmulated a 390×844 mobile viewport and verified a 390px document width,/m/hero routing, mobile-first preview ordering, and zero TestFlight/APK linksCaptured desktop and 500×900 narrow-browser screenshots using headless ChromeAttempted to render the shared Expo client withCI=1 IS_WEB_BUILD=1 OPENCHAT_BASE_URL=/m npx expo start --web --port 8089; Metro started but did not serve a response, so no client screenshot was retainedRemoved installed dependencies and unsuccessful transient evidence after testing; verified the worktree remained unchanged✅ **Document** - passed
✅ No issues found.
✅ **Lint** - passed
✅ No issues found.
✅ **Push** - passed
✅ No issues found.