UX changes for notch presentation and DynamicNotchKit pin update#265
UX changes for notch presentation and DynamicNotchKit pin update#265
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: b3cca70d00
ℹ️ 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".
| let resolvedScreen = screen ?? self.preferredPresentationScreen() | ||
| self.currentScreenSupportsCompactPresentation = self.supportsCompactPresentation(on: resolvedScreen) |
There was a problem hiding this comment.
Derive policy from active overlay screen
refreshNotchPresentationPolicy falls back to preferredPresentationScreen() (mouse location) when no screen is provided, and capability getters (for example canShowExpandedCommandOutput) call it on each access. On multi-display setups this causes the policy to flip as the cursor moves between displays with and without compact-notch support, so compact-mode command expansion/actions can be enabled or disabled mid-session even though the overlay is already attached to a specific screen. Bind policy evaluation to the screen used when the notch was shown instead of recomputing from pointer location.
Useful? React with 👍 / 👎.
| private var enableNotchFeatures: Bool { | ||
| SettingsStore.shared.overlayPosition == .top || self.supportsCommandNotchUI |
There was a problem hiding this comment.
Decouple bottom command sync from notch style
shouldSyncCommandConversationToNotch is gated by enableNotchFeatures, which returns false when overlayPosition is .bottom and compact mode disables command UI. This means a user can select Compact in top mode, switch to bottom overlay, and then lose command conversation syncing/expanded command output entirely because a hidden top-notch style flag is still applied. Bottom overlay command behavior should not depend on the top-notch presentation mode.
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: cdb0906cf6
ℹ️ 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".
| private var processingStatusText: String { | ||
| let t = self.contentState.transcriptionText.trimmingCharacters(in: .whitespacesAndNewlines) | ||
| return t.isEmpty ? self.processingLabel : t | ||
| guard Self.transientOverlayStatusTexts.contains(t) else { return self.processingLabel } |
There was a problem hiding this comment.
Accept current processing tokens in status matcher
This new strict guard only returns transcriptionText when it exactly matches transientOverlayStatusTexts, but ContentView now writes "Transcribing"/"Refining" (without ellipses). In bottom-overlay dictation flows, "Transcribing" is rejected here and the UI falls back to "Refining...", so users see the wrong processing phase text during final transcription. Include the non-ellipsis variants (or avoid exact-match filtering) so phase labels remain accurate.
Useful? React with 👍 / 👎.
| guard self.shouldSyncCommandNotchState else { | ||
| NotchContentState.shared.clearCommandOutput() | ||
| return |
There was a problem hiding this comment.
Preserve command history when notch sync is temporarily disabled
When sync is disabled by presentation policy, this branch clears all notch command output state. If the user later re-enables standard notch mode, there is no automatic settings-change resync path, so expanded command output remains empty (and cannot open from existing history) until a new message or chat reload occurs. This makes mode toggling appear to lose the current conversation in notch UI.
Useful? React with 👍 / 👎.
Description
UX changes for the notch presentation, plus a DynamicNotchKit pin update to pull in the faster notch opening animation.
Type of Change
Related Issues
Testing
swiftlint --strict --config .swiftlint.yml Sourcesswiftformat --config .swiftformat Sourcessh build_incremental.shNotes
Screenshots / Video
Add screenshots or Video recording of the app after you have made your changes