-
-
Notifications
You must be signed in to change notification settings - Fork 290
Release 107 feedback: mobile sync, previews, and Pro cleanup #635
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
Open
alichherawalla
wants to merge
156
commits into
main
Choose a base branch
from
release/107-feedback
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from 5 commits
Commits
Show all changes
156 commits
Select commit
Hold shift + click to select a range
9f3de0e
test(mcp): cover the "Connect desktop tools" row + bump pro pointer
siddWednesday d48de0f
feat(mcp): QR pairing scanner deps + tests + pro bump
siddWednesday 4b1c450
test(mcp): drop the vision-camera scanner mock + scan-button test
siddWednesday c256d0f
test(sync): cover scan-to-pair + restore the vision-camera mock
siddWednesday ce0b1ee
test(sync): guard that opening the scanner hides the pairing sheet
siddWednesday 81da658
chore(pro): bump mobile-pro - QR scanner overlay fix
siddWednesday 0445d6f
test(mcp): cover the Pro tools desktop-tools grant + bump mobile-pro
siddWednesday c61a8e8
chore(pro): bump mobile-pro - offline-forget fix
siddWednesday b1fb265
test(mcp): drop the desktop-section sheet tests + bump mobile-pro
siddWednesday ca2b0e2
chore(pro): bump mobile-pro - revert offline-forget (conflicts with i…
siddWednesday 61f6a28
test(mcp): stub CompanionToolsSection in the McpServersScreen suite
siddWednesday 87adccb
feat(chat): chatOverlay slot for the pending computer-use approval card
siddWednesday 8bd93e5
test(sync): send Whisper from mobile to Mac
alichherawalla 4df5485
test(chat): render clean mobile previews
alichherawalla 37bd5d7
test(sync): allow real Whisper transfer to settle
alichherawalla 9b90bb3
fix(pro): remove device licence shortcut
alichherawalla f294ca6
test(pro): prove Home to Pro journey
alichherawalla 6d04b00
test(sync): prove licence startup timer cleanup
alichherawalla b822c75
fix(app): release startup diagnostics on teardown
alichherawalla 098cb48
fix(app): keep probe stop private
alichherawalla 668fe3c
fix(home): retry cancelled LAN discovery
alichherawalla 921489f
ci(test): allow the full Jest suite heap
alichherawalla b6110f8
test(sync): allow the full transfer journey
alichherawalla c543467
test(ci): serialize related rendered journeys
alichherawalla e261317
fix(chat): show stored messages immediately
alichherawalla 229394f
Merge remote-tracking branch 'origin/main' into feat/companion-deskto…
siddWednesday 85290b0
feat(speech): add selectable multilingual voices
alichherawalla 6de04bc
fix(chat): open links and enable back gestures
alichherawalla ab062a5
test(sync): cover unified model transfer progress
alichherawalla ca9cce9
test(audio): await recording cleanup
alichherawalla c255b9b
chore(ui): keep settings selector private
alichherawalla b3e5a97
fix(ci): finish passing related test gate
alichherawalla 540e568
fix(audio): await realtime reset teardown
alichherawalla 49d6ae9
test(chat): prove immediate stored message display
alichherawalla 3edb596
fix(markdown): validate every rendered link
alichherawalla 942d521
fix(home): wait for remote settings hydration
alichherawalla c4a081e
refactor(voice): default decode language at boundary
alichherawalla 2791203
fix(audio): keep fallback teardown in reset barrier
alichherawalla 102ce93
feat(sync): add private mesh runtime controls
alichherawalla d92caee
fix(stt): align capture with the selected model
alichherawalla 5613980
feat(chat): support tap or hold mic recording
alichherawalla 439c5e4
fix(remote): allow private Tailscale endpoints
alichherawalla 8aa9178
refactor(chat): place voice mode with header actions
alichherawalla e132688
refactor(pro): use the shared activation sheet
alichherawalla 5082298
chore(pro): update voice and private mesh features
alichherawalla dc96757
chore: bump mobile-pro (desktop tools controlled entirely by device s…
siddWednesday bdcac8d
refactor(mobile): clear release quality findings
alichherawalla 0646bb3
test(voice): align release expectations
alichherawalla f3cea4d
test(chat): await generation cleanup
alichherawalla d917a9b
test(chat): budget heavy coverage journeys
alichherawalla 9b01076
test(chat): centralize the heavy journey budget
alichherawalla b1da03a
fix(ios): separate proximity advertising lifecycle
alichherawalla e2c4a5e
fix(sync): honor hidden state on iOS
alichherawalla 39382ea
test(integration): budget native UI journeys
alichherawalla 5f0abfd
docs: explain Personal Mesh connection controls
alichherawalla b4c2857
chore: update Pro CI policy pointer
alichherawalla a25e116
feat(audio): surface voice downloads
alichherawalla c7a681d
test(audio): verify runtime voice selection
alichherawalla d5402b9
test(audio): verify cached language reuse
alichherawalla abba61a
Merge remote-tracking branch 'origin/feat/companion-desktop-mcp-tools…
alichherawalla 31a3c5d
fix(sync): fall back when native upload stalls
alichherawalla c54ee6a
chore(pro): include transfer cancellation state
alichherawalla dfbae6c
fix(remote): auto-recover the remote connection on network change
Anurag-Wednesday 38293d4
fix(chat): honor new chat model and context
alichherawalla 5c711e2
feat(sync): receive action approvals
alichherawalla d060279
refactor(actions): use one approval sync path
alichherawalla d628c3a
test(actions): prove chat-only remote approval
alichherawalla e7b0e09
feat(downloads): measure canonical mobile progress
alichherawalla 6c88515
feat(downloads): show progress across mobile flows
alichherawalla 51d6e16
fix(pro): revoke mobile runtime on expiry
alichherawalla 055bd61
fix(runtime): harden mobile pro service boundaries
alichherawalla b14d71c
test(sync): cover mobile pro device journeys
alichherawalla 80c63a9
build(pro): update mobile pro dependency
alichherawalla 396f601
test(models): keep explicit remote selection authoritative
alichherawalla 96f076d
test(pro): cover live entitlement teardown
alichherawalla f7a2ce1
build(pro): update mobile pro dependency
alichherawalla 8a44159
test(pro): seed authoritative access state
alichherawalla bbc0d14
test(sync): balance uploader deadline signal
alichherawalla d32f67b
ci(shared): build mobile ui dependency
alichherawalla b2cc88c
test(pro): seed email calendar entitlement
alichherawalla 0574297
ci(pro): build shared ui in private verification
alichherawalla 4ee42a2
ci: allow manual verification runs
alichherawalla 783e12d
fix(sync): use connected-device mesh service
alichherawalla bf0bde0
test(sync): verify compacted mobile startup
alichherawalla 234de43
fix(quality): address mobile analysis findings
alichherawalla 075da9f
feat(settings): let you cap what the model spends on thinking
alichherawalla 8580dcf
feat(community): ask for a store rating instead of an X share
alichherawalla 6cac76a
docs(release): check the store rating rows instead of the X share
alichherawalla 904e2c8
fix(tests): update the share sheet for rating, unblock two ambiguous …
alichherawalla 32b7687
chore: keep the store URLs private
alichherawalla cedc7de
ci(shared): build mobile model contracts
alichherawalla 393a3fd
build(pro): update mobile pro verification
alichherawalla 6df0b89
fix(sync): stop mesh service on Android timeout
alichherawalla b856b02
fix(sync): prevent unowned mesh service restarts
alichherawalla f6c407d
feat(chat): bind remote tools to their conversation
alichherawalla be237e3
feat(onboarding): add device-fit auto setup
alichherawalla a8b7173
refactor(onboarding): enforce setup ownership
alichherawalla a9d2910
test(tasks): prove remote task chat journey
alichherawalla 7bc326b
test(onboarding): prove Voice follows Pro activation
alichherawalla 1f2fd77
build(pro): update task card architecture
alichherawalla 9011cc5
refactor(models): move download owners to services
alichherawalla 981adcd
test(onboarding): prove auto setup journey
alichherawalla b142a2a
fix(onboarding): compare every auto setup plan
alichherawalla 01a64a1
fix(onboarding): expand the selected setup plan
alichherawalla c99f857
feat(onboarding): scale setup models by tier
alichherawalla cba8868
test(tasks): prove remote control and desktop routing
alichherawalla bae1c34
docs(tasks): record mobile task gate evidence
alichherawalla bdfe9e4
test(models): fake the Hugging Face boundary
alichherawalla 8dad946
test(models): refresh curated vision fixtures
alichherawalla 4477e23
test(onboarding): follow auto setup journey
alichherawalla d2750c7
fix(models): remove duplicate type import
alichherawalla fa4a3e7
test(tasks): prove synced session playback
alichherawalla 2b5fa13
test(tasks): keep task views in chat tools
alichherawalla 12fce08
fix(sync): retry Android mesh residency safely
alichherawalla b5970a5
test(tasks): verify mobile sync readiness and replay
alichherawalla 14aa4f1
test(tasks): verify one mobile replay surface
alichherawalla 13a46f5
fix(models): keep download alerts below UI layer
alichherawalla fd7d4f2
chore(mobile): keep release exports in use
alichherawalla 3de418c
refactor(chat): remove unused approval surface
alichherawalla c6e7987
test(tasks): verify mobile routing and early sync
alichherawalla 562f9b3
fix(chat): remove retired approval import
alichherawalla 99a6d1f
refactor(onboarding): expose auto setup boundaries
alichherawalla e49f66d
test(release): verify setup and replay journeys
alichherawalla 57c0a5c
fix(onboarding): own cancellable auto setup sessions
alichherawalla 29ecccd
fix(chat): preflight remote models before tool turns
alichherawalla 5e09d4d
fix(sync): report Android residency degradation
alichherawalla 313293d
test(tasks): prove secure mobile task journeys
alichherawalla ee59fbc
chore(pro): update secure task sync
alichherawalla f37df57
chore(pro): update bounded sync shutdown
alichherawalla fdcc6d3
test(tasks): install companion routing boundaries
alichherawalla db1c655
test(tasks): install MCP task sync boundaries
alichherawalla 43143af
refactor(mobile): keep setup and residency types private
alichherawalla a1e3c9e
fix(tasks): render synced preview loading feedback
alichherawalla 8741abb
build(mobile): install shared automation contracts
alichherawalla ec87372
chore(mobile): update Pro task controls
alichherawalla b77df49
test(tasks): cover full-screen session playback
alichherawalla bc12900
fix(metro): resolve shared automation package
alichherawalla 061a2dd
fix(sync): settle shared files after reconnect
alichherawalla 7b5523d
feat(sync): add resilient mobile QR pairing and activation
alichherawalla 0455029
feat(tasks): add mobile companion controls and guidance
alichherawalla adc44c8
feat(models): add mobile remote media and server parity
alichherawalla e9abcc6
feat(pro): refresh capability and sharing prompts
alichherawalla db2f7a9
docs(release): update Mobile Release 107 QA
alichherawalla 3ce9a85
fix(models): clear discovery request timers
alichherawalla dc45bd5
test: align mobile release journeys
alichherawalla 712322b
chore(pro): update release test boundary
alichherawalla f5c4cec
Merge remote-tracking branch 'origin/feat/remote-reconnect' into rele…
alichherawalla 0d447ae
fix(chat): remove duplicate tool aliases
alichherawalla 1263ac0
chore(mobile): remove redundant public surface
alichherawalla d73d162
fix(reconnect): close mobile recovery races
alichherawalla 908044b
fix(release): close mobile review blockers
alichherawalla 8ce188b
test(ci): budget heavy rendered journeys
alichherawalla 0381f91
refactor(release): close sonar maintainability findings
alichherawalla fc186f9
fix(release): close final mobile review findings
alichherawalla 261da4e
test(ci): keep boot proof stable under coverage
alichherawalla 2076e18
refactor(release): simplify whisper cancellation owner
alichherawalla 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
51 changes: 51 additions & 0 deletions
51
__tests__/integration/pro/proScreenNoDeviceLicenceShortcut.rendered.test.tsx
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,51 @@ | ||
| /** | ||
| * The Pro pitch has one purchase path and one key-entry path. A second action that offered to use | ||
| * another device's licence duplicated the Sync journey and made the purchase screen ambiguous. | ||
| * | ||
| * This test enters through the real Home screen and real app navigation. Native rendering remains | ||
| * supplied by the Jest environment, but every Off Grid screen, store action, and route is real. | ||
| */ | ||
| import React from 'react'; | ||
| import { fireEvent, render, waitFor } from '@testing-library/react-native'; | ||
| import { NavigationContainer } from '@react-navigation/native'; | ||
| import { AppNavigator } from '../../../src/navigation/AppNavigator'; | ||
| import { useAppStore } from '../../../src/stores/appStore'; | ||
| import { createDeviceInfo, createDownloadedModel } from '../../utils/factories'; | ||
|
|
||
| describe('Pro entry from Home', () => { | ||
| beforeEach(() => { | ||
| const model = createDownloadedModel(); | ||
| const app = useAppStore.getState(); | ||
|
|
||
| // Use the production store actions to restore a returning user's local app state. The behavior | ||
| // under test starts with their real Home-screen gesture below. | ||
| app.setOnboardingComplete(true); | ||
| app.setDeviceInfo(createDeviceInfo()); | ||
| app.setDownloadedModels([model]); | ||
| app.setActiveModelId(model.id); | ||
| }); | ||
|
|
||
| afterEach(() => { | ||
| const app = useAppStore.getState(); | ||
| app.setActiveModelId(null); | ||
| app.setDownloadedModels([]); | ||
| app.setOnboardingComplete(false); | ||
| }); | ||
|
|
||
| it('opens the Pro screen with its two valid actions and no device-licence shortcut', async () => { | ||
| const ui = render( | ||
| <NavigationContainer> | ||
| <AppNavigator /> | ||
| </NavigationContainer>, | ||
| ); | ||
|
|
||
| fireEvent.press(await ui.findByLabelText('Open Off Grid AI Pro')); | ||
|
|
||
| await waitFor(() => expect(ui.getByText('Off Grid AI Pro')).toBeTruthy()); | ||
| expect(ui.getAllByText('Get Pro').length).toBeGreaterThan(0); | ||
| expect(ui.getByText('I have a license key')).toBeTruthy(); | ||
| expect(ui.queryByText('Use Pro from another device')).toBeNull(); | ||
|
|
||
| ui.unmount(); | ||
| }); | ||
| }); |
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
Submodule pro
updated
from 879094 to cbe05d
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
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.