Commit Graph

12643 Commits (7087eea1e23297fb23ffb79b04a6c119b8acfb98)

Author SHA1 Message Date
Mitchell Hashimoto 7087eea1e2
chore: add nerd font attributes as generated too 2025-10-11 13:08:11 -07:00
Mitchell Hashimoto 6ab416376a
chore: mark the nerd font tables as a generated file. 2025-10-11 12:54:25 -07:00
Brice c7058143c7
GTK fix quick terminal autohide (#9139)
This is pretty much a direct port of the previous GTK app. still inside
of the `isActive` handler for a window


7e429d73d6/src/apprt/gtk/Window.zig (L822-L837)

Fixes: https://github.com/ghostty-org/ghostty/discussions/9137
2025-10-11 12:52:35 -07:00
Jeffrey C. Ollie 81c982df96
gtk: fix clicking on desktop notifications (#9146)
Clicking on desktop notifications sent by Ghostty _should_ cause the
window that sent the notification to come to the top. However, because
the notification that was sent targeted the wrong surface (apprt surface
vs core surface) and the window did not call `present()` on itself the
window would never be brought to the surface, the correct tab would not
be selected, etc.

Fixes #9145
2025-10-11 12:51:52 -07:00
Jeffrey C. Ollie c5ad7563f9
gtk: better reporting for CSS parsing problems (#9129)
Log messages will include the problematic CSS, simplifying debugging.
Especially helpful since some of our CSS is generated at runtime so it
could be difficult to examine the CSS "source".

```
info(gtk_ghostty_application): loading gtk-custom-css path=/home/ghostty/dev/ghostty/x.css
warning(gtk_ghostty_application): css parsing failed at <data>:2:3-14: gtk-css-parser-error-quark 4 No property named "border-poop"
* {
  border-poop: 0;

warning(gtk_ghostty_application): css parsing failed at <data>:1:3-3:1: gtk-css-parser-warning-quark 1 Unterminated block at end of document
* {
  border-poop: 0;
```

vs:

```
info(gtk_ghostty_application): loading gtk-custom-css path=/home/ghostty/dev/ghostty/x.css
warning(glib): WARNING: Gtk: Theme parser error: <data>:2:3-14: No property named "border-poop"
warning(glib): WARNING: Gtk: Theme parser warning: <data>:1:3-3:1: Unterminated block at end of document
```
2025-10-10 13:41:58 -07:00
Bruno BELANYI 854c8e6975
Set title as argv[0] for commands specified with `-e` (#9121)
I want to see #7932 get merged, so applied the latest proposed patch.

Will close if the original PR gets some traction, as I do _not_ know Zig
nor this project.

Co-authored-by: rhodes-b <59537185+rhodes-b@users.noreply.github.com>
2025-10-10 13:41:38 -07:00
Mitchell Hashimoto ac2f040b31
macos: Show "Update and Restart" in the Command Palette (#9131)
If an update is available, you can now trigger the full download,
install, and restart from a single command palette action. This allows
for a fully keyboard-driven update process.

While an update is being installed, an option to cancel or skip the
current update is also shown as an option, so that can also be
keyboard-driven.

This currently can't be bound to a keyboard action, but that may be
added in the future if there's demand for it.

**AI Disclosure:** Amp was used considerably. I reviewed all the code
and understand it.

## Demo



https://github.com/user-attachments/assets/df6307f8-9967-40d4-9a62-04feddf00ac2
2025-10-10 13:40:35 -07:00
Mitchell Hashimoto cd7621167f
macos: update accessory in the titlebar should not move the window
This is annoyingly easy to trigger, just disable this.
2025-10-10 10:20:35 -07:00
Jeffrey C. Ollie c28104e62f
gtk: properly check for amount of time elapsed before notifying about command finish (#9128) 2025-10-10 10:01:06 -07:00
Jeffrey C. Ollie 7767a45779
osc: do inplace decoding of cmdline passed in OSC 133;C (#9127) 2025-10-10 10:00:50 -07:00
Mitchell Hashimoto bac2419343
macos: fix unit tests for notFound change 2025-10-10 09:45:34 -07:00
Xiangbao Meng c8ea42b894
macOS: Fix New Tab behaviours (#9124)
- Fix `macos-dock-drop-behavior = new-tab` not working, which also
affects `open /path/to/directory -a Ghostty.app`
- Fix 'New Tab' in dock icon not working **when Ghostty's not active**

### Issue preview with `1.2.2(12187)`


https://github.com/user-attachments/assets/18068cc2-c25d-4360-97ab-cec22d5d3ff4
2025-10-10 09:31:55 -07:00
Mitchell Hashimoto 207eccffda
macos: Sparkle notFound acknowledgement should only be called on dismiss (#9126)
This was causing the "no update found" message to never really appear in
the real world.
2025-10-10 09:30:12 -07:00
Xiangbao Meng 2bf9c777d7
Fix `macos-titlebar-tabs` related issues (#9090)
### This pr fixes multiple issues related to `macos-titlebar-tabs`

- [Window title clipping **on
Tahoe**](https://github.com/ghostty-org/ghostty/discussions/9027#discussion-8981483)
- Clipped tab bar **on Tahoe** when creating new ones in fullscreen
> Sequoia doesn't seem to have this issue (at least I didn't reproduce
myself)
- [Title missing **on Tahoe** after dragging a tab into a separate
window](https://github.com/ghostty-org/ghostty/discussions/9027#discussioncomment-14617088)
- [Clipped tab bar **on Tahoe** after dragging from one tab group to
another](https://github.com/ghostty-org/ghostty/discussions/9027#discussioncomment-14626078)
- [Stretched tab bar after switching system
appearance](https://github.com/ghostty-org/ghostty/discussions/9027#discussioncomment-14626918)


### Related issues
I checked all of the open sub-issues in #2349 , most of them should be
fixed in latest main branch (I didn't reproduce)

- [#1692](https://github.com/ghostty-org/ghostty/issues/1692)
@peteschaffner
- [#1945](https://github.com/ghostty-org/ghostty/issues/1945) this one I
reproduce only on Tahoe, and fixed in this pr, @injust
- [#1813](https://github.com/ghostty-org/ghostty/issues/1813) @jacakira
- [#1787](https://github.com/ghostty-org/ghostty/issues/1787)
@roguesherlock
- [#1691](https://github.com/ghostty-org/ghostty/issues/1691) ~**haven't
found a solution yet**(building zig on VM is a pain**)~
> Tried commenting out `isOpaque` check in
`TitlebarTabsVenturaTerminalWindow`, which would fix the issue, but I
see the note there about transparency issue.
  >
> After commenting it out, it worked fine for me with blur and opacity
config, so **I might need some more background on this**. Didn't include
this change yet.
  > 
> [See screenshot
here](https://github.com/user-attachments/assets/eb17642d-b0de-46b2-b42a-19fb38a2c7f0)



### Minor improvements

- Match window title style with `window-title-font-family` and focus
state
  
<img width="843" height="198" alt="image"
src="https://github.com/user-attachments/assets/0138c4fa-1a4b-4bab-a415-b32695899ccf"
/>

---------

Co-authored-by: Mitchell Hashimoto <m@mitchellh.com>
2025-10-10 09:21:29 -07:00
Mitchell Hashimoto cbbcf06e6e
terminal: add semi-colon character to word boundary list for easier selection (#9069)
Sorry, I'm living dangerously here and haven't started a discussion.

New ghostty user. When working interactively with SQL clients you're
often writing semi-colons at the end of statements, e.g. `select * from
table;`

It's super annoying when you double-click to select the word `table` it
actually selects `table;` Anecdotally, this behaviour disagrees with
other terminals I've tried (tho not exhaustive).

Disclosure: Claude wrote this code but, ironically, I "assisted it" by
pointing to the file and function after uncovering issue #30 and
relevant PR.
2025-10-10 09:04:22 -07:00
Mitchell Hashimoto 989acacbf9
macOS: Unobtrusive Updates (a.k.a. OpenAI Demogate Fix) (#9116)
Fixes #2638
Fixes #9056 

This changes our update check and notification system to be fully
unobtrusive if a terminal window is open. If a terminal window is open,
update system notifications now appear in the titlebar or the bottom
right corner of the window (if the titlebar is unavailable for any
reason). Importantly, this means no more window popups!

If a terminal window is not open, then explicit update checks will open
the existing, standard, dedicated window that currently exists. This
only triggers for manual update checks while the window is not open,
though. Or at least, that is the intention, I'm not sure if I got all
the logic there 100% correct.

**AI disclosure:** I used Amp considerably on the path to this fix.
Sorry, I wanted to use Codex due to the source, but I wanted to get this
fix out quickly and used a tool I was more familiar with. I manually
modified most of the code and understand it all.

## Demo

Update flows are complex and can do many things, so I built a simulator
to test the various states. This section will show videos of this.

### Happy Path (Full Update Check and Install)


https://github.com/user-attachments/assets/0d9c3396-cad1-4f13-b247-0fcc7382b47e

### Happy Path (No titlebar)


https://github.com/user-attachments/assets/839ffc20-b2d2-459b-9558-29f0f233d7a2

### No Update Available


https://github.com/user-attachments/assets/44650a98-c39b-4119-a8d0-64c21e06b79f

### Error


https://github.com/user-attachments/assets/ab27fe8c-4dd9-48f2-ad4f-23928d6a6829

### First Launch Permission Check

Note: This would show up automatically, not manually triggered.


https://github.com/user-attachments/assets/0add869e-eea8-4600-b119-4a236e77c4bf

## TODO

- [x] Fix progress percentage causing width wiggling
- [x] Fix padding from edges to be aligned on top/bottom and right
2025-10-10 08:52:59 -07:00
Mitchell Hashimoto 2a58aaf837
apprt/gtk: set the correct window title from the start (#9120)
Previous PR: #8535 (merged but problem persists)
Issues: #5934

The Ghostty window will always start with the title "Ghostty" at
startup, and then immediately change to the correct window title. This
is a problem when using compositors like Hyprland and Niri if you want
to create rules for floating windows and similar, as the window title
isn't detected at startup.

This fixes the bad behaviour both for title configured in the config
file, and for processes started with the --title argument.

In this fix I've updated the `tags.zig` `closureComputedTitle()`
function to get the title from the passed in config, and use that as a
fallback before the default `Ghostty` fallback.

Previous behaviour as logged by `niri msg event-stream`:

> Window opened or changed: Window { id: 19, title: Some("Ghostty"),
app_id: Some("com.mitchellh.ghostty-debug"), pid: Some(802495),
workspace_id: Some(1), is_focused: true, is_floating: false, is_urgent:
false, layout: WindowLayout { pos_in_scrolling_layout: Some((3, 1)),
tile_size: (2266.0, 1365.0), window_size: (2266, 1365),
tile_pos_in_workspace_view: None, window_offset_in_tile: (0.0, 0.0) } }
Window layouts changed: [(6, WindowLayout { pos_in_scrolling_layout:
Some((4, 1)), tile_size: (2266.0, 1365.0), window_size: (2266, 1365),
tile_pos_in_workspace_view: None, window_offset_in_tile: (0.0, 0.0) })]
Window opened or changed: Window { id: 19, title:
Some("pr-test-title-fix"), app_id: Some("com.mitchellh.ghostty-debug"),
pid: Some(802495), workspace_id: Some(1), is_focused: true, is_floating:
false, is_urgent: false, layout: WindowLayout { pos_in_scrolling_layout:
Some((3, 1)), tile_size: (2266.0, 1365.0), window_size: (2266, 1365),
tile_pos_in_workspace_view: None, window_offset_in_tile: (0.0, 0.0) } }

New behaviour:

> Window opened or changed: Window { id: 20, title:
Some("pr-test-title-fix"), app_id: Some("com.mitchellh.ghostty-debug"),
pid: Some(804534), workspace_id: Some(1), is_focused: true, is_floating:
false, is_urgent: false, layout: WindowLayout { pos_in_scrolling_layout:
Some((3, 1)), tile_size: (2266.0, 1365.0), window_size: (2266, 1365),
tile_pos_in_workspace_view: None, window_offset_in_tile: (0.0, 0.0) } }
Window layouts changed: [(6, WindowLayout { pos_in_scrolling_layout:
Some((4, 1)), tile_size: (2266.0, 1365.0), window_size: (2266, 1365),
tile_pos_in_workspace_view: None, window_offset_in_tile: (0.0, 0.0) })]

This fixes the problem as shown in the output. I have only tested this
on Linux (Arch with Niri).
2025-10-10 08:51:05 -07:00
tlj f0da093bdc apprt/gtk: use configured title as fallback for closureComputedTitle 2025-10-10 08:49:59 -07:00
Mitchell Hashimoto 029bcf2d39
gtk4-layer-shell: version from build.zig.zon, reenable ubsan (#9122)
added version read from build.zig.zon
didn't get any ubsan error locally with zig 0.15.1 (related to
https://github.com/ghostty-org/ghostty/issues/5744#issuecomment-2719313984)
2025-10-10 08:45:32 -07:00
Mitchell Hashimoto e0ee10e902
macos: re-enable real update check 2025-10-10 08:44:25 -07:00
Mitchell Hashimoto 9dac88248f
macos: ax for update info 2025-10-10 08:38:50 -07:00
Mitchell Hashimoto 47f3c94640
macos: many more unit tests for update work 2025-10-10 08:34:45 -07:00
Mitchell Hashimoto 6993947a3a
macOS: Make a lot of things more robust 2025-10-10 08:27:30 -07:00
Mitchell Hashimoto ba8eae027e
macos: fixed width for downloading/extracting, better padding 2025-10-10 07:19:25 -07:00
Ēriks Remess 82a5c177fe gtk4-layer-shell: reenable ubsan 2025-10-10 14:40:56 +03:00
Ēriks Remess ce47a85bf7 gtk4-layer-shell: version from build.zig.zon 2025-10-10 14:40:42 +03:00
Mitchell Hashimoto dbe42d9353
deps: update z2d to v0.9.0 (#9110)
Release notes at:
 https://github.com/vancluever/z2d/blob/v0.9.0/CHANGELOG.md

This release brings our Zig 0.15.x branch into main, now that Ghostty is
on it too.

Additionally, this adds major speedups to the default path (filling with
a solid color using the default operator).
2025-10-09 17:39:07 -07:00
Mitchell Hashimoto f124bb4975
macos: Fallback to standard driver when no unobtrusive targets exist 2025-10-09 17:38:24 -07:00
Chris Marchesi 36b3c1fa47
deps: update z2d to v0.9.0
Release notes at:
 https://github.com/vancluever/z2d/blob/v0.9.0/CHANGELOG.md

This release brings our Zig 0.15.x branch into main, now that Ghostty is
on it too.

Additionally, this adds major speedups to the default path (filling with a
solid color using the default operator).
2025-10-09 12:48:52 -07:00
Mitchell Hashimoto f2c7f4ec0f
Get app_version from build.zig.zon .version (#9101)
Reads .version from build.zig.zon and passes it to Config.
2025-10-09 11:11:18 -07:00
Mitchell Hashimoto d0f800c5fb
docs: Update build requirements for macOS (#9095)
Adds the Metal Toolchain as a required Xcode component for building
Ghostty. Also updates the notes about Xcode 26 now that it and Tahoe are
out of Beta.
2025-10-09 11:08:19 -07:00
Mitchell Hashimoto 6e5e726bc2
ci: fix typo (#9097) 2025-10-09 11:08:01 -07:00
Mitchell Hashimoto f2e5b8fb2d
macos: setup the standard sparkle driver for no-window scenario
If there are no windows, we use the standard sparkle driver to drive
the standard window-based update UI.
2025-10-09 08:57:48 -07:00
Mitchell Hashimoto bbf875216f
macos: fix driver for retry to trigger update check again 2025-10-09 08:51:33 -07:00
Ēriks Remess 402c492d94 set minimum required zig version from build.zig.zon in tests and dockerfile 2025-10-09 17:07:58 +03:00
Ēriks Remess ea5ea5f98e set minimum required zig version from build.zig.zon 2025-10-09 16:47:27 +03:00
Ēriks Remess f4b051a84c use app_version from build.zig.zon 2025-10-09 16:02:40 +03:00
Mitchell Hashimoto a2fbaec613
macos: do not build updaters into iOS 2025-10-08 22:18:36 -07:00
Mitchell Hashimoto 49eb65df77
macos: show release notes link 2025-10-08 22:05:03 -07:00
Mitchell Hashimoto abab6899f9
macos: better update descriptions 2025-10-08 21:45:48 -07:00
Mitchell Hashimoto bce49a0843
macos: hook up our new update controller 2025-10-08 21:41:18 -07:00
Mitchell Hashimoto b4ab1cc1ed
macos: clean up the permission request 2025-10-08 21:21:27 -07:00
Mitchell Hashimoto 9e17255ca9
macos: "OK" should dismiss error 2025-10-08 21:16:07 -07:00
Mitchell Hashimoto 95a9e63401
macos: not found state dismisses on click, after 5s 2025-10-08 21:13:34 -07:00
Mitchell Hashimoto a55de09944
macos: update simulator to test various scenarios in UI 2025-10-08 21:09:06 -07:00
Mitchell Hashimoto 59829f5359
Sparkle user driver, drives updates to the view model. 2025-10-08 21:03:04 -07:00
Mitchell Hashimoto 3b2ef4c216
build(deps): bump softprops/action-gh-release from 2.3.4 to 2.4.0 (#9079)
Bumps
[softprops/action-gh-release](https://github.com/softprops/action-gh-release)
from 2.3.4 to 2.4.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/softprops/action-gh-release/releases">softprops/action-gh-release's
releases</a>.</em></p>
<blockquote>
<h2>v2.4.0</h2>
<!-- raw HTML omitted -->
<h2>What's Changed</h2>
<h3>Exciting New Features 🎉</h3>
<ul>
<li>feat(action): respect working_directory for files globs by <a
href="https://github.com/stephenway"><code>@​stephenway</code></a> in <a
href="https://redirect.github.com/softprops/action-gh-release/pull/667">softprops/action-gh-release#667</a></li>
</ul>
<h3>Other Changes 🔄</h3>
<ul>
<li>chore(deps): bump the npm group with 2 updates by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/softprops/action-gh-release/pull/668">softprops/action-gh-release#668</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/softprops/action-gh-release/compare/v2.3.4...v2.4.0">https://github.com/softprops/action-gh-release/compare/v2.3.4...v2.4.0</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md">softprops/action-gh-release's
changelog</a>.</em></p>
<blockquote>
<h2>2.4.0</h2>
<h2>What's Changed</h2>
<h3>Exciting New Features 🎉</h3>
<ul>
<li>feat(action): respect working_directory for files globs by <a
href="https://github.com/stephenway"><code>@​stephenway</code></a> in <a
href="https://redirect.github.com/softprops/action-gh-release/pull/667">softprops/action-gh-release#667</a></li>
</ul>
<h2>2.3.4</h2>
<h2>What's Changed</h2>
<h3>Bug fixes 🐛</h3>
<ul>
<li>fix(action): handle 422 already_exists race condition by <a
href="https://github.com/stephenway"><code>@​stephenway</code></a> in <a
href="https://redirect.github.com/softprops/action-gh-release/pull/665">softprops/action-gh-release#665</a></li>
</ul>
<h3>Other Changes 🔄</h3>
<ul>
<li>dependency updates</li>
</ul>
<h2>2.3.3</h2>
<h2>What's Changed</h2>
<h3>Exciting New Features 🎉</h3>
<ul>
<li>feat: add input option <code>overwrite_files</code> by <a
href="https://github.com/asfernandes"><code>@​asfernandes</code></a> in
<a
href="https://redirect.github.com/softprops/action-gh-release/pull/343">softprops/action-gh-release#343</a></li>
</ul>
<h3>Other Changes 🔄</h3>
<ul>
<li>dependency updates</li>
</ul>
<h2>2.3.2</h2>
<ul>
<li>fix: revert fs <code>readableWebStream</code> change</li>
</ul>
<h2>2.3.1</h2>
<h3>Bug fixes 🐛</h3>
<ul>
<li>fix: fix file closing issue by <a
href="https://github.com/WailGree"><code>@​WailGree</code></a> in <a
href="https://redirect.github.com/softprops/action-gh-release/pull/629">softprops/action-gh-release#629</a></li>
</ul>
<h2>2.3.0</h2>
<ul>
<li>Migrate from jest to vitest</li>
<li>Replace <code>mime</code> with <code>mime-types</code></li>
<li>Bump to use node 24</li>
<li>Dependency updates</li>
</ul>
<h2>2.2.2</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="aec2ec56f9"><code>aec2ec5</code></a>
release 2.4.0</li>
<li><a
href="4db716b167"><code>4db716b</code></a>
feat: respect working_directory for files globs; add input and tests (<a
href="https://redirect.github.com/softprops/action-gh-release/issues/667">#667</a>)</li>
<li><a
href="14820f2cee"><code>14820f2</code></a>
chore(deps): bump the npm group with 2 updates (<a
href="https://redirect.github.com/softprops/action-gh-release/issues/668">#668</a>)</li>
<li>See full diff in <a
href="62c96d0c4e...aec2ec56f9">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=softprops/action-gh-release&package-manager=github_actions&previous-version=2.3.4&new-version=2.4.0)](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>
2025-10-08 20:17:50 -07:00
Mitchell Hashimoto beaac8db8b
build(deps): bump hustcer/milestone-action from 2.9 to 2.11 (#9094)
Bumps
[hustcer/milestone-action](https://github.com/hustcer/milestone-action)
from 2.9 to 2.11.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/hustcer/milestone-action/releases">hustcer/milestone-action's
releases</a>.</em></p>
<blockquote>
<h2>v2.11</h2>
<h2>[2.11] - 2025-10-08</h2>
<h3>Bug Fixes</h3>
<ul>
<li>Fall back to the earliest-created milestone if no due_on set for
milestones (<a
href="https://redirect.github.com/hustcer/milestone-action/issues/145">#145</a>)</li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/hustcer/milestone-action/compare/v2.10...v2.11">https://github.com/hustcer/milestone-action/compare/v2.10...v2.11</a></p>
<h2>v2.10</h2>
<h2>[2.10] - 2025-10-07</h2>
<h3>Features</h3>
<ul>
<li>Try to inherit milestone from closing issues (<a
href="https://redirect.github.com/hustcer/milestone-action/issues/129">#129</a>)</li>
</ul>
<h3>Miscellaneous Tasks</h3>
<ul>
<li>Export guess-milestone-for-pr custom command (<a
href="https://redirect.github.com/hustcer/milestone-action/issues/124">#124</a>)</li>
</ul>
<h3>Deps</h3>
<ul>
<li>Upgrade Nu to v0.107 (<a
href="https://redirect.github.com/hustcer/milestone-action/issues/120">#120</a>)</li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/hustcer/milestone-action/compare/v2.9...v2.10">https://github.com/hustcer/milestone-action/compare/v2.9...v2.10</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/hustcer/milestone-action/blob/main/CHANGELOG.md">hustcer/milestone-action's
changelog</a>.</em></p>
<blockquote>
<h1>Changelog</h1>
<p>All notable changes to this project will be documented in this
file.</p>
<h2>[2.11] - 2025-10-08</h2>
<h3>Bug Fixes</h3>
<ul>
<li>Fall back to the earliest-created milestone if no due_on set for
milestones (<a
href="https://redirect.github.com/hustcer/milestone-action/issues/145">#145</a>)</li>
</ul>
<h2>[2.10] - 2025-10-07</h2>
<h3>Features</h3>
<ul>
<li>Try to inherit milestone from closing issues (<a
href="https://redirect.github.com/hustcer/milestone-action/issues/129">#129</a>)</li>
</ul>
<h3>Miscellaneous Tasks</h3>
<ul>
<li>Export <code>guess-milestone-for-pr</code> custom command (<a
href="https://redirect.github.com/hustcer/milestone-action/issues/124">#124</a>)</li>
</ul>
<h3>Deps</h3>
<ul>
<li>Upgrade Nu to v0.107 (<a
href="https://redirect.github.com/hustcer/milestone-action/issues/120">#120</a>)</li>
</ul>
<h2>[2.9] - 2025-07-26</h2>
<h3>Bug Fixes</h3>
<ul>
<li>Fix getting Nu binary path for Nushell 0.106</li>
</ul>
<h3>Deps</h3>
<ul>
<li>Upgrade Nu to 0.106 and pin <code>hustcer/setup-nu</code> to v3.20
(<a
href="https://redirect.github.com/hustcer/milestone-action/issues/118">#118</a>)</li>
</ul>
<h2>[2.8] - 2025-06-11</h2>
<h3>Miscellaneous Tasks</h3>
<ul>
<li>Upgrade <code>Nu</code> to 0.105 and pin
<code>hustcer/setup-nu</code> to v3.19 (<a
href="https://redirect.github.com/hustcer/milestone-action/issues/117">#117</a>)</li>
</ul>
<h2>[2.7] - 2025-03-22</h2>
<h3>Features</h3>
<ul>
<li>Add DeepSeek Code review support by
<code>hustcer/deepseek-review</code></li>
</ul>
<h3>Deps</h3>
<ul>
<li>Upgrade <code>Nu</code> to <strong>v0.103</strong> (<a
href="https://redirect.github.com/hustcer/milestone-action/issues/114">#114</a>)</li>
<li>Upgrade <code>Nu</code> to v0.102 (<a
href="https://redirect.github.com/hustcer/milestone-action/issues/113">#113</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="bff2091b54"><code>bff2091</code></a>
ci skip</li>
<li><a
href="2c7baeca62"><code>2c7baec</code></a>
fix: Improve int number checking</li>
<li><a
href="efffe97cbe"><code>efffe97</code></a>
Bump to 2.11</li>
<li><a
href="837250188c"><code>8372501</code></a>
fix: Fall back to the earliest-created milestone if no due_on set for
milesto...</li>
<li><a
href="dc568606da"><code>dc56860</code></a>
chore: Code formatting by prettier</li>
<li><a
href="92e0e50802"><code>92e0e50</code></a>
ci skip</li>
<li><a
href="69cb97509e"><code>69cb975</code></a>
Bump to v2.10 (<a
href="https://redirect.github.com/hustcer/milestone-action/issues/142">#142</a>)</li>
<li><a
href="ddb9b7cb59"><code>ddb9b7c</code></a>
fix: Fix query-pr-closing-issues command execution error</li>
<li><a
href="76d2b550e8"><code>76d2b55</code></a>
feat: Try to inherit milestone from closing issues (<a
href="https://redirect.github.com/hustcer/milestone-action/issues/128">#128</a>)
(<a
href="https://redirect.github.com/hustcer/milestone-action/issues/129">#129</a>)</li>
<li><a
href="78368de40a"><code>78368de</code></a>
chore: Export guess-milestone-for-pr custom command (<a
href="https://redirect.github.com/hustcer/milestone-action/issues/124">#124</a>)</li>
<li>Additional commits viewable in <a
href="b57a7e52e9...bff2091b54">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=hustcer/milestone-action&package-manager=github_actions&previous-version=2.9&new-version=2.11)](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>
2025-10-08 20:17:35 -07:00
Zhizhen He dfb32022d4
ci: fix typo 2025-10-09 10:52:52 +08:00
Mike Akers e8ebc6f405 docs: Update build requirements for macOS
Adds the Metal Toolchain as a required Xcode component for building
Ghostty. Also updates the notes about Xcode 26 now that it and Tahoe are
out of Beta.
2025-10-08 21:05:04 -04:00