Skip to content

input: Notify Root only when focused registration changes - #1

Merged
Hmbown merged 2 commits into
codewhale/v0.6.4from
fix/focused-input-notification-20260930
Sep 30, 2026
Merged

Hmbown merged 2 commits into
codewhale/v0.6.4from
fix/focused-input-notification-20260930

Conversation

@Hmbown

@Hmbown Hmbown commented Sep 30, 2026 •

Copy link
Copy Markdown
Collaborator

Repeated input rendering currently notifies the Root even when the focused-input registration is unchanged. Shared app views across two Roots can therefore repaint indefinitely. Notify only on registration, handoff or clear, preserving a newer input when an older input blurs.

Keep the component dock facade complete by re-exporting the four existing base detached-dock types. Refresh only five local recipe lock versions to the 0.6.4 manifests, and apply the scoped format repairs reported by the source gate.

Validation:

  • Governed notification regression: 1 passed, 0 failed (idempotence, focus handoff and stale blur).
  • Governed dock export regression at733eea8f: 1 passed, 0 failed, 528 filtered.
  • Full cargo fmt and git diff --check pass.
  • Isolated recipe locked no-deps metadata passes. Full recipe compilation and hosted cross-platform CI remain separate, pending proofs.

Codex assisted this change. No source tag, release or main rewrite is included.

Input rendering used to notify its Root even when registration did not
change. Shared Workspace renders subscribe to Root notification state, so
two window Roots could enter a permanent paint/notify loop.

Notify on actual registration, handoff or unregister only. The focused
regression proves idempotent registrations, an old input preserving the
newly focused input, and a single clear on blur.

Local: governed cargo test -p gpui-component --lib
focused_input_registry_only_notifies_on_registration_changes: 1 passed,
0 failed, 528 filtered out. Scoped rustfmt and git diff --check pass.
Earlier fixture compile failed E0599 (&mut Root clone); corrected to
Context::entity before this passing run. Native integration and hosted CI
are separate pending proofs. Implemented with Codex assistance.
Hosted Linux tests exposed four public base dock exports missing from the
component facade. Re-export them without replacing the base authority.
The isolated recipe lock still carried local 0.6.1 package versions; refresh
only those five entries to match the 0.6.4 manifests. Apply rustfmt-only edits
to the two existing files reported by the full format gate.

Evidence: full cargo fmt and git diff --check pass; isolated recipe locked
no-deps metadata passes. Hosted before repair: component 562 pass/1 fail
(missing exports); recipe --locked refused the outdated lock. Focused native
export regression is queued through the shared governor, so this checkpoint
does not claim a passing compile or full hosted CI.
@Hmbown
Hmbown marked this pull request as ready for review September 30, 2026 12:29
Copilot AI balanced review requested due to automatic review settings September 30, 2026 12:29
@Hmbown
Hmbown merged commit 3e12231 into codewhale/v0.6.4 Sep 30, 2026
12 checks passed
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, add credits to your account and enable them for code reviews in your settings.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants