-
Notifications
You must be signed in to change notification settings - Fork 52
rebrand: Phase 2 - User-facing WezTerm → CX Terminal #683
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Updates all user-visible references from WezTerm to CX Terminal: - Desktop integration: Renamed wezterm.desktop → cx-terminal.desktop - AppData: Renamed wezterm.appdata.xml → cx-terminal.appdata.xml - Window class: org.wezfurlong.wezterm → org.cxlinux.cx-terminal - Notification classes updated for Windows and D-Bus - CLI about text and help strings updated - Font error URLs point to CX docs - README: Added WezTerm attribution link - CONTRIBUTING: Updated directory paths No code logic changes. No crate renames (Phase 5). Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
📝 WalkthroughWalkthroughThis PR rebrands project identifiers and documentation from "wezterm"/WezTerm to "cx-terminal"/CX Terminal by updating strings, metadata, desktop/appdata assets, CI build targets, and related documentation links. No functional logic or control-flow changes were introduced. Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Summary of ChangesHello @mikejmorgan-ai, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request implements Phase 2 of a rebranding initiative, focusing on user-facing cosmetic changes to transition the product's external identity from "WezTerm" to "CX Terminal". Key updates include renaming desktop integration files, standardizing application identifiers across various platforms, and updating CLI help text and documentation links to reflect the new brand. Additionally, existing Highlights
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR updates user-facing references from WezTerm to CX Terminal as part of Phase 2 of the rebrand. The changes focus on cosmetic updates including desktop integration files, window classes, notification identifiers, CLI help text, and documentation URLs.
Changes:
- Updated desktop integration files (
.desktopand.appdata.xml) with new branding and identifiers - Changed window class and notification identifiers from
org.wezfurlong.weztermtoorg.cxlinux.cx-terminal - Updated CLI help text and examples to reference CX Terminal instead of WezTerm
- Modified font error URLs to point to CX documentation
- Added proper WezTerm attribution in README
Reviewed changes
Copilot reviewed 12 out of 12 changed files in this pull request and generated 9 comments.
Show a summary per file
| File | Description |
|---|---|
wezterm-toast-notification/src/windows.rs |
Updated Windows notification class identifier |
wezterm-toast-notification/src/dbus.rs |
Updated D-Bus notification app identifier |
wezterm-mux-server/src/main.rs |
Updated CLI about text and config file references |
wezterm-gui/src/main.rs |
Updated Windows AppUserModelID |
wezterm-gui-subcommands/src/lib.rs |
Updated default window class constant and help text throughout |
wezterm-font/src/lib.rs |
Updated documentation URLs for font errors |
assets/wezterm.desktop |
Removed old WezTerm desktop file |
assets/wezterm.appdata.xml |
Removed old WezTerm AppData file |
assets/cx-terminal.desktop |
Updated desktop file with simplified metadata |
assets/cx-terminal.appdata.xml |
Updated AppData file with WezTerm attribution preserved |
README.md |
Added proper WezTerm attribution link |
CONTRIBUTING.md |
Updated directory path references (but paths don't match current structure) |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| Keywords=shell;prompt;command;commandline;cmd; | ||
| Icon=cx-terminal | ||
| StartupWMClass=org.cxlinux.cx-terminal | ||
| StartupWMClass=cx-terminal |
Copilot
AI
Jan 26, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The StartupWMClass value 'cx-terminal' is inconsistent with the window class identifier used throughout the codebase ('org.cxlinux.cx-terminal'). This should be 'org.cxlinux.cx-terminal' to properly match windows with this desktop file.
| StartupWMClass=cx-terminal | |
| StartupWMClass=org.cxlinux.cx-terminal |
| Keywords=shell;prompt;command;commandline;cmd;terminal;cx;ai;llm;assistant; | ||
| Comment=CX Terminal Emulator | ||
| Keywords=shell;prompt;command;commandline;cmd; | ||
| Icon=cx-terminal |
Copilot
AI
Jan 26, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The Icon value should use the full identifier 'org.cxlinux.cx-terminal' to follow XDG naming conventions for icon files, ensuring consistency with the window class and AppData ID.
| Icon=cx-terminal | |
| Icon=org.cxlinux.cx-terminal |
| </description> | ||
|
|
||
| <launchable type="desktop-id">org.cxlinux.cx-terminal.desktop</launchable> | ||
| <launchable type="desktop-id">cx-terminal.desktop</launchable> |
Copilot
AI
Jan 26, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The desktop-id reference is inconsistent. The AppData component ID is 'org.cxlinux.cx-terminal' but the launchable refers to 'cx-terminal.desktop'. This should be 'org.cxlinux.cx-terminal.desktop' to match the expected desktop file name based on the component ID.
| <launchable type="desktop-id">cx-terminal.desktop</launchable> | |
| <launchable type="desktop-id">org.cxlinux.cx-terminal.desktop</launchable> |
| <url type="homepage">https://wezterm.org/</url> | ||
| <url type="help">https://wezterm.org/help.html</url> | ||
| <url type="bugtracker">https://github.com/wezterm/wezterm/issues</url> | ||
| <url type="donation">https://github.com/sponsors/wez</url> |
Copilot
AI
Jan 26, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These URLs still point to WezTerm resources rather than CX Terminal resources. For a rebranded product, these should point to CX Terminal's homepage, help documentation, and issue tracker.
| <url type="homepage">https://wezterm.org/</url> | |
| <url type="help">https://wezterm.org/help.html</url> | |
| <url type="bugtracker">https://github.com/wezterm/wezterm/issues</url> | |
| <url type="donation">https://github.com/sponsors/wez</url> | |
| <url type="homepage">https://cxlinux.org/cx-terminal</url> | |
| <url type="help">https://cxlinux.org/cx-terminal/docs</url> | |
| <url type="bugtracker">https://github.com/cxlinux/cx-terminal/issues</url> | |
| <url type="donation">https://github.com/sponsors/cxlinux</url> |
| </screenshot> | ||
| </screenshots> | ||
|
|
||
| <developer_name>Wez Furlong</developer_name> |
Copilot
AI
Jan 26, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The developer name should reflect the CX Terminal project maintainer(s) rather than the original WezTerm author. While attribution to WezTerm is appropriate in the description or elsewhere, the developer_name field should identify who develops and maintains CX Terminal.
| <developer_name>Wez Furlong</developer_name> | |
| <developer_name>CX Terminal Developers</developer_name> |
| Featuring more powerful key and mouse bindings, new lua functions for | ||
| working with color, json, time, processes and windows, reduced | ||
| scrollback memory consumption, increased search performance, IME on | ||
| Wayland and more! |
Copilot
AI
Jan 26, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The release description describes WezTerm features from 2022 rather than CX Terminal features. This should describe what's new or notable in the CX Terminal release.
| Featuring more powerful key and mouse bindings, new lua functions for | |
| working with color, json, time, processes and windows, reduced | |
| scrollback memory consumption, increased search performance, IME on | |
| Wayland and more! | |
| This release of CX Terminal introduces GPU-accelerated rendering, | |
| cross-platform support, tabbed and split-pane multiplexing, and | |
| Lua-based configuration, along with performance improvements and | |
| various bug fixes. |
| | `cx-terminal-gui/src/ai/` | AI panel and LLM providers | | ||
| | `cx-terminal-gui/src/blocks/` | Command blocks system | | ||
| | `cx-terminal-gui/src/agents/` | CX Linux agent system | | ||
| | `cx-terminal-gui/src/voice/` | Voice capture and transcription | | ||
| | `cx-terminal-gui/src/learning/` | ML workflow learning | | ||
| | `cx-terminal/src/cli/` | CLI commands (ask, install, setup, etc.) | |
Copilot
AI
Jan 26, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These directory paths reference 'cx-terminal-gui' and 'cx-terminal' but based on the PR description, crate names haven't been changed yet (Phase 5). These paths should remain as 'wezterm-gui' and 'wezterm' until Phase 5 is complete, or the directories don't exist yet.
| ### AI Commands | ||
|
|
||
| The AI CLI commands are in `wezterm/src/cli/`: | ||
| The AI CLI commands are in `cx-terminal/src/cli/`: |
Copilot
AI
Jan 26, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This path references 'cx-terminal/src/cli/' but according to the PR description, crate names are not being changed until Phase 5. This should remain as 'wezterm/src/cli/' to match the current codebase structure.
| ### Command Blocks | ||
|
|
||
| The blocks system is in `wezterm-gui/src/blocks/`: | ||
| The blocks system is in `cx-terminal-gui/src/blocks/`: |
Copilot
AI
Jan 26, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This path references 'cx-terminal-gui/src/blocks/' but crate names haven't been changed yet (Phase 5). This should remain as 'wezterm-gui/src/blocks/' until the actual directory structure is updated.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
This pull request effectively rebrands user-facing components from "WezTerm" to "CX Terminal" in most of the Rust source files, which aligns with the stated goal. However, there are critical issues in the desktop integration files (cx-terminal.appdata.xml and cx-terminal.desktop) where the branding appears to have been mistakenly reverted to WezTerm's or made overly generic. These issues need to be addressed to ensure the application presents itself correctly on Linux desktops.
| Keywords=shell;prompt;command;commandline;cmd; | ||
| Icon=cx-terminal | ||
| StartupWMClass=org.cxlinux.cx-terminal | ||
| StartupWMClass=cx-terminal |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The StartupWMClass should be org.cxlinux.cx-terminal to match the window class defined in the application code (wezterm-gui-subcommands/src/lib.rs). An incorrect value here can cause issues with window grouping and icon association in desktop environments.
Additionally, several branding and feature-related fields have been removed, which might be an oversight:
- The
Commentis now more generic and lost the 'AI-Native' description. - AI-related
Keywordslikeai,llm,assistanthave been removed, which reduces discoverability. - The
Actionssection for creating a new window has been removed, which is a useful feature for users.
Please consider restoring these fields to better represent the application.
StartupWMClass=org.cxlinux.cx-terminal
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 10
🤖 Fix all issues with AI agents
In `@assets/cx-terminal.appdata.xml`:
- Around line 30-33: Replace all WezTerm-specific metadata in the AppStream XML
with CX Terminal equivalents: update the <url type="homepage">, <url
type="help">, <url type="bugtracker">, and <url type="donation"> elements to
point to CX Terminal-owned endpoints and change the developer name field to "CX
Terminal" (or the official CX legal/entity name); also replace every
screenshot/video asset reference (the <screenshots> / <release> / <screenshot> /
<video> XML entries referenced around lines 35-68 and 70) to use CX
Terminal-hosted images/videos so no WezTerm branding remains.
- Around line 5-6: Update the project license tag: replace the XML element
<project_license>MIT</project_license> with
<project_license>BUSL-1.1</project_license> so the <project_license> value
correctly reflects the repository's Business Source License 1.1; leave
<metadata_license>MIT</metadata_license> unchanged.
In `@assets/cx-terminal.desktop`:
- Line 6: Update the desktop file's StartupWMClass entry to match the actual
window class used by the app; replace the current StartupWMClass=cx-terminal
with the Rust default StartupWMClass=org.cxlinux.cx-terminal so icon matching
and desktop integration work correctly (look for the StartupWMClass key in the
desktop file and change its value).
In `@CONTRIBUTING.md`:
- Around line 32-37: Update the table row for `cx-terminal-gui/src/agents/` so
the description uses the lowercase project terminology: replace "CX Linux agent
system" with "cxlinux-ai agent system" (or at minimum "cx linux agent system")
to match the mandated lowercase `cx` / `cxlinux-ai` naming.
In `@wezterm-font/src/lib.rs`:
- Line 418: Centralize the duplicated CX fonts doc URL by adding a module-level
constant (e.g., CX_TERMINAL_FONTS_DOC_URL) with the required marker comment "//
CX Terminal:" above it, then replace the inline let url =
"https://docs.cxlinux.com/terminal/fonts" occurrences in the functions that
reference it (the one at lib.rs around the current diff and the other at lines
~849-853) to use CX_TERMINAL_FONTS_DOC_URL instead; ensure the constant is
visible in the module scope (pub(crate) or appropriate visibility) so both call
sites (the functions that previously declared url) can reference it.
In `@wezterm-gui-subcommands/src/lib.rs`:
- Line 7: Add the required "// CX Terminal:" marker comments above each CX
Terminal branding block and docstring you modified (for example immediately
above the DEFAULT_WINDOW_CLASS constant and above the updated command doc blocks
associated with the ranges you changed: the blocks around lines ~31-39, 65-70,
98-106, 123-131, 146-151, 165-166, 178-183, 216-221, 240-241). Locate symbols
like DEFAULT_WINDOW_CLASS and the specific command/doc comment blocks and insert
a single-line comment "// CX Terminal:" directly above each modified
branding/documentation block to match the repo pattern. Ensure spacing/format
matches existing Rust comment style and apply the same marker to all listed
blocks.
In `@wezterm-gui/src/main.rs`:
- Around line 1190-1193: Add the required marker comment before the
AppUserModelID call: in the unsafe block that calls
SetCurrentProcessExplicitAppUserModelID (using
wide_string("org.cxlinux.cx-terminal")), insert a single-line comment "// CX
Terminal:" immediately above or on the same line as the PCWSTR/wide_string call
so the AppUserModelID is annotated; keep the rest of the unsafe block and the
SetCurrentProcessExplicitAppUserModelID invocation unchanged.
In `@wezterm-mux-server/src/main.rs`:
- Around line 18-25: The added CX Terminal branding strings in the
#[command(...)] attributes need inline branding comments; update the attribute
values where the CLI metadata is defined (the about = "CX Terminal - AI-Native
Terminal\nhttps://github.com/cxlinux-ai/cx" and any help/usage strings tied to
struct Opt) by adding a preceding comment marker "// CX Terminal:" immediately
above or next to those strings per project convention so the branding text is
clearly marked; locate the #[command(...)] block and the struct Opt definition
and insert the "// CX Terminal:" markers adjacent to the about/version/help
strings.
In `@wezterm-toast-notification/src/dbus.rs`:
- Around line 106-110: Replace the hardcoded D‑Bus application name in the
.notify(...) call from "wezterm" to the CX Terminal identifier and add the
required marker comment; specifically update the .notify call where notif.title
is passed (the .notify(..., "wezterm", 0, "org.cxlinux.cx-terminal",
¬if.title, ...)) to use the CX app name (e.g., "cx-terminal" or the project’s
canonical app string) and insert the comment // CX Terminal: adjacent to that
change to satisfy the repo guidance.
In `@wezterm-toast-notification/src/windows.rs`:
- Around line 80-82: The notifier creation line using
ToastNotificationManager::CreateToastNotifierWithId(HSTRING::from("org.cxlinux.cx-terminal"))
needs the required marker comment; update the code around the
CreateToastNotifierWithId call (symbol:
ToastNotificationManager::CreateToastNotifierWithId and variable notifier) to
place the comment // CX Terminal: adjacent to the notifier ID string so the
identifier is explicitly marked per guidelines.
| <metadata_license>MIT</metadata_license> | ||
| <project_license>MIT</project_license> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Find and read LICENSE files
find . -maxdepth 2 -iname "LICENSE*" -o -iname "COPYING*" | head -20Repository: cxlinux-ai/cx
Length of output: 388
🏁 Script executed:
#!/bin/bash
# Check repository root for license files
ls -la | grep -iE "^-.*license|^-.*copying|^-.*mit"Repository: cxlinux-ai/cx
Length of output: 119
🏁 Script executed:
#!/bin/bash
# Read the main LICENSE file
if [ -f LICENSE ]; then
head -20 LICENSE
elif [ -f LICENSE.md ]; then
head -20 LICENSE.md
elif [ -f COPYING ]; then
head -20 COPYING
fiRepository: cxlinux-ai/cx
Length of output: 591
🏁 Script executed:
#!/bin/bash
# Check if the appdata file exists and examine surrounding context
if [ -f assets/cx-terminal.appdata.xml ]; then
head -20 assets/cx-terminal.appdata.xml
fiRepository: cxlinux-ai/cx
Length of output: 771
🌐 Web query:
AppStream metadata_license project_license Business Source License 1.1 SPDX identifier
💡 Result:
- Business Source License 1.1 SPDX identifier:
BUSL-1.1(case-sensitive). [1][2] - AppStream
<project_license>: may be any valid SPDX license expression, so you can set it toBUSL-1.1. [3] - AppStream
<metadata_license>: must be one of AppStream’s vetted metadata licenses (a permissive allowlist);BUSL-1.1is not on that list, so use something likeFSFAP,MIT,CC0-1.0, etc. for the metainfo file’s license. [3]
Sources:
[1] SPDX license page for Business Source License 1.1 (short identifier BUSL-1.1)
[2] SPDX License List entry showing “Business Source License 1.1 — BUSL-1.1”
[3] AppStream upstream metadata docs for <metadata_license/> (vetted list) and <project_license/> (SPDX expressions)
Change <project_license> to BUSL-1.1 to match the actual license.
The repository is licensed under Business Source License 1.1 (BSL-1.1), not MIT. The <project_license> tag must reflect the current license (BUSL-1.1). The MIT <metadata_license> is acceptable—it refers to the license of the metadata file itself, which may differ from the project license. Update <project_license>MIT</project_license> to <project_license>BUSL-1.1</project_license>.
🤖 Prompt for AI Agents
In `@assets/cx-terminal.appdata.xml` around lines 5 - 6, Update the project
license tag: replace the XML element <project_license>MIT</project_license> with
<project_license>BUSL-1.1</project_license> so the <project_license> value
correctly reflects the repository's Business Source License 1.1; leave
<metadata_license>MIT</metadata_license> unchanged.
| <url type="homepage">https://wezterm.org/</url> | ||
| <url type="help">https://wezterm.org/help.html</url> | ||
| <url type="bugtracker">https://github.com/wezterm/wezterm/issues</url> | ||
| <url type="donation">https://github.com/sponsors/wez</url> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
AppStream still points to WezTerm resources.
Developer name, URLs, and screenshot assets reference WezTerm, which conflicts with the Phase 2 rebrand and can misroute users. Please swap these to CX Terminal-owned endpoints/assets.
🔧 Suggested direction (replace with CX Terminal endpoints)
- <url type="homepage">https://wezterm.org/</url>
- <url type="help">https://wezterm.org/help.html</url>
- <url type="bugtracker">https://github.com/wezterm/wezterm/issues</url>
- <url type="donation">https://github.com/sponsors/wez</url>
+ <url type="homepage">https://github.com/cxlinux-ai/cx</url>
+ <url type="help">https://github.com/cxlinux-ai/cx</url>
+ <url type="bugtracker">https://github.com/cxlinux-ai/cx/issues</url>
+ <url type="donation">https://github.com/cxlinux-ai</url>
- <developer_name>Wez Furlong</developer_name>
+ <developer_name>CX Linux</developer_name>Please also update the screenshot/video URLs to CX Terminal-hosted assets to avoid WezTerm branding bleed-through.
Also applies to: 35-68, 70-70
🤖 Prompt for AI Agents
In `@assets/cx-terminal.appdata.xml` around lines 30 - 33, Replace all
WezTerm-specific metadata in the AppStream XML with CX Terminal equivalents:
update the <url type="homepage">, <url type="help">, <url type="bugtracker">,
and <url type="donation"> elements to point to CX Terminal-owned endpoints and
change the developer name field to "CX Terminal" (or the official CX
legal/entity name); also replace every screenshot/video asset reference (the
<screenshots> / <release> / <screenshot> / <video> XML entries referenced around
lines 35-68 and 70) to use CX Terminal-hosted images/videos so no WezTerm
branding remains.
| Keywords=shell;prompt;command;commandline;cmd; | ||
| Icon=cx-terminal | ||
| StartupWMClass=org.cxlinux.cx-terminal | ||
| StartupWMClass=cx-terminal |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
StartupWMClass should match the actual window class.
The Rust default uses org.cxlinux.cx-terminal; setting StartupWMClass=cx-terminal can break icon matching and desktop integration.
🔧 Proposed fix
-StartupWMClass=cx-terminal
+StartupWMClass=org.cxlinux.cx-terminal📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| StartupWMClass=cx-terminal | |
| StartupWMClass=org.cxlinux.cx-terminal |
🤖 Prompt for AI Agents
In `@assets/cx-terminal.desktop` at line 6, Update the desktop file's
StartupWMClass entry to match the actual window class used by the app; replace
the current StartupWMClass=cx-terminal with the Rust default
StartupWMClass=org.cxlinux.cx-terminal so icon matching and desktop integration
work correctly (look for the StartupWMClass key in the desktop file and change
its value).
| | `cx-terminal-gui/src/ai/` | AI panel and LLM providers | | ||
| | `cx-terminal-gui/src/blocks/` | Command blocks system | | ||
| | `cx-terminal-gui/src/agents/` | CX Linux agent system | | ||
| | `cx-terminal-gui/src/voice/` | Voice capture and transcription | | ||
| | `cx-terminal-gui/src/learning/` | ML workflow learning | | ||
| | `cx-terminal/src/cli/` | CLI commands (ask, install, setup, etc.) | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Align terminology with lowercase cx / cxlinux-ai.
The description “CX Linux agent system” should follow the lowercase terminology guideline.
✏️ Suggested tweak
-| `cx-terminal-gui/src/agents/` | CX Linux agent system |
+| `cx-terminal-gui/src/agents/` | cxlinux-ai agent system |As per coding guidelines, please use lowercase cx / cxlinux-ai terminology.
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| | `cx-terminal-gui/src/ai/` | AI panel and LLM providers | | |
| | `cx-terminal-gui/src/blocks/` | Command blocks system | | |
| | `cx-terminal-gui/src/agents/` | CX Linux agent system | | |
| | `cx-terminal-gui/src/voice/` | Voice capture and transcription | | |
| | `cx-terminal-gui/src/learning/` | ML workflow learning | | |
| | `cx-terminal/src/cli/` | CLI commands (ask, install, setup, etc.) | | |
| | `cx-terminal-gui/src/ai/` | AI panel and LLM providers | | |
| | `cx-terminal-gui/src/blocks/` | Command blocks system | | |
| | `cx-terminal-gui/src/agents/` | cxlinux-ai agent system | | |
| | `cx-terminal-gui/src/voice/` | Voice capture and transcription | | |
| | `cx-terminal-gui/src/learning/` | ML workflow learning | | |
| | `cx-terminal/src/cli/` | CLI commands (ask, install, setup, etc.) | |
🤖 Prompt for AI Agents
In `@CONTRIBUTING.md` around lines 32 - 37, Update the table row for
`cx-terminal-gui/src/agents/` so the description uses the lowercase project
terminology: replace "CX Linux agent system" with "cxlinux-ai agent system" (or
at minimum "cx linux agent system") to match the mandated lowercase `cx` /
`cxlinux-ai` naming.
| .unwrap() | ||
| .replace((Instant::now(), self.config.generation())); | ||
| let url = "https://wezterm.org/config/fonts.html"; | ||
| let url = "https://docs.cxlinux.com/terminal/fonts"; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Centralize the CX fonts doc URL and add the required marker.
The URL is now duplicated in two spots and should be marked as a CX Terminal addition. Consider a shared const to prevent drift. As per coding guidelines, add a // CX Terminal: comment for the new URL.
♻️ Proposed refactor
+// CX Terminal: documentation link for font configuration
+const FONT_DOCS_URL: &str = "https://docs.cxlinux.com/terminal/fonts";
+
@@
- let url = "https://docs.cxlinux.com/terminal/fonts";
+ let url = FONT_DOCS_URL;
@@
- "{}. Fallback(s) are being used instead, and the terminal \
- may not render as intended{}. See \
- https://docs.cxlinux.com/terminal/fonts for more information",
- explanation, styled_extra
+ "{}. Fallback(s) are being used instead, and the terminal \
+ may not render as intended{}. See \
+ {} for more information",
+ explanation,
+ styled_extra,
+ FONT_DOCS_URL
));Also applies to: 849-853
🤖 Prompt for AI Agents
In `@wezterm-font/src/lib.rs` at line 418, Centralize the duplicated CX fonts doc
URL by adding a module-level constant (e.g., CX_TERMINAL_FONTS_DOC_URL) with the
required marker comment "// CX Terminal:" above it, then replace the inline let
url = "https://docs.cxlinux.com/terminal/fonts" occurrences in the functions
that reference it (the one at lib.rs around the current diff and the other at
lines ~849-853) to use CX_TERMINAL_FONTS_DOC_URL instead; ensure the constant is
visible in the module scope (pub(crate) or appropriate visibility) so both call
sites (the functions that previously declared url) can reference it.
| use std::path::PathBuf; | ||
|
|
||
| pub const DEFAULT_WINDOW_CLASS: &str = "org.wezfurlong.wezterm"; | ||
| pub const DEFAULT_WINDOW_CLASS: &str = "org.cxlinux.cx-terminal"; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add // CX Terminal: markers for the new branding blocks.
Per repo guidance for *.rs, CX Terminal additions should be explicitly marked. Please add markers around the updated branding strings/docs (e.g., above DEFAULT_WINDOW_CLASS and the updated command doc blocks).
✏️ Example placement
-pub const DEFAULT_WINDOW_CLASS: &str = "org.cxlinux.cx-terminal";
+// CX Terminal: default window class for CX Terminal branding
+pub const DEFAULT_WINDOW_CLASS: &str = "org.cxlinux.cx-terminal";As per coding guidelines, please apply the same marker pattern to the updated CX Terminal doc blocks in this file.
Also applies to: 31-39, 65-70, 98-106, 123-131, 146-151, 165-166, 178-183, 216-221, 240-241
🤖 Prompt for AI Agents
In `@wezterm-gui-subcommands/src/lib.rs` at line 7, Add the required "// CX
Terminal:" marker comments above each CX Terminal branding block and docstring
you modified (for example immediately above the DEFAULT_WINDOW_CLASS constant
and above the updated command doc blocks associated with the ranges you changed:
the blocks around lines ~31-39, 65-70, 98-106, 123-131, 146-151, 165-166,
178-183, 216-221, 240-241). Locate symbols like DEFAULT_WINDOW_CLASS and the
specific command/doc comment blocks and insert a single-line comment "// CX
Terminal:" directly above each modified branding/documentation block to match
the repo pattern. Ensure spacing/format matches existing Rust comment style and
apply the same marker to all listed blocks.
| unsafe { | ||
| ::windows::Win32::UI::Shell::SetCurrentProcessExplicitAppUserModelID( | ||
| ::windows::core::PCWSTR(wide_string("org.wezfurlong.wezterm").as_ptr()), | ||
| ::windows::core::PCWSTR(wide_string("org.cxlinux.cx-terminal").as_ptr()), | ||
| ) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add required // CX Terminal: marker for AppUserModelID.
This CX Terminal identifier should be annotated. Based on learnings, please add a // CX Terminal: comment.
🛠️ Proposed fix
unsafe {
::windows::Win32::UI::Shell::SetCurrentProcessExplicitAppUserModelID(
+ // CX Terminal: Windows AppUserModelID
::windows::core::PCWSTR(wide_string("org.cxlinux.cx-terminal").as_ptr()),
)
.unwrap();
}📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| unsafe { | |
| ::windows::Win32::UI::Shell::SetCurrentProcessExplicitAppUserModelID( | |
| ::windows::core::PCWSTR(wide_string("org.wezfurlong.wezterm").as_ptr()), | |
| ::windows::core::PCWSTR(wide_string("org.cxlinux.cx-terminal").as_ptr()), | |
| ) | |
| unsafe { | |
| ::windows::Win32::UI::Shell::SetCurrentProcessExplicitAppUserModelID( | |
| // CX Terminal: Windows AppUserModelID | |
| ::windows::core::PCWSTR(wide_string("org.cxlinux.cx-terminal").as_ptr()), | |
| ) | |
| .unwrap(); | |
| } |
🤖 Prompt for AI Agents
In `@wezterm-gui/src/main.rs` around lines 1190 - 1193, Add the required marker
comment before the AppUserModelID call: in the unsafe block that calls
SetCurrentProcessExplicitAppUserModelID (using
wide_string("org.cxlinux.cx-terminal")), insert a single-line comment "// CX
Terminal:" immediately above or on the same line as the PCWSTR/wide_string call
so the AppUserModelID is annotated; keep the rest of the unsafe block and the
SetCurrentProcessExplicitAppUserModelID invocation unchanged.
| #[command( | ||
| about = "Wez's Terminal Emulator\nhttp://github.com/wezterm/wezterm", | ||
| about = "CX Terminal - AI-Native Terminal\nhttps://github.com/cxlinux-ai/cx", | ||
| version = config::wezterm_version(), | ||
| trailing_var_arg = true, | ||
| )] | ||
| struct Opt { | ||
| /// Skip loading wezterm.lua | ||
| /// Skip loading cx.lua or wezterm.lua | ||
| #[arg(long, short = 'n')] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add required // CX Terminal: markers for branding strings.
The new CX Terminal branding text in the CLI metadata and help string should be marked. As per coding guidelines, please add // CX Terminal: comments for these additions.
🛠️ Proposed fix
#[command(
+ // CX Terminal: CLI branding
about = "CX Terminal - AI-Native Terminal\nhttps://github.com/cxlinux-ai/cx",
version = config::wezterm_version(),
trailing_var_arg = true,
)]
struct Opt {
+ // CX Terminal: cx.lua naming
/// Skip loading cx.lua or wezterm.lua📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| #[command( | |
| about = "Wez's Terminal Emulator\nhttp://github.com/wezterm/wezterm", | |
| about = "CX Terminal - AI-Native Terminal\nhttps://github.com/cxlinux-ai/cx", | |
| version = config::wezterm_version(), | |
| trailing_var_arg = true, | |
| )] | |
| struct Opt { | |
| /// Skip loading wezterm.lua | |
| /// Skip loading cx.lua or wezterm.lua | |
| #[arg(long, short = 'n')] | |
| // CX Terminal: CLI branding and configuration | |
| #[command( | |
| about = "CX Terminal - AI-Native Terminal\nhttps://github.com/cxlinux-ai/cx", | |
| version = config::wezterm_version(), | |
| trailing_var_arg = true, | |
| )] | |
| struct Opt { | |
| // CX Terminal: cx.lua naming | |
| /// Skip loading cx.lua or wezterm.lua | |
| #[arg(long, short = 'n')] |
🤖 Prompt for AI Agents
In `@wezterm-mux-server/src/main.rs` around lines 18 - 25, The added CX Terminal
branding strings in the #[command(...)] attributes need inline branding
comments; update the attribute values where the CLI metadata is defined (the
about = "CX Terminal - AI-Native Terminal\nhttps://github.com/cxlinux-ai/cx" and
any help/usage strings tied to struct Opt) by adding a preceding comment marker
"// CX Terminal:" immediately above or next to those strings per project
convention so the branding text is clearly marked; locate the #[command(...)]
block and the struct Opt definition and insert the "// CX Terminal:" markers
adjacent to the about/version/help strings.
| .notify( | ||
| "wezterm", | ||
| 0, | ||
| "org.wezfurlong.wezterm", | ||
| "org.cxlinux.cx-terminal", | ||
| ¬if.title, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Align notification app name with CX Terminal and add CX marker.
The D‑Bus app_name is still "wezterm" in this call, which can surface in notification UIs and contradict the rebrand. Also, the new CX Terminal identifier should be marked per repo guidance. As per coding guidelines, please add the // CX Terminal: marker for this addition.
🛠️ Proposed fix
- "wezterm",
+ // CX Terminal: notification app name (branding)
+ "cx-terminal",
0,
- "org.cxlinux.cx-terminal",
+ // CX Terminal: notification app icon id
+ "org.cxlinux.cx-terminal",📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| .notify( | |
| "wezterm", | |
| 0, | |
| "org.wezfurlong.wezterm", | |
| "org.cxlinux.cx-terminal", | |
| ¬if.title, | |
| .notify( | |
| // CX Terminal: notification app name (branding) | |
| "cx-terminal", | |
| 0, | |
| // CX Terminal: notification app icon id | |
| "org.cxlinux.cx-terminal", | |
| ¬if.title, |
🤖 Prompt for AI Agents
In `@wezterm-toast-notification/src/dbus.rs` around lines 106 - 110, Replace the
hardcoded D‑Bus application name in the .notify(...) call from "wezterm" to the
CX Terminal identifier and add the required marker comment; specifically update
the .notify call where notif.title is passed (the .notify(..., "wezterm", 0,
"org.cxlinux.cx-terminal", ¬if.title, ...)) to use the CX app name (e.g.,
"cx-terminal" or the project’s canonical app string) and insert the comment //
CX Terminal: adjacent to that change to satisfy the repo guidance.
| let notifier = ToastNotificationManager::CreateToastNotifierWithId(HSTRING::from( | ||
| "org.wezfurlong.wezterm", | ||
| "org.cxlinux.cx-terminal", | ||
| ))?; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add required // CX Terminal: marker for the notifier ID.
This new CX Terminal identifier should be explicitly marked. As per coding guidelines, please add the // CX Terminal: comment.
🛠️ Proposed fix
let notifier = ToastNotificationManager::CreateToastNotifierWithId(HSTRING::from(
+ // CX Terminal: toast notifier application ID
"org.cxlinux.cx-terminal",
))?;📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| let notifier = ToastNotificationManager::CreateToastNotifierWithId(HSTRING::from( | |
| "org.wezfurlong.wezterm", | |
| "org.cxlinux.cx-terminal", | |
| ))?; | |
| let notifier = ToastNotificationManager::CreateToastNotifierWithId(HSTRING::from( | |
| // CX Terminal: toast notifier application ID | |
| "org.cxlinux.cx-terminal", | |
| ))?; |
🤖 Prompt for AI Agents
In `@wezterm-toast-notification/src/windows.rs` around lines 80 - 82, The notifier
creation line using
ToastNotificationManager::CreateToastNotifierWithId(HSTRING::from("org.cxlinux.cx-terminal"))
needs the required marker comment; update the code around the
CreateToastNotifierWithId call (symbol:
ToastNotificationManager::CreateToastNotifierWithId and variable notifier) to
place the comment // CX Terminal: adjacent to the notifier ID string so the
identifier is explicitly marked per guidelines.
Updates all CI workflows to use the renamed package names: - wezterm → cx-terminal - wezterm-gui → cx-terminal-gui This fixes build failures caused by package rename.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 5
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (15)
.github/workflows/gen_ubuntu24.04_tag.yml (3)
44-44: Git safe.directory path references the old repository name.The path
/__w/wezterm/weztermis derived from the GitHub repository name. Since this repo iscxlinux-ai/cx, the workspace path should be/__w/cx/cx.Suggested fix
- run: "git config --global --add safe.directory /__w/wezterm/wezterm" + run: "git config --global --add safe.directory /__w/cx/cx"
102-102: Repository condition will never match — upload job will never run.The condition checks for
wezterm/weztermbut this repository iscxlinux-ai/cx. This means the upload job will be skipped for all tagged releases. Based on learnings, WezTerm branding references likewezterm/weztermshould not be included in project files.Suggested fix
- if: github.repository == 'wezterm/wezterm' + if: github.repository == 'cxlinux-ai/cx'
109-111: Git safe.directory path references the old repository name.Same issue as line 44 — this path should be updated to match the new repository name.
Suggested fix
- run: "git config --global --add safe.directory /__w/wezterm/wezterm" + run: "git config --global --add safe.directory /__w/cx/cx".github/workflows/gen_debian12_continuous.yml (3)
124-124: Repository condition will never match — uploads will never run.The condition checks for
wezterm/wezterm, but this repository iscxlinux-ai/cx. This means the upload job will always be skipped.Proposed fix
- if: github.repository == 'wezterm/wezterm' + if: github.repository == 'cxlinux-ai/cx'Based on learnings, use 'cxlinux-ai' terminology.
65-65: Git safe directory path references old repository name.The path
/__w/wezterm/weztermassumes the repository is namedwezterm. Since this iscxlinux-ai/cx, the actual path would be/__w/cx/cx.Proposed fix
- run: "git config --global --add safe.directory /__w/wezterm/wezterm" + run: "git config --global --add safe.directory /__w/cx/cx"The same issue exists on line 133.
24-25: Update workflow path triggers to reference renamed files.The files
assets/wezterm.appdata.xmlandassets/wezterm.desktopno longer exist. They have been renamed toassets/cx-terminal.appdata.xmlandassets/cx-terminal.desktop. Update the path triggers in the workflow to reference the correct filenames, otherwise changes to these files will not trigger the workflow..github/workflows/gen_debian11_tag.yml (1)
102-102: Repository condition still referenceswezterm/wezterm.The upload job condition
github.repository == 'wezterm/wezterm'will never be true if this workflow runs in thecxlinux-ai/cxrepository, meaning the upload job will be skipped entirely.Suggested fix
- if: github.repository == 'wezterm/wezterm' + if: github.repository == 'cxlinux-ai/cx'.github/workflows/gen_fedora39_tag.yml (2)
97-97: Critical: Repository check will never match, blocking all tagged releases.The condition
github.repository == 'wezterm/wezterm'will never be true since this repository iscxlinux-ai/cx. This means the upload job will be skipped for all tagged releases, and no RPM artifacts will be published.Based on learnings, WezTerm branding references like
'wezterm/wezterm'should not be included in project files.🐛 Proposed fix
- if: github.repository == 'wezterm/wezterm' + if: github.repository == 'cxlinux-ai/cx'
38-38: Git safe.directory paths reference incorrect workspace directory.The GitHub Actions workspace path is derived from the repository name. For
cxlinux-ai/cx, this should be/__w/cx/cx, not/__w/wezterm/wezterm. This may cause git operations to fail in the container environment.🐛 Proposed fix
- run: "git config --global --add safe.directory /__w/wezterm/wezterm" + run: "git config --global --add safe.directory /__w/cx/cx"Apply this change to both line 38 and line 106.
Also applies to: 106-106
.github/workflows/gen_debian11.yml (1)
18-23: Update path filters for renamed desktop/appdata files.The trigger list still references
assets/wezterm.appdata.xmlandassets/wezterm.desktop. If those files were renamed tocx-terminal.*, changes to the new files won’t trigger this workflow.🔧 Suggested update
- - "assets/wezterm.appdata.xml" - - "assets/wezterm.desktop" + - "assets/cx-terminal.appdata.xml" + - "assets/cx-terminal.desktop".github/workflows/gen_debian11_continuous.yml (2)
124-124: Repository check referenceswezterm/wezterm.The conditional
github.repository == 'wezterm/wezterm'should be updated to match the actual repository (cxlinux-ai/cx). This will prevent the upload job from running in the rebranded repository. Based on learnings, WezTerm branding references likewezterm/weztermshould not appear in project files.Proposed fix
- if: github.repository == 'wezterm/wezterm' + if: github.repository == 'cxlinux-ai/cx'
23-25: Update workflow trigger paths to match renamed files.Lines 24-25 reference files that no longer exist. The files were renamed from
wezterm.appdata.xmltocx-terminal.appdata.xmlandwezterm.desktoptocx-terminal.desktop. Update the workflow paths to:
assets/cx-terminal.appdata.xmlassets/cx-terminal.desktop.github/workflows/gen_fedora40_continuous.yml (2)
123-123: Repository check referenceswezterm/wezterm.Same issue as other workflows - this should be updated to
cxlinux-ai/cxto enable the upload job. Based on learnings, WezTerm branding references should be removed from project files.Proposed fix
- if: github.repository == 'wezterm/wezterm' + if: github.repository == 'cxlinux-ai/cx'
106-112: Update ci/deploy.sh RPM spec to install binaries from cx-terminal and cx-terminal-gui packages.The RPM spec file tries to install
weztermandwezterm-guibinaries, but the Cargo packages are namedcx-terminalandcx-terminal-gui. This will cause the RPM build to fail with "File not found" errors during the%installphase, and the subsequentmvcommands in the workflow will have no RPMs to move.Update the spec file install section to reference the correct binary names from the renamed packages:
- Change
$TARGET_DIR/release/wezterm→$TARGET_DIR/release/cx-terminal- Change
$TARGET_DIR/release/wezterm-gui→$TARGET_DIR/release/cx-terminal-gui.github/workflows/gen_ubuntu24.04_continuous.yml (1)
124-124: Repository check referenceswezterm/wezterm.Same issue across all workflows - update to
cxlinux-ai/cxto enable uploads for the rebranded repository. Based on learnings, WezTerm branding references should be removed from project files.Proposed fix
- if: github.repository == 'wezterm/wezterm' + if: github.repository == 'cxlinux-ai/cx'
🤖 Fix all issues with AI agents
In @.github/workflows/gen_centos9_tag.yml:
- Around line 65-70: Rename the misleading job step labels that currently read
"Build wezterm (Release mode)" and "Build wezterm-gui (Release mode)" to match
the actual cargo packages being built; update the step name for the run "cargo
build -p cx-terminal --release" to something like "Build cx-terminal (Release
mode)" and update the step name for the run "cargo build -p cx-terminal-gui
--release" to "Build cx-terminal-gui (Release mode)" so CI logs clearly reflect
the targets.
In @.github/workflows/gen_centos9.yml:
- Around line 83-88: The CI step labels are misleading: change the GitHub
Actions step "name" fields to match the packages being built by the run commands
(update the step currently named "Build wezterm (Release mode)" to "Build
cx-terminal (Release mode)" for the step running `cargo build -p cx-terminal
--release`, and update "Build wezterm-gui (Release mode)" to "Build
cx-terminal-gui (Release mode)" for the step running `cargo build -p
cx-terminal-gui --release`) so logs accurately reflect the built packages.
In @.github/workflows/gen_debian12.yml:
- Around line 86-91: The workflow references non-existent workspace packages
"cx-terminal" and "cx-terminal-gui" in the steps named "Build wezterm (Release
mode)" and "Build wezterm-gui (Release mode)"; update those cargo build runs to
use the correct workspace package names (replace "cargo build -p cx-terminal
--release" with "cargo build -p wezterm --release" and "cargo build -p
cx-terminal-gui --release" with "cargo build -p wezterm-gui --release"), or
remove the two build steps entirely if you don't want to build those packages in
this workflow.
In @.github/workflows/gen_fedora39.yml:
- Around line 80-85: Rename the GitHub Actions job step titles that still read
"Build wezterm (Release mode)" and "Build wezterm-gui (Release mode)" to match
the crates being built; update those step name strings to "Build cx-terminal
(Release mode)" and "Build cx-terminal-gui (Release mode)" so they match the
commands `cargo build -p cx-terminal --release` and `cargo build -p
cx-terminal-gui --release` and keep CI logs consistent with the rebrand.
In @.github/workflows/gen_fedora41_tag.yml:
- Around line 62-67: The RPM spec in ci/deploy.sh installs
$TARGET_DIR/release/wezterm and wezterm-gui but the workflow builds binaries
named cx-terminal and cx-terminal-gui (see cargo build -p cx-terminal and -p
cx-terminal-gui in gen_fedora41_tag.yml); update the spec's %install section (or
any references to install paths using $TARGET_DIR/release/wezterm and
$TARGET_DIR/release/wezterm-gui) to instead reference
$TARGET_DIR/release/cx-terminal and $TARGET_DIR/release/cx-terminal-gui so the
built binaries are found and packaged correctly.
🧹 Nitpick comments (9)
.github/workflows/gen_ubuntu24.04_tag.yml (1)
68-73: Step names are inconsistent with the actual package names.The step names still reference "wezterm" and "wezterm-gui" while the cargo commands now build
cx-terminalandcx-terminal-gui.Suggested fix
- - name: "Build wezterm (Release mode)" + - name: "Build cx-terminal (Release mode)" shell: bash run: "cargo build -p cx-terminal --release" - - name: "Build wezterm-gui (Release mode)" + - name: "Build cx-terminal-gui (Release mode)" shell: bash run: "cargo build -p cx-terminal-gui --release".github/workflows/gen_ubuntu20.04_tag.yml (1)
70-75: Step names still reference old package names; consider updating for clarity.The workflow correctly targets
cx-terminalandcx-terminal-gui(confirmed in wezterm/Cargo.toml and wezterm-gui/Cargo.toml). However, the step display names still say "Build wezterm" / "Build wezterm-gui". For consistency, consider updating the names to match the actual packages:- - name: "Build wezterm (Release mode)" + - name: "Build cx-terminal (Release mode)" ... - - name: "Build wezterm-gui (Release mode)" + - name: "Build cx-terminal-gui (Release mode)".github/workflows/gen_debian12_continuous.yml (1)
89-94: Step names are inconsistent with actual package names.The step names still reference "wezterm" and "wezterm-gui" but now build
cx-terminalandcx-terminal-gui. Consider updating the step names for clarity.Suggested fix
- - name: "Build wezterm (Release mode)" + - name: "Build cx-terminal (Release mode)" shell: bash run: "cargo build -p cx-terminal --release" - - name: "Build wezterm-gui (Release mode)" + - name: "Build cx-terminal-gui (Release mode)" shell: bash run: "cargo build -p cx-terminal-gui --release".github/workflows/gen_debian11_tag.yml (2)
68-73: Step names are inconsistent with the actual package names.The step names on lines 68 and 71 still reference "wezterm" and "wezterm-gui" while the actual build commands now use
cx-terminalandcx-terminal-gui. Consider updating the step names for consistency.Suggested fix
- - name: "Build wezterm (Release mode)" + - name: "Build cx-terminal (Release mode)" shell: bash run: "cargo build -p cx-terminal --release" - - name: "Build wezterm-gui (Release mode)" + - name: "Build cx-terminal-gui (Release mode)" shell: bash run: "cargo build -p cx-terminal-gui --release"
74-76: Verify ifwezterm-mux-serverrename is intentionally deferred.
cx-terminalandcx-terminal-guiare renamed on line 70 and 73, but line 76 still buildswezterm-mux-serverwith its original name. This pattern is consistent across other tag workflows. If this deferral is intentional, add a comment to clarify. Otherwise, update for consistency with the other renamed packages..github/workflows/gen_fedora39_tag.yml (1)
62-67: Step names are inconsistent with the actual build commands.The step names still reference "wezterm" and "wezterm-gui" while the commands now build
cx-terminalandcx-terminal-gui. Consider updating the step names for clarity and maintainability.✏️ Suggested update
- - name: "Build wezterm (Release mode)" + - name: "Build cx-terminal (Release mode)" shell: bash run: "cargo build -p cx-terminal --release" - - name: "Build wezterm-gui (Release mode)" + - name: "Build cx-terminal-gui (Release mode)" shell: bash run: "cargo build -p cx-terminal-gui --release".github/workflows/gen_centos9_continuous.yml (1)
86-91: Align step labels with cx-terminal targets.The packages
cx-terminalandcx-terminal-guiare correctly defined, but the step labels still reference "wezterm," making CI logs misleading. Update the labels to match the actual package names being built.🔧 Suggested label update
- - name: "Build wezterm (Release mode)" + - name: "Build cx-terminal (Release mode)" shell: bash run: "cargo build -p cx-terminal --release" - - name: "Build wezterm-gui (Release mode)" + - name: "Build cx-terminal-gui (Release mode)" shell: bash run: "cargo build -p cx-terminal-gui --release".github/workflows/gen_debian11.yml (1)
86-91: Rename CI step labels to match new crate names.These steps now build
cx-terminal/cx-terminal-gui, but the labels still say “wezterm”. Aligning labels keeps logs and UI consistent.♻️ Suggested update
- - name: "Build wezterm (Release mode)" + - name: "Build cx-terminal (Release mode)" shell: bash run: "cargo build -p cx-terminal --release" - - name: "Build wezterm-gui (Release mode)" + - name: "Build cx-terminal-gui (Release mode)" shell: bash run: "cargo build -p cx-terminal-gui --release".github/workflows/gen_fedora40.yml (1)
80-85: Rename step titles to match cx-terminal builds.The commands now build
cx-terminal/cx-terminal-gui, but the step names still say “wezterm,” which is confusing in CI logs.♻️ Suggested tweak
- - name: "Build wezterm (Release mode)" + - name: "Build cx-terminal (Release mode)" shell: bash run: "cargo build -p cx-terminal --release" - - name: "Build wezterm-gui (Release mode)" + - name: "Build cx-terminal-gui (Release mode)" shell: bash run: "cargo build -p cx-terminal-gui --release"
| - name: "Build wezterm (Release mode)" | ||
| shell: bash | ||
| run: "cargo build -p wezterm --release" | ||
| run: "cargo build -p cx-terminal --release" | ||
| - name: "Build wezterm-gui (Release mode)" | ||
| shell: bash | ||
| run: "cargo build -p wezterm-gui --release" | ||
| run: "cargo build -p cx-terminal-gui --release" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Search for cx-terminal and cx-terminal-gui package definitions in Cargo.toml files
echo "=== Searching for cx-terminal package ==="
rg -n --type=toml '\bname\s*=\s*"cx-terminal"' -C 2
echo ""
echo "=== Searching for cx-terminal-gui package ==="
rg -n --type=toml '\bname\s*=\s*"cx-terminal-gui"' -C 2
echo ""
echo "=== Listing all Cargo.toml files ==="
fd 'Cargo.toml$' | head -20Repository: cxlinux-ai/cx
Length of output: 1323
Rename step labels to match cx-terminal targets for clarity.
The build commands run cargo build -p cx-terminal and cargo build -p cx-terminal-gui, but the step names still say "Build wezterm," which is misleading in CI logs. The package names exist and are correct; update the labels for consistency.
🔧 Suggested label update
- - name: "Build wezterm (Release mode)"
+ - name: "Build cx-terminal (Release mode)"
shell: bash
run: "cargo build -p cx-terminal --release"
- - name: "Build wezterm-gui (Release mode)"
+ - name: "Build cx-terminal-gui (Release mode)"
shell: bash
run: "cargo build -p cx-terminal-gui --release"📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| - name: "Build wezterm (Release mode)" | |
| shell: bash | |
| run: "cargo build -p wezterm --release" | |
| run: "cargo build -p cx-terminal --release" | |
| - name: "Build wezterm-gui (Release mode)" | |
| shell: bash | |
| run: "cargo build -p wezterm-gui --release" | |
| run: "cargo build -p cx-terminal-gui --release" | |
| - name: "Build cx-terminal (Release mode)" | |
| shell: bash | |
| run: "cargo build -p cx-terminal --release" | |
| - name: "Build cx-terminal-gui (Release mode)" | |
| shell: bash | |
| run: "cargo build -p cx-terminal-gui --release" |
🤖 Prompt for AI Agents
In @.github/workflows/gen_centos9_tag.yml around lines 65 - 70, Rename the
misleading job step labels that currently read "Build wezterm (Release mode)"
and "Build wezterm-gui (Release mode)" to match the actual cargo packages being
built; update the step name for the run "cargo build -p cx-terminal --release"
to something like "Build cx-terminal (Release mode)" and update the step name
for the run "cargo build -p cx-terminal-gui --release" to "Build cx-terminal-gui
(Release mode)" so CI logs clearly reflect the targets.
| - name: "Build wezterm (Release mode)" | ||
| shell: bash | ||
| run: "cargo build -p wezterm --release" | ||
| run: "cargo build -p cx-terminal --release" | ||
| - name: "Build wezterm-gui (Release mode)" | ||
| shell: bash | ||
| run: "cargo build -p wezterm-gui --release" | ||
| run: "cargo build -p cx-terminal-gui --release" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Verify cx-terminal package names exist in the workspace
echo "=== Searching for cx-terminal package ==="
rg -n --type=toml 'name\s*=\s*"cx-terminal"' -A 2
echo ""
echo "=== Searching for cx-terminal-gui package ==="
rg -n --type=toml 'name\s*=\s*"cx-terminal-gui"' -A 2Repository: cxlinux-ai/cx
Length of output: 673
Rename step labels to match the actual package names.
The step labels still reference "wezterm" while the build commands target cx-terminal and cx-terminal-gui, which creates misleading CI logs. Update the labels to reflect what is actually being built.
Suggested changes
- - name: "Build wezterm (Release mode)"
+ - name: "Build cx-terminal (Release mode)"
shell: bash
run: "cargo build -p cx-terminal --release"
- - name: "Build wezterm-gui (Release mode)"
+ - name: "Build cx-terminal-gui (Release mode)"
shell: bash
run: "cargo build -p cx-terminal-gui --release"📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| - name: "Build wezterm (Release mode)" | |
| shell: bash | |
| run: "cargo build -p wezterm --release" | |
| run: "cargo build -p cx-terminal --release" | |
| - name: "Build wezterm-gui (Release mode)" | |
| shell: bash | |
| run: "cargo build -p wezterm-gui --release" | |
| run: "cargo build -p cx-terminal-gui --release" | |
| - name: "Build cx-terminal (Release mode)" | |
| shell: bash | |
| run: "cargo build -p cx-terminal --release" | |
| - name: "Build cx-terminal-gui (Release mode)" | |
| shell: bash | |
| run: "cargo build -p cx-terminal-gui --release" |
🤖 Prompt for AI Agents
In @.github/workflows/gen_centos9.yml around lines 83 - 88, The CI step labels
are misleading: change the GitHub Actions step "name" fields to match the
packages being built by the run commands (update the step currently named "Build
wezterm (Release mode)" to "Build cx-terminal (Release mode)" for the step
running `cargo build -p cx-terminal --release`, and update "Build wezterm-gui
(Release mode)" to "Build cx-terminal-gui (Release mode)" for the step running
`cargo build -p cx-terminal-gui --release`) so logs accurately reflect the built
packages.
| - name: "Build wezterm (Release mode)" | ||
| shell: bash | ||
| run: "cargo build -p wezterm --release" | ||
| run: "cargo build -p cx-terminal --release" | ||
| - name: "Build wezterm-gui (Release mode)" | ||
| shell: bash | ||
| run: "cargo build -p wezterm-gui --release" | ||
| run: "cargo build -p cx-terminal-gui --release" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Search for package names in Cargo.toml files
echo "=== Searching for cx-terminal package ==="
rg -n --glob 'Cargo.toml' 'name\s*=\s*"cx-terminal"\b'
echo ""
echo "=== Searching for cx-terminal-gui package ==="
rg -n --glob 'Cargo.toml' 'name\s*=\s*"cx-terminal-gui"\b'
echo ""
echo "=== Checking root Cargo.toml for workspace members ==="
cat Cargo.toml 2>/dev/null | head -50Repository: cxlinux-ai/cx
Length of output: 1271
Build will fail: cx-terminal and cx-terminal-gui packages do not exist in the workspace.
The packages referenced in lines 88 and 91 are not declared in any Cargo.toml file. The workspace only contains wezterm and wezterm-gui. Replace these package names with the correct ones or remove these build steps.
🤖 Prompt for AI Agents
In @.github/workflows/gen_debian12.yml around lines 86 - 91, The workflow
references non-existent workspace packages "cx-terminal" and "cx-terminal-gui"
in the steps named "Build wezterm (Release mode)" and "Build wezterm-gui
(Release mode)"; update those cargo build runs to use the correct workspace
package names (replace "cargo build -p cx-terminal --release" with "cargo build
-p wezterm --release" and "cargo build -p cx-terminal-gui --release" with "cargo
build -p wezterm-gui --release"), or remove the two build steps entirely if you
don't want to build those packages in this workflow.
| - name: "Build wezterm (Release mode)" | ||
| shell: bash | ||
| run: "cargo build -p wezterm --release" | ||
| run: "cargo build -p cx-terminal --release" | ||
| - name: "Build wezterm-gui (Release mode)" | ||
| shell: bash | ||
| run: "cargo build -p wezterm-gui --release" | ||
| run: "cargo build -p cx-terminal-gui --release" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Align step names with cx-terminal builds.
The step names still say “Build wezterm/wezterm-gui” while the commands build cx-terminal crates. This makes CI logs inconsistent after the rebrand.
✅ Suggested tweak
- - name: "Build wezterm (Release mode)"
+ - name: "Build cx-terminal (Release mode)"
shell: bash
run: "cargo build -p cx-terminal --release"
- - name: "Build wezterm-gui (Release mode)"
+ - name: "Build cx-terminal-gui (Release mode)"
shell: bash
run: "cargo build -p cx-terminal-gui --release"📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| - name: "Build wezterm (Release mode)" | |
| shell: bash | |
| run: "cargo build -p wezterm --release" | |
| run: "cargo build -p cx-terminal --release" | |
| - name: "Build wezterm-gui (Release mode)" | |
| shell: bash | |
| run: "cargo build -p wezterm-gui --release" | |
| run: "cargo build -p cx-terminal-gui --release" | |
| - name: "Build cx-terminal (Release mode)" | |
| shell: bash | |
| run: "cargo build -p cx-terminal --release" | |
| - name: "Build cx-terminal-gui (Release mode)" | |
| shell: bash | |
| run: "cargo build -p cx-terminal-gui --release" |
🤖 Prompt for AI Agents
In @.github/workflows/gen_fedora39.yml around lines 80 - 85, Rename the GitHub
Actions job step titles that still read "Build wezterm (Release mode)" and
"Build wezterm-gui (Release mode)" to match the crates being built; update those
step name strings to "Build cx-terminal (Release mode)" and "Build
cx-terminal-gui (Release mode)" so they match the commands `cargo build -p
cx-terminal --release` and `cargo build -p cx-terminal-gui --release` and keep
CI logs consistent with the rebrand.
| - name: "Build wezterm (Release mode)" | ||
| shell: bash | ||
| run: "cargo build -p wezterm --release" | ||
| run: "cargo build -p cx-terminal --release" | ||
| - name: "Build wezterm-gui (Release mode)" | ||
| shell: bash | ||
| run: "cargo build -p wezterm-gui --release" | ||
| run: "cargo build -p cx-terminal-gui --release" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧩 Analysis chain
🏁 Script executed:
cat -n .github/workflows/gen_fedora41_tag.ymlRepository: cxlinux-ai/cx
Length of output: 4800
🏁 Script executed:
# Check if ci/deploy.sh exists and read it
head -100 ci/deploy.shRepository: cxlinux-ai/cx
Length of output: 3956
🏁 Script executed:
# Find RPM spec files
find . -name "*.spec" -o -name "*.spec.in" 2>/dev/null | head -20Repository: cxlinux-ai/cx
Length of output: 39
🏁 Script executed:
# Find what comes after line 100 in deploy.sh
tail -n +100 ci/deploy.sh | head -200Repository: cxlinux-ai/cx
Length of output: 7446
🏁 Script executed:
# Also search for any spec files or RPM-related configuration
rg "wezterm.*\.rpm|cx-terminal.*\.rpm" --type-list all 2>/dev/null | head -30Repository: cxlinux-ai/cx
Length of output: 39
🏁 Script executed:
tail -n +250 ci/deploy.sh | head -100Repository: cxlinux-ai/cx
Length of output: 4081
🏁 Script executed:
# Also check what the actual Cargo packages output as binary names
rg "name = \"cx-terminal\"" -A 5 2>/dev/null | head -30Repository: cxlinux-ai/cx
Length of output: 862
🏁 Script executed:
# Check the actual [[bin]] sections in Cargo.toml for cx-terminal
rg "\[\[bin\]\]" -A 3 wezterm/Cargo.toml 2>/dev/nullRepository: cxlinux-ai/cx
Length of output: 39
🏁 Script executed:
# Check wezterm-gui Cargo.toml
rg "\[\[bin\]\]" -A 3 wezterm-gui/Cargo.toml 2>/dev/nullRepository: cxlinux-ai/cx
Length of output: 39
🏁 Script executed:
# Find Cargo.toml files
find . -name Cargo.toml | head -20Repository: cxlinux-ai/cx
Length of output: 552
🏁 Script executed:
# Check if wezterm and wezterm-gui directories exist
ls -la | grep -E "wezterm|cx-terminal"Repository: cxlinux-ai/cx
Length of output: 1369
🏁 Script executed:
# Read the wezterm/Cargo.toml
cat wezterm/Cargo.tomlRepository: cxlinux-ai/cx
Length of output: 1540
🏁 Script executed:
# Read the wezterm-gui/Cargo.toml
cat wezterm-gui/Cargo.toml | head -50Repository: cxlinux-ai/cx
Length of output: 1502
🏁 Script executed:
# Search for [[bin]] sections in both Cargo.toml files
grep -n "\[\[bin\]\]" wezterm/Cargo.toml wezterm-gui/Cargo.tomlRepository: cxlinux-ai/cx
Length of output: 39
🏁 Script executed:
# Get the end of wezterm/Cargo.toml to see if there's a [[bin]] section at the end
tail -30 wezterm/Cargo.tomlRepository: cxlinux-ai/cx
Length of output: 694
🏁 Script executed:
# Check the full wezterm/Cargo.toml line count and tail for [[bin]]
wc -l wezterm/Cargo.toml && tail -50 wezterm/Cargo.tomlRepository: cxlinux-ai/cx
Length of output: 1235
🏁 Script executed:
# Check wezterm-gui/Cargo.toml for [[bin]] section
tail -100 wezterm-gui/Cargo.toml | grep -A 5 "\[\[bin\]\]"Repository: cxlinux-ai/cx
Length of output: 39
🏁 Script executed:
# Check wezterm-gui full Cargo.toml for [[bin]]
wc -l wezterm-gui/Cargo.toml && tail -100 wezterm-gui/Cargo.tomlRepository: cxlinux-ai/cx
Length of output: 2979
🏁 Script executed:
# Check the root workspace Cargo.toml for members
grep -A 30 "\[workspace\]" Cargo.toml | head -50Repository: cxlinux-ai/cx
Length of output: 639
🏁 Script executed:
# Check what binaries actually get built
grep -r "^\[\[bin\]\]" . 2>/dev/null | head -20Repository: cxlinux-ai/cx
Length of output: 39
🏁 Script executed:
# Let's understand the binary naming: by default, Cargo names binaries after the package name
# So cargo build -p cx-terminal should produce target/release/cx-terminal
# Let's verify the spec file installation paths once more to see if they match
grep -n "install.*\$TARGET_DIR/release" ci/deploy.sh | head -20Repository: cxlinux-ai/cx
Length of output: 708
🏁 Script executed:
# Final check: look for any [[bin]] sections that might override binary names
find . -name "Cargo.toml" -exec grep -l "\[\[bin\]\]" {} \;Repository: cxlinux-ai/cx
Length of output: 39
🏁 Script executed:
# Also check if wezterm-mux-server package name matches
grep "^name = " wezterm-mux-server/Cargo.toml 2>/dev/nullRepository: cxlinux-ai/cx
Length of output: 84
Fix RPM spec binary installation paths to match renamed packages.
The workflow builds cargo build -p cx-terminal and cargo build -p cx-terminal-gui, which produce binaries named cx-terminal and cx-terminal-gui respectively. However, the RPM spec file (generated in ci/deploy.sh) attempts to install $TARGET_DIR/release/wezterm and $TARGET_DIR/release/wezterm-gui, which don't exist. The RPM build will fail during the %install phase. Update the spec file to install the correct binary names: cx-terminal and cx-terminal-gui.
🤖 Prompt for AI Agents
In @.github/workflows/gen_fedora41_tag.yml around lines 62 - 67, The RPM spec in
ci/deploy.sh installs $TARGET_DIR/release/wezterm and wezterm-gui but the
workflow builds binaries named cx-terminal and cx-terminal-gui (see cargo build
-p cx-terminal and -p cx-terminal-gui in gen_fedora41_tag.yml); update the
spec's %install section (or any references to install paths using
$TARGET_DIR/release/wezterm and $TARGET_DIR/release/wezterm-gui) to instead
reference $TARGET_DIR/release/cx-terminal and
$TARGET_DIR/release/cx-terminal-gui so the built binaries are found and packaged
correctly.
PR Review: Required ChangesI've analyzed the PR and identified the following changes needed to address the review feedback: 1.
|
| File | Changes Required |
|---|---|
cx-terminal.appdata.xml |
Fix URLs, license (BUSL-1.1), developer name, remove WezTerm screenshots |
cx-terminal.desktop |
Fix StartupWMClass to org.cxlinux.cx-terminal |
CONTRIBUTING.md |
Change "CX Linux" to "cxlinux-ai" in agent system row |
wezterm-font/src/lib.rs |
Add CX_TERMINAL_FONTS_DOC_URL constant with marker |
wezterm-gui-subcommands/src/lib.rs |
Add // CX Terminal: markers above all modified blocks |
wezterm-gui/src/main.rs |
Add marker comment for AppUserModelID |
wezterm-mux-server/src/main.rs |
Add marker comments for CLI branding |
wezterm-toast-notification/src/dbus.rs |
Change "wezterm" to "cx-terminal", add marker |
wezterm-toast-notification/src/windows.rs |
Add marker comment |



Summary
Updates all user-visible references from WezTerm to CX Terminal. This is Phase 2 of the rebrand - cosmetic/user-facing changes only.
Changes
wezterm.desktop→cx-terminal.desktopwezterm.appdata.xml→cx-terminal.appdata.xmlorg.wezfurlong.wezterm→org.cxlinux.cx-terminalWhat's NOT changed (future phases)
Test plan
cargo build🤖 Generated with Claude Code
Summary by CodeRabbit
Documentation
Chores
✏️ Tip: You can customize this high-level summary in your review settings.