Repository navigation
Polish desktop onboarding, page transitions, and themed capsules - #1272
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 4c9894d7e1
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| setGate('ready'); | ||
| return; | ||
| } | ||
| const credentials = await getCredentials(); |
There was a problem hiding this comment.
Keep credential probe failures from blocking startup
When the get_credentials IPC call rejects (for example, if the backend is temporarily unavailable after the startup handshake), this async startup effect exits without setting gate or handling the error. The app therefore remains on CoreStartupScreen indefinitely, whereas the previous permission-gate path caught probe failures and continued to the app; wrap this probe in the existing startup error fallback so users can still reach the UI.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 84c601858a
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| setGate('ready'); | ||
| return; | ||
| } | ||
| const credentials = await getCredentials(); |
There was a problem hiding this comment.
Keep credential probing out of the blocking startup gate
When the credential store IPC call hangs (for example while the backend or OS credential service is temporarily unresponsive), this await prevents the startup effect from reaching the Windows hotkey timeout or any permission fallback, so the app remains on CoreStartupScreen indefinitely. getCredentials ultimately performs a raw Tauri invoke without a timeout; probe it after showing the app or race it with a bounded fallback so a slow credential service cannot block startup.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 82ac582f0d
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| setGate('ready'); | ||
| return; | ||
| } | ||
| const credentials = await getCredentials(); |
There was a problem hiding this comment.
Handle credential probe failures during startup
When the newly added getCredentials() IPC call rejects, this startup effect exits before setting gate, leaving the app on CoreStartupScreen indefinitely. The current commit still awaits the raw probe without a catch or fallback, so a transient backend or credential-service failure prevents users from reaching the UI; preserve the existing startup fallback and continue to the app or onboarding state.
Useful? React with 👍 / 👎.
| setGate('ready'); | ||
| return; | ||
| } | ||
| const credentials = await getCredentials(); |
There was a problem hiding this comment.
Bound the credential probe before blocking startup
If getCredentials() hangs rather than rejects—for example while the backend or OS credential service is temporarily unresponsive—this await prevents the effect from reaching the Windows hotkey timeout or any fallback, so startup remains on CoreStartupScreen indefinitely. The current commit still performs an unbounded raw IPC await; race it with a bounded fallback or move the probe after the main UI is shown.
Useful? React with 👍 / 👎.
…etup # Conflicts: # openless-all/app/e2e/fixtures/capsule-motion.tsx
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: f07ce04f66
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| const finish = () => | ||
| run(async () => { | ||
| // The parent's handoff prepares the main bundle before removing this surface. | ||
| deferPostGuidePrompts(); | ||
| await onComplete(); | ||
| persist({ ...progress, name: name.trim().slice(0, 40), finished: true }); |
There was a problem hiding this comment.
Keep “Explore first” from completing onboarding
The header's skipAll action calls this same finish handler, which always persists finished: true after entering the app. As a result, users who choose “Explore first” are treated as having permanently completed onboarding and the next launch bypasses the guide (App checks progress?.finished); this contradicts the intended skip/defer behavior and prevents the guide from resuming unless the user discovers the separate reopen control.
Useful? React with 👍 / 👎.
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: b12176a809
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| const progress = readGuideProgress(); | ||
| if (progress?.finished) { | ||
| setGate('ready'); | ||
| return; | ||
| } |
There was a problem hiding this comment.
Recheck permissions after onboarding is marked finished
When ol.desktopOnboarding.v1 has finished: true, this early return skips the Windows hotkey-status check and the macOS microphone/accessibility checks on every subsequent launch. If a user later revokes a permission or the hotkey hook fails, the app still enters ready instead of reopening the permission flow, leaving dictation unavailable without an actionable startup gate.
Useful? React with 👍 / 👎.
| const [committed, setCommitted] = useState<Surface>({ key: contentKey, children }); | ||
| const retained = useRef(committed); | ||
| const latest = useRef({ key: contentKey, children }); | ||
| latest.current = { key: contentKey, children }; |
There was a problem hiding this comment.
Keep the current surface synchronized when its key is unchanged
The committed surface stores the initial children and is only replaced when contentKey changes. Parent rerenders with the same key therefore keep rendering a stale element tree; for example, FloatingShell computes the ol-conservative-scope class from updated preferences, but toggling conservative layout while remaining on the same tab leaves the old class in place until navigation remounts the surface.
Useful? React with 👍 / 👎.
|
@codex review |
|
Codex Review: Didn't find any major issues. 🎉 Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
|
@codex review |
|
Codex Review: Didn't find any major issues. What shall we delve into next? Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
|
@codex review |
|
Codex Review: Something went wrong. Try again later by commenting “@codex review”. ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
|
@codex review |
|
Codex Review: Something went wrong. Try again later by commenting “@codex review”. ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
|
@codex review |
1 similar comment
|
@codex review |
Desktop setup previously stopped at permission prompts, and navigation replaced content before the next screen was ready. Bound the optional startup credential probe to 1.5 seconds so an unresponsive credential service cannot trap the main window on the startup screen. Retain the existing rejection fallback, cancel the waiting timer with the effect, and ignore late results without marking setup complete or bypassing the backend contract handshake. Add a resumable, centered setup guide with optional configuration steps and a fixed primary action. Permissions stay on the current step after granting; users can defer setup, enter the app, and reopen the guide from Permissions. Windows uses a seven-step guide, skips macOS Accessibility probes, explains desktop-app microphone access, refreshes permission state on return, and permits deferral when no microphone is available. Its shortcut guidance matches left/right modifier and Mouse4/Mouse5 support.
Coordinate outgoing and incoming pages with blur, vertical motion and scale: normal transitions take about 250 ms, and slower initial preparation uses about 380 ms while retaining the previous page. Onboarding uses a gentler 300 ms handoff and 340 ms glyph blur reveal while retaining the normal navigation timing. All three visual properties share one native animation timeline, including interrupted returns. Respect reduced motion, release animation layers, smooth coarse wheel input, and hide scrollbar chrome while keeping native trackpad behavior.
Move service setup and channel editing into bounded dialogs. Keep model retrieval status beside its button and reserve the model selector on the right so verification controls do not move. Size shortcut controls to their key labels and replace the welcome input's blue outline with an underline. Update the canonical architecture/acceptance contracts and all eight UI locales.
Make the default capsule and translation badge follow the app theme with readable translucent surfaces. The WebView pill fades from slight blur over 240 ms, exits over 180 ms, and resumes from its painted pose when interrupted. The native helper shares the palette and softer fade; macOS adds a pill-bounded system material beneath the OpenGL content, while Windows retains translucent rendering. Update native smoke fixtures to protocol v2 and cover light, dark and system themes. The Windows lifecycle fixture now uses a lightweight stdin-draining process, and the permission test waits for the asynchronous settings invocation.
Keep live and hidden capsule windows synchronized when the theme changes. Every WebView subscribes to native preference changes before its boot read; late startup responses cannot overwrite a newer theme. Native helpers restyle their current frame on preference events without restarting, reopening an idle capsule or changing session/exit state. Add same-window, hidden-window, system-following and stale-boot-read regressions.
Validation:
0d4f0907: no local builds. Cloud CI, automated review and artifact-only desktop builds are running for this head.7e21972cpassed all 24 CI checks and both 212-case UI suites. These results do not substitute for the current head's checks.Reference entry for the local browser preview:
/?onboarding=1&os=macor/?onboarding=1&os=win. Preview permissions/settings remain simulated and desktop onboarding progress is not written by the preview.