Skip to content

macOS settings publish only with their complete frame #3305

Description

@jsmestad

Type: Bug

Severity: Medium. Rejected frames can change native settings and cursor-blink behavior. This is grounded in the production dispatch and publication code; the audit did not run a native application reproduction.

What

macOS applies guiConfigState immediately even when it arrives inside an open frame. If a later command causes that frame to be rejected, Settings retains values from the rejected frame while other frontend state remains at the last successful frame.

Why

Frame rejection must preserve the last complete publication. An independently interactive Settings window still consumes authoritative configuration and must respect the transaction carrying it.

Acceptance Criteria

  1. ✅ Configuration received inside a frame stays invisible until that complete frame commits successfully. PR #3390
  2. ✅ Rejecting or abandoning the frame preserves prior settings and produces no cursor-blink callback from discarded configuration. PR #3390
  3. ✅ Successful commit applies staged settings once, including a framed response to a Settings query. Unframed configuration follows normal out-of-transaction rejection and recovery. PR #3390
  4. ✅ Repeated in-frame configuration updates obey the existing prepared-update replacement semantics and resource limits. PR #3390

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    area: elixirElixir editor logicarea: macos-guimacOS native GUI frontend (Swift/Metal)bugSomething isn't workingpriority: mediumMedium priorityseverity: mediumRecoverable correctness or performance degradation; provisional when runtime impact is unmeasured

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions