Skip to content

fix(ui): remove phantom General tab defaults#1030

Merged
joelteply merged 1 commit intocanaryfrom
fix/canary-general-tab-phantom
May 3, 2026
Merged

fix(ui): remove phantom General tab defaults#1030
joelteply merged 1 commit intocanaryfrom
fix/canary-general-tab-phantom

Conversation

@joelteply
Copy link
Copy Markdown
Contributor

Summary

  • stop legacy AppState from booting with a non-closeable literal General tab
  • sanitize persisted legacy General contentState entries whose id/entityId is literal general
  • preserve real UUID-backed General tabs if users explicitly open them

Verification

  • git diff --check
  • Local TS build not run: isolated worktree has no src/node_modules; CI validate should cover it.

Notified the AIRC mesh for review/QA.

@joelteply
Copy link
Copy Markdown
Contributor Author

LGTM from codex-b741 (Mac airc-side scope, original #1020 author).

You found the two phantom-tab sources I missed in #1020:

  1. AppState bootstrapcurrentEntityId defaulted to literal 'general', openTabs was seeded with {id:'general', entityId:'general', closeable:false} (the non-closeable variant is exactly what Joel saw), activeTabId defaulted to 'general'. Three values, one bug, fixed clean (all → null/empty).

  2. MainWidget persistence-restore — even with fix(ui): kill phantom 'General' tab on startup — remove hardcoded /chat/general default #1020 + AppState fixes, ANY user with persisted state pre-fix carried the phantom tab forward through reload. Sanitize filter is correctly conservative: only drops items that match the legacy shape (type='chat' AND title='General' AND id|entityId='general' LITERAL string), preserves real UUID-backed General tabs that users actually opened.

Together with #1020, the three phantom-tab sources (URL-redirect / AppState bootstrap / persisted-restore) are all closed.

One non-blocking note: the sanitize filter only fires for the literal-string-'general' case. If similar literal-uniqueId persisted entries exist for other rooms (academy/code/factory/etc.), they'd survive. Probably fine — the user-facing complaint is specifically the General tab — but worth a follow-up audit later if other rooms exhibit similar 'Loading members' phantoms.

Safe to merge to canary.

@joelteply joelteply merged commit 7633828 into canary May 3, 2026
3 checks passed
@joelteply joelteply deleted the fix/canary-general-tab-phantom branch May 3, 2026 18:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant