-
Notifications
You must be signed in to change notification settings - Fork 3
Fix join flow: skip stale groups in discovery + add sync fallback #517
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
9 commits
Select commit
Hold shift + click to select a range
efa4350
Skip self-created single-member groups in discoverNewConversations
yewreeka 0438af3
Add discovery loop fallback for join flow
yewreeka ecab2d2
Remove accidentally committed .mote-preview.html
yewreeka 72ae042
Add .mote-preview.html to gitignore
yewreeka ed1c13d
Remove investigation and plan docs
yewreeka 630481d
Fix duplicate MessagingService creation in messagingServiceSync
yewreeka 2890b43
Revert "Fix duplicate MessagingService creation in messagingServiceSync"
yewreeka eb5714d
Stop orphaned duplicate services in registerExternalService
yewreeka 42fc68a
Address PR feedback: stop duplicate at call site, add deinit cleanup
yewreeka File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -129,3 +129,4 @@ qa/cxdb/qa.sqlite | |
| qa/cxdb/qa.sqlite-wal | ||
| qa/cxdb/qa.sqlite-shm | ||
| .DS_Store | ||
| .mote-preview.html | ||
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
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
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
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
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
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
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
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
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
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
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,68 @@ | ||
| # Test: Scheduled Explode (In-App Expiration) | ||
|
|
||
| Verify that a conversation with a scheduled explosion is automatically cleaned up when the timer expires while the app is in the foreground. This tests the scenario where another device schedules the explosion and the app must detect the expiration in real time. | ||
|
|
||
| ## Prerequisites | ||
|
|
||
| - The app is running and past onboarding. | ||
| - The convos CLI is initialized for the dev environment. | ||
|
|
||
| ## Setup | ||
|
|
||
| 1. Create a conversation from the CLI (so the CLI user is the super admin with explode permission). | ||
|
|
||
| ```bash | ||
| CONV=$(convos conversations create --name "Boom Test" --profile-name "Bomber" --json) | ||
| CONV_ID=$(echo "$CONV" | python3 -c "import json,sys; print(json.load(sys.stdin)['conversationId'])") | ||
| ``` | ||
|
|
||
| 2. Generate an invite and have the app join via deep link. | ||
| 3. Process the join request from the CLI (per invite ordering rules in RULES.md). | ||
| 4. Send a few messages from both sides so the conversation has content and is clearly active. | ||
|
|
||
| ## Steps | ||
|
|
||
| ### Verify conversation is active | ||
|
|
||
| 1. The app should be viewing the conversation (or navigate to it from the conversations list). | ||
| 2. Verify the conversation name "Boom Test" is visible. | ||
| 3. Verify messages are visible in the conversation. | ||
|
|
||
| ### Schedule explosion from CLI | ||
|
|
||
| 4. From the CLI, schedule an explosion ~15 seconds in the future. Compute the ISO8601 timestamp dynamically: | ||
|
|
||
| ```bash | ||
| EXPIRES_AT=$(python3 -c "from datetime import datetime, timedelta, timezone; print((datetime.now(timezone.utc) + timedelta(seconds=15)).strftime('%Y-%m-%dT%H:%M:%SZ'))") | ||
| convos conversation explode "$CONV_ID" --scheduled "$EXPIRES_AT" --force | ||
| ``` | ||
|
|
||
| ### Verify scheduled state in app | ||
|
|
||
| 5. The app should receive the ExplodeSettings message via the XMTP stream within a few seconds. | ||
| 6. The explode button in the conversation toolbar should change to show a countdown (e.g., "Explodes in 0:12"). Look for the `explode-button` accessibility identifier with "Scheduled to explode" label. | ||
|
|
||
| ### Wait for expiration | ||
|
|
||
| 7. Keep the app in the foreground. Do not navigate away or background the app. | ||
| 8. Wait for the scheduled time to pass (~15 seconds from when the explosion was scheduled). | ||
|
|
||
| ### Verify automatic cleanup | ||
|
|
||
| 9. The conversation should be automatically cleaned up when the timer expires. The app should navigate back to the conversations list (or show an exploded state). | ||
| 10. Verify the conversation no longer appears in the conversations list. Search for the conversation name "Boom Test" — it should not be found. | ||
|
|
||
| ## Teardown | ||
|
|
||
| No cleanup needed — the conversation is destroyed by the explosion. | ||
|
|
||
| ## Pass/Fail Criteria | ||
|
|
||
| - [ ] Conversation is active and showing messages before explosion is scheduled | ||
| - [ ] App receives the scheduled explosion and shows countdown in the explode button | ||
| - [ ] Conversation is automatically cleaned up when the timer expires while the app is foregrounded | ||
| - [ ] Conversation no longer appears in the conversations list after expiration | ||
|
|
||
| ## Accessibility Improvements Needed | ||
|
|
||
| (To be filled in during test execution if any elements are hard to find.) |
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.