Commit Graph
875 Commits
Author SHA1 Message Date
James PeterandClaude 104fef438b fix: improve height calculation for wrapped text in history cells
- Use Paragraph line_count for StyledText to properly calculate wrapped height
- Ensures proper vertical spacing for content that wraps across lines
- Fixes display layout issues with long text content

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
2025-08-13 21:08:18 +10:00
James PeterandClaude 320a308e5f fix: add proper text wrapping to conversation history
- Added .wrap(Wrap { trim: false }) to BackgroundEvent, StyledText, and DimmedReasoning cells
- Now content flows naturally during streaming but wraps properly in history
- Text uses full terminal width and wraps at word boundaries
- Fixes issue where long lines would extend beyond terminal width

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
2025-08-13 21:08:18 +10:00
James Peter 0a0303136f fix: remove artificial text wrapping at 80 chars during streaming
- Completely removed DEFAULT_WRAP_COLS constant
- RowBuilder now uses usize::MAX to disable wrapping during streaming
- Text flows naturally and is only wrapped when displayed based on terminal width
- Fixed issue where AI responses were being hard-wrapped at 80 characters
- Fixed styling of thinking content during streaming (uses StyledText)
- Prevented duplicate content in reasoning sections
2025-08-13 21:08:18 +10:00
James PeterandClaude 095d97bbd2 fix: correct /chrome command parsing in handle_browser_command
The function was expecting '/browser' to be in the command text and
looking at parts[1], but /chrome passes just 'chrome' or 'chrome [port]',
so we need to look at parts[0] instead.

- Changed index from parts[1] to parts[0] for first argument
- Fixed port parsing to use parts[1] instead of parts[2]
- Updated condition from parts.len() > 1 to \!parts.is_empty()

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
2025-08-13 21:08:18 +10:00
GitHub Action b1bd326ef3 chore(release): 0.1.7 [skip ci] 2025-08-12 13:34:27 +00:00
James Peter 6dd544bc53 Merge branch 'main' of https://github.com/just-every/coder into main 2025-08-12 23:17:20 +10:00
James PeterandClaude 0dab677577 fix: resolve merge conflicts and compilation errors
- Fixed merge conflicts from feature-browser-upgrade
- Added missing launch_port variable definition
- Fixed unused variable warnings
- Removed unused is_browser_enabled_sync function
- Build now completes without warnings or errors

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
2025-08-12 23:16:17 +10:00
James PeterandClaude 10cda43818 Merge branch 'feature-browser-upgrade' into main
Resolved conflicts by keeping the feature-browser-upgrade connection
setup code but removing the Browser Status panel UI as requested.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
2025-08-12 23:04:48 +10:00
James PeterandClaude 9bafac6262 fix: remove unused capture_screenshot_background_strategy method
Removed dead code that was causing compilation warnings. The background
strategy was replaced by the regular strategy as noted in comments.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
2025-08-12 22:58:47 +10:00
James PeterandClaude a8dfa5ac2b feat: implement browser upgrade with improved screenshot functionality
- Remove prevent_focus_steal config option (no longer needed)
- Add background page for screenshots to prevent focus stealing
- Improve Chrome connection with parallel port testing
- Add navigation monitoring support
- Enhance chatwidget with screenshot slash command
- Add support for multiple screenshot paths
- Update README with feature descriptions
- Improve Chrome port detection script

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
2025-08-12 22:57:53 +10:00
James Peter 0e34cc854e Merge branch 'feature-ui-upgrade' into main 2025-08-12 22:53:57 +10:00
James Peter fb6c2a4328 Merge branch 'feature-agents-upgrade' into main 2025-08-12 22:53:06 +10:00
James Peter 85a49ed91c Merge branch 'feature-browser-upgrade' into main 2025-08-12 22:52:03 +10:00
James PeterandClaude b822a37751 feat: rebrand from openai/codex to just-every/coder
- Update GitHub Actions workflow for version handling
- Change command references from 'codex' to 'coder'
- Improve release script with better version validation
- Update browser mode UI displays
- Update repository references and branding

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
2025-08-12 22:51:50 +10:00
James PeterandClaude fc6d957d67 feat: enhance TUI with improved styling and animations
- Fix reasoning text dimming and markdown formatting
- Preserve empty lines in markdown processing
- Add smart spacing between messages
- Implement weighted random spinner selection (stars, diamonds, rare sparkle)
- Use secondary color for spinners and model names throughout UI
- Remove compilation warnings and unused code
- Clean up StatusIndicatorWidget and related unused functions

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
2025-08-12 22:50:26 +10:00
James PeterandClaude 2ade1d2d65 fix: resolve compilation errors in browser manager
- Fix missing semicolon in cdp_page initialization
- Move apply_page_overrides outside of else block to correct scope
- Fix Headers type usage for SetExtraHttpHeadersParams

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
2025-08-12 22:42:11 +10:00
James PeterandClaude 05f7be5bb7 feat: enhance agent HUD with animated sparkline and improved status display
- Add animated sparkline visualization to agent panel showing activity levels
- Implement dynamic sparkline height based on agent count (1-4 lines)
- Add color coding: border color for active, green for completed tasks
- Fix sparkline visibility during planning/preparing phase with better scaling
- Add space prefix to all agent HUD lines for consistent indentation
- Change "Preparing agents..." text to dim color for subtler appearance
- Simplify agent status display to show just model name and status
- Auto-hide agent HUD when tasks complete or fail
- Replace eprintln\! debug logging with proper tracing macros
- Add comprehensive debug logging for sparkline rendering

