Skip to content

feat: native tab support#307

Open
acsandmann wants to merge 1 commit intomainfrom
feat/native-tabs
Open

feat: native tab support#307
acsandmann wants to merge 1 commit intomainfrom
feat/native-tabs

Conversation

@acsandmann
Copy link
Owner

No description provided.

@acsandmann acsandmann added the enhancement New feature or request label Mar 13, 2026
@acsandmann acsandmann linked an issue Mar 13, 2026 that may be closed by this pull request
Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 248130cd07

ℹ️ 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".

Comment on lines +519 to +522
let Some(old_active) =
self.pending_native_tab_replacement_for(pid, wid, pending.space, pending.frame)
else {
continue;

Choose a reason for hiding this comment

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

P1 Badge Clear stale pending appearances during reconciliation

reconcile_native_tabs_for_pid only removes a pending appearance when a replacement activation succeeds, so the continue path here leaves ordinary window appearances in pending_appearances indefinitely. Once that stale marker exists, visible_native_tab_replacement_peer_for can later treat a same-frame sibling as a native-tab replacement even when no real tab handoff is happening, which can suppress a normal managed window after a main-window change. Please clear/expire unmatched appearances once the wsid is resolved and no replacement candidate is found.

Useful? React with 👍 / 👎.

Comment on lines +234 to +236
if group.active == Some(wid) {
group.active = group.members.iter().copied().next();
}

Choose a reason for hiding this comment

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

P2 Badge Promote replacement member role when active tab is removed

When removing an active tab from a group that still has at least two members, this code updates group.active but does not update the promoted window's native_tab role in WindowState. That leaves the new active window marked Suppressed, and suppressed windows are filtered out of manageable/effective-manageable flows, so the surviving tab can drop out of management until another event rewrites roles. The active reassignment should also set the promoted member's role to Active.

Useful? React with 👍 / 👎.

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

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

native tabs don't work

1 participant