The sparkline now provides visual feedback during all agent phases:
- Planning: 1 line with high variation (±50%) for visibility
- Running: 2-4 lines based on agent count with standard variation (±30%)
- Activity levels scale from low (planning) to high (multiple agents)

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
2025-08-12 22:38:46 +10:00
GitHub Action 140e5ac5d4 chore(release): 0.1.6 [skip ci] 2025-08-12 06:58:55 +00:00
James Peter a375781abd Merge branch 'main' of https://github.com/openai/codex into main 2025-08-12 16:41:44 +10:00
James PeterandClaude 635a54a9ca fix: resolve CI workflow compilation errors
- Remove duplicate shlex_join_safe function definition in history_cell.rs
- Fix padded_area reference by using area parameter in chatwidget.rs:1900
- Add missing Modifier import to chatwidget.rs
- Replace undefined LIGHT_BLUE with Color::LightBlue in history_cell.rs:426
- Fix trailing whitespace in openai_tools.rs:958
- Apply cargo fmt to all modified files

These changes fix the build errors that were causing the GitHub Actions release workflow to fail.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
2025-08-12 16:32:58 +10:00
James PeterandClaude 33e68c62a3 feat: restore emoji characters and remove restrictive README checks
- Restore emoji characters in README.md for better visual appeal
- Remove Table of Contents markers requirement
- Disable ASCII-only and ToC validation for root README in CI
- Keep validation for codex-cli/README.md (maintains upstream compatibility)

This allows the fork to have a more modern, visually appealing README
while still maintaining compatibility where needed.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
2025-08-12 16:21:43 +10:00
James PeterandClaude adc3ced372 fix: update Table of Contents to match README structure
Add missing 'Why Coder' and 'Environment variables' sections to ToC to pass CI checks

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
2025-08-12 15:04:56 +10:00
aeandGitHub 677c3b8ef3 fix: update ctrl-z to suspend tui (#2113)
- Lean on ctrl-c and esc to interrupt.
- (Only on unix.)

https://github.com/user-attachments/assets/7ce6c57f-6ee2-40c2-8cd2-b31265f16c1c
2025-08-12 05:03:58 +00:00
James PeterandClaude 8d0009eef7 fix: add Table of Contents markers to README.md
Add required <!-- Begin ToC --> and <!-- End ToC --> markers to pass CI workflow checks

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
2025-08-12 15:03:40 +10:00
James PeterandClaude e0d5b01363 fix: resolve CI workflow failures
- Remove emoji characters from README.md to pass ASCII check
- Fix typo in chatwidget.rs: numer -> number for codespell check

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
2025-08-12 15:02:14 +10:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
1beeab316e chore(deps-dev): bump @types/bun from 1.2.19 to 1.2.20 in /.github/actions/codex (#2163)
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@types/bun&package-manager=bun&previous-version=1.2.19&new-version=1.2.20)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-11 21:54:30 -07:00
James PeterandClaude 990295c21d docs: update README with enhanced fork features and clean formatting
- Remove all OpenAI references and fix typos (coderr -> coder)
- Highlight key improvements over upstream:
  - Browser integration (CDP/headless)
  - Multi-agent commands (/plan, /solve, /code)
  - Theme system (/themes)
  - Reasoning control (/reasoning)
- Add comprehensive legal section with responsible use guidelines
- Improve structure and markdown formatting
- Update branding to @just-every/coder

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
2025-08-12 14:51:57 +10:00
James PeterandClaude 476e10e463 fix: resolve compilation errors after upstream merge
- Remove non-existent custom_terminal module import
- Fix duplicate EventMsg import in app.rs
- Fix create_diff_summary function call with correct parameters
- Remove unused light_blue import

Build now completes successfully.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
2025-08-12 14:51:57 +10:00
aibrahim-oaiandJames Peter 68999af2a7 TUI: Show apply patch diff. Stack: [2/2] (#2050)
Show the diff for apply patch

<img width="801" height="345" alt="image"
src="https://github.com/user-attachments/assets/a15d6112-e83e-4612-a2bd-43285689a358"
/>


Stack:
-> #2050
#2049
2025-08-12 14:51:36 +10:00
dependabot[bot]James Peterdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
3ec7a22ae2 chore(deps): bump clap_complete from 4.5.55 to 4.5.56 in /codex-rs (#2158)
Bumps [clap_complete](https://github.com/clap-rs/clap) from 4.5.55 to
4.5.56.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/clap-rs/clap/commit/9cec1007acdc3cd990feded4322a4bccd2fd471c"><code>9cec100</code></a>
chore: Release</li>
<li><a
href="https://github.com/clap-rs/clap/commit/00e72e06f46e2c21e5bb4dd82aa5fca02a9e5c16"><code>00e72e0</code></a>
docs: Update changelog</li>
<li><a
href="https://github.com/clap-rs/clap/commit/c7848ff6fc3f8e0f7b66eaee10d44b43eea54538"><code>c7848ff</code></a>
Merge pull request <a
href="https://redirect.github.com/clap-rs/clap/issues/6094">#6094</a>
from epage/home</li>
<li><a
href="https://github.com/clap-rs/clap/commit/60184fb76a3d88277f89430402d01a121feb858c"><code>60184fb</code></a>
feat(complete): Expand ~ in native completions</li>
<li><a
href="https://github.com/clap-rs/clap/commit/09969d3c1af9dd22fb944c09f8b1c27274cad824"><code>09969d3</code></a>
chore(deps): Update Rust Stable to v1.89 (<a
href="https://redirect.github.com/clap-rs/clap/issues/6093">#6093</a>)</li>
<li><a
href="https://github.com/clap-rs/clap/commit/520beb5ec2d2bb5dd11912d27127df4e97027965"><code>520beb5</code></a>
chore: Release</li>
<li><a
href="https://github.com/clap-rs/clap/commit/2bd8ab3c009fc975db28209c3c3fb526364342ae"><code>2bd8ab3</code></a>
docs: Update changelog</li>
<li><a
href="https://github.com/clap-rs/clap/commit/220875b58511028ba9cd38f7195b8b3315b72d0d"><code>220875b</code></a>
Merge pull request <a
href="https://redirect.github.com/clap-rs/clap/issues/6091">#6091</a>
from epage/possible</li>
<li><a
href="https://github.com/clap-rs/clap/commit/e5eb6c9d84efac5d660322e92dbbc0158266602d"><code>e5eb6c9</code></a>
fix(help): Integrate 'Possible Values:' into 'Arg::help'</li>
<li><a
href="https://github.com/clap-rs/clap/commit/594a771030e43df8c806ea1a029862339739a0f3"><code>594a771</code></a>
refactor(help): Make empty tracking more consistent</li>
<li>Additional commits viewable in <a
href="https://github.com/clap-rs/clap/compare/clap_complete-v4.5.55...clap_complete-v4.5.56">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=clap_complete&package-manager=cargo&previous-version=4.5.55&new-version=4.5.56)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-12 14:50:48 +10:00
dependabot[bot]James Peterdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
9dd4b1a19a chore(deps-dev): bump @types/node from 24.1.0 to 24.2.1 in /.github/actions/codex (#2164)
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@types/node&package-manager=bun&previous-version=24.1.0&new-version=24.2.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-12 14:50:48 +10:00
dependabot[bot]James Peterdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
f146779e2a chore(deps): bump clap from 4.5.41 to 4.5.43 in /codex-rs (#2159)
[//]: # (dependabot-start)
⚠️  **Dependabot is rebasing this PR** ⚠️ 

Rebasing might not happen immediately, so don't worry if this takes some
time.

Note: if you make any changes to this PR yourself, they will take
precedence over the rebase.

---

[//]: # (dependabot-end)

Bumps [clap](https://github.com/clap-rs/clap) from 4.5.41 to 4.5.43.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/clap-rs/clap/releases">clap's
releases</a>.</em></p>
<blockquote>
<h2>v4.5.43</h2>
<h2>[4.5.43] - 2025-08-06</h2>
<h3>Fixes</h3>
<ul>
<li><em>(help)</em> In long help, list Possible Values before defaults,
rather than after, for a more consistent look</li>
</ul>
<h2>v4.5.42</h2>
<h2>[4.5.42] - 2025-07-30</h2>
<h3>Fixes</h3>
<ul>
<li>Include subcommand visible long aliases in <code>--help</code></li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/clap-rs/clap/blob/master/CHANGELOG.md">clap's
changelog</a>.</em></p>
<blockquote>
<h2>[4.5.43] - 2025-08-06</h2>
<h3>Fixes</h3>
<ul>
<li><em>(help)</em> In long help, list Possible Values before defaults,
rather than after, for a more consistent look</li>
</ul>
<h2>[4.5.42] - 2025-07-30</h2>
<h3>Fixes</h3>
<ul>
<li>Include subcommand visible long aliases in <code>--help</code></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/clap-rs/clap/commit/c4105bd90c314ac21dd9e008de8b88ab0175fdf7"><code>c4105bd</code></a>
chore: Release</li>
<li><a
href="https://github.com/clap-rs/clap/commit/a029b20be631aab1d3a963872df2158b97f61427"><code>a029b20</code></a>
docs: Update changelog</li>
<li><a
href="https://github.com/clap-rs/clap/commit/cf15d48b59cf39cafc3e3797dec293edaf9cf533"><code>cf15d48</code></a>
Merge pull request <a
href="https://redirect.github.com/clap-rs/clap/issues/5893">#5893</a>
from 8LWXpg/patch-2</li>
<li><a
href="https://github.com/clap-rs/clap/commit/7e54542de972c4af98d3035377dcde83c5a5734e"><code>7e54542</code></a>
Merge pull request <a
href="https://redirect.github.com/clap-rs/clap/issues/5892">#5892</a>
from 8LWXpg/patch-1</li>
<li><a
href="https://github.com/clap-rs/clap/commit/6ffc88f8c97be82e71d5d6101c98e1042708ab69"><code>6ffc88f</code></a>
fix(complete): Check if help string is empty</li>
<li><a
href="https://github.com/clap-rs/clap/commit/7d8470ed9cf1d5503482938cea62f8f363579f12"><code>7d8470e</code></a>
fix(complete): Fix single quote escaping in PowerShell</li>
<li><a
href="https://github.com/clap-rs/clap/commit/eadcc8f66c128272ea309fed3d53d45b9c700b6f"><code>eadcc8f</code></a>
chore: Release</li>
<li><a
href="https://github.com/clap-rs/clap/commit/7ce0f7bea34011ca888a762bdd95d2371006c97a"><code>7ce0f7b</code></a>
docs: Update changelog</li>
<li><a
href="https://github.com/clap-rs/clap/commit/fea7c5487bb602a9b7151c40069afc6f34bda442"><code>fea7c54</code></a>
Merge pull request <a
href="https://redirect.github.com/clap-rs/clap/issues/5888">#5888</a>
from epage/tut</li>
<li><a
href="https://github.com/clap-rs/clap/commit/c297ddd56e2601d9d1b0a0ba13a9086e8f3ac43c"><code>c297ddd</code></a>
docs(tutorial): Experiment with a flat layout</li>
<li>Additional commits viewable in <a
href="https://github.com/clap-rs/clap/compare/clap_complete-v4.5.41...clap_complete-v4.5.43">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=clap&package-manager=cargo&previous-version=4.5.41&new-version=4.5.43)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-12 14:50:48 +10:00
Michael BolinandJames Peter 4c2223ed8a docs: update codex-rs/config.md to reflect that gpt-5 is the default model (#2199)
`gpt-5` has replaced `codex-mini-latest` as the default.
2025-08-12 14:50:48 +10:00
dependabot[bot]James Peterdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
bbcc7c64b8 chore(deps): bump toml from 0.9.4 to 0.9.5 in /codex-rs (#2157)
Bumps [toml](https://github.com/toml-rs/toml) from 0.9.4 to 0.9.5.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/toml-rs/toml/commit/bd21148c49c784cb9136e5d069471dfeae13a339"><code>bd21148</code></a>
chore: Release</li>
<li><a
href="https://github.com/toml-rs/toml/commit/ff1cb9a263314e7a908b2c864c1932d5346af441"><code>ff1cb9a</code></a>
docs: Update changelog</li>
<li><a
href="https://github.com/toml-rs/toml/commit/39dd8b6422ac0f1068ae889737dfaa6a9fc7a53d"><code>39dd8b6</code></a>
fix(parser): Improve bad quote error messages (<a
href="https://redirect.github.com/toml-rs/toml/issues/1014">#1014</a>)</li>
<li><a
href="https://github.com/toml-rs/toml/commit/137338eb266892ae371058516c4057d1c3d57d34"><code>137338e</code></a>
chore(deps): Update Rust crate serde_json to v1.0.142 (<a
href="https://redirect.github.com/toml-rs/toml/issues/1022">#1022</a>)</li>
<li><a
href="https://github.com/toml-rs/toml/commit/d5b8c8a94e6f34f35a74d04e542d69cd0727819e"><code>d5b8c8a</code></a>
fix(parser): Improve missing-open-quote errors</li>
<li><a
href="https://github.com/toml-rs/toml/commit/ce91354fc7673320381a36dc4db8c55ce9d6a8e0"><code>ce91354</code></a>
fix(parser): Don't treat trailing quotes as separate items</li>
<li><a
href="https://github.com/toml-rs/toml/commit/8f424edd08403509169db7187d16728c4a46e890"><code>8f424ed</code></a>
fix(parser): Conjoin more values in unquoted string errors</li>
<li><a
href="https://github.com/toml-rs/toml/commit/2b9a81ae793329e2c2e979f80cc8b88649a1cb91"><code>2b9a81a</code></a>
fix(parser): Reduce float false positives</li>
<li><a
href="https://github.com/toml-rs/toml/commit/f6538413bbc61de436ba3f294cd8fd3863c69e7e"><code>f653841</code></a>
fix(parser): Reduce float/bool false positives</li>
<li><a
href="https://github.com/toml-rs/toml/commit/f4864ef34b70fb4d772555484bf5cac8a260128d"><code>f4864ef</code></a>
test(parser): Add case for missing start quote</li>
<li>See full diff in <a
href="https://github.com/toml-rs/toml/compare/toml-v0.9.4...toml-v0.9.5">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=toml&package-manager=cargo&previous-version=0.9.4&new-version=0.9.5)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-12 14:50:48 +10:00
Michael BolinandJames Peter 7b350a836f fix: remove unused import in release mode (#2201)
Moves `use codex_core::protocol::EventMsg` inside the block annotated
with `#[cfg(debug_assertions)]` since that was the only place in the
file that was using it.

This eliminates the `warning: unused import:` when building with `cargo
build --release` in `cargo-rs/tui`.

Note this was not breaking CI because we do not build release builds on
CI since we're impatient :P
2025-08-12 14:50:48 +10:00
DylanandJames Peter dc62d2f4d7 [prompts] integration test prompt caching (#2189)
## Summary
Our current approach to prompt caching is fragile! The current approach
works, but we are planning to update to a more resilient system (storing
them in the rollout file). Let's start adding some integration tests to
ensure stability while we migrate it.

## Testing
- [x] These are the tests 😎
2025-08-12 14:50:47 +10:00
pakrym-oaiandJames Peter 9300994fcb Send prompt_cache_key (#2200)
To optimize prompt caching performance.
2025-08-12 14:50:47 +10:00
Gabriel PealandJames Peter 4d613fdccd [TUI] Split multiline commands (#2202)
Fixes:
<img width="5084" height="1160" alt="CleanShot 2025-08-11 at 16 02 55"
src="https://github.com/user-attachments/assets/ccdbf39d-dc8b-4214-ab65-39ac89841d1c"
/>
2025-08-12 14:50:47 +10:00
James PeterandClaude 646d04aeb9 Remove .coder/ directories from git tracking
The .coder/branches/ directory was incorrectly tracked in git. This commit:
- Confirms .coder/ is already in .gitignore
- Removes all .coder/ files from git tracking

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
2025-08-12 14:49:47 +10:00
James PeterandClaude b36b058e62 fix: remove unused code and imports to resolve compilation warnings
- Remove unused method set_live_ring_rows from BottomPane
- Remove unused methods new, set_max_rows, set_rows from LiveRingWidget
- Remove unused field started_at from AgentInfo struct
- Remove unused method calculate_total_content_height from ChatWidget
- Remove unused import ratatui::text::Line from bottom_pane/mod.rs

Ensures clean compilation with zero warnings.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
2025-08-12 14:49:44 +10:00
James PeterandClaude 316809c4d7 feat: improve scroll behavior and add title fade-out animation
- Fix scroll overflow issue where scrolling past bottom would require extra input to start moving again
- Add fade-out animation for CODER title when first user message is submitted
- Title fades to background color over 0.8 seconds with alpha blending
- Completely remove faded-out title from history to prevent scrolling artifacts
- Improve unified scrollable container with proper bottom alignment
- Refactor streaming content integration into main chat area

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
2025-08-12 14:49:44 +10:00
James PeterandClaude 8c799c8e80 refactor: simplify chat history into unified scrollable container
- Consolidated all chat content into a single scrollable view
- Removed complex manual scroll calculations and separate rendering
- Fixed padding consistency throughout the chat area
- All content (welcome, history, streaming) now in one unified container
- Simplified scroll position calculation for better performance
- Eliminated overlapping elements and inconsistent spacing

The chat history now behaves as a single cohesive scrollable area
instead of multiple independently positioned elements.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
2025-08-12 14:49:44 +10:00
James PeterandClaude 69ec0807bd fix: simplify text processing to let UI handle wrapping naturally
- Removed manual word wrapping logic from text processing
- Text is now only split by existing newlines, preserving structure
- Markdown parsing remains for bold text support
- UI widgets handle text wrapping automatically as designed

This fixes the issue where agent messages were being split with
unexpected line breaks. The UI already handles text wrapping properly,
so manual wrapping was unnecessary and causing problems.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
2025-08-12 14:49:44 +10:00
James PeterandClaude 5154d301a5 fix: remove excessive spacing in agent messages in chat history
- Fixed text tokenization to not create separate space tokens
- Words are now properly joined with single spaces during rendering
- Updated tests to reflect the corrected token count

The issue was that spaces were being treated as individual tokens,
causing double spacing when tokens were joined with spaces between them.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
2025-08-12 14:49:44 +10:00
James PeterandClaude 84817a7a07 fix: improve up/down arrow key history navigation in chat input
- Save original text when starting history navigation with up arrow
- Restore original text when pressing down past the newest history entry
- Reset navigation state when text is manually edited
- Improve navigation detection logic for better edge case handling
- Fix test compilation error with DispatchCommand pattern matching

Now pressing down after browsing history properly returns to the original
text that was in the input field before navigation started.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
2025-08-12 14:49:43 +10:00
James PeterandClaude f640774e33 fix: rename Paper Light Pro theme to Paper Pro
- Simplified theme name from "Light - Paper Light Pro" to "Light - Paper Pro"
- Maintains position in light themes section

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
2025-08-12 14:49:43 +10:00
James PeterandClaude 2b92f0ea72 feat: Implement comprehensive focus prevention and unified browser management
- Add multi-layered focus prevention for external Chrome connections:
  * CDP-level: Disable page lifecycle events during screenshots
  * JavaScript-level: Override document.hasFocus() and dispatch blur events
  * macOS system-level: Detect and restore active app after browser operations
- Unify TUI and global browser managers to prevent dual instance issues
- Configure global manager when using /browser local to ensure LLM tools use external Chrome
- Add prevent_focus_steal config option (default: true) for external connections
- Prevent Chrome from stealing focus during screenshot operations

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
2025-08-12 14:49:43 +10:00
James Peter 427eaaf02f feat: Use active/focused tab when connecting to Chrome
- Check document.visibilityState and document.hasFocus() for each tab
- Prefer focused tab, then visible tab, then most recent tab
- No longer just uses the first tab which could be a pinned tab
- Provides better UX by controlling the tab user is actually looking at

This ensures the browser automation works with the tab the user has
active, not some random pinned tab that happened to be first.
2025-08-12 14:49:43 +10:00
James Peter a37476d519 fix: Resolve runtime panic when initializing browser manager
- Fix 'Cannot start runtime from within runtime' panic
- Revert to creating browser manager directly in TUI
- Browser manager sync between TUI and core still pending

The application no longer crashes on startup. The dual browser instance
issue remains but can be addressed separately.
2025-08-12 14:49:43 +10:00
James Peter a145182bad fix: Major browser connection fixes for external Chrome
1. Use existing tab instead of creating new one when connecting to Chrome
   - Check for existing pages and use the first/active one
   - Only create new tab if no tabs exist

2. Prevent cleanup/closing of externally connected Chrome instances
   - Do not close browser when disconnecting from external Chrome
   - Skip idle monitor for external connections
   - Only cleanup profiles we created, not external ones

3. Fix dual browser instance issue
   - Use global browser manager singleton in both TUI and core
   - Prevents creation of separate browser instances
   - Ensures /browser local and browser tools use same instance

This prevents Chrome from being killed when connected via CDP and ensures
the existing tab is used for navigation instead of creating new ones.
2025-08-12 14:49:43 +10:00