Commit Graph

14302 Commits

Author SHA1 Message Date
Ben Kircher
d8eb89f384 url: fix matching ~, $VAR, .directory/
Related to #1972

This commit adds three new alternatives for
`rooted_or_relative_path_prefix`:

- `~/`
- `$VAR` and
- `.local/`, `.config/` etc. for dot-prefixed directory names
2026-02-11 09:34:52 +01:00
Ben Kircher
72a894b13b url: remove , from path_chars
Related to #1972

Fixes an issue when paths have embedded comma, e.g.:

    shared/src/foo/SomeItem.m:12, shared/src/

with path_chars greedily consuming the rest of the string.

Now file path matching stops at comma. Scheme URLs are unchanged and
still using the comma.
2026-02-11 09:34:52 +01:00
Ben Kircher
c6e0de0bae url: carefully extend test cases
Extend existing test cases with `~`, `$VAR`, and bare .-prefixed paths
and embedded `,` comma handling.

See following issue comments:

- https://github.com/ghostty-org/ghostty/pull/10570#issuecomment-3853842036
- https://github.com/ghostty-org/ghostty/issues/1972#issuecomment-3859329233
- https://github.com/ghostty-org/ghostty/issues/1972#issuecomment-3857881196
2026-02-11 09:34:52 +01:00
Ben Kircher
f38366b5dc url: update top-level comment 2026-02-11 09:34:52 +01:00
Ben Kircher
16a076bd7f url: refactor regex into documented branches
Break up the big monolithic URL and path regex into named sub-pattern
constants and compose the final expression from three commented
branches:

- URLs with a scheme
- absolute or dot-relative paths
- bare relative paths

This commit only breaks up the regex. It keeps the existing matching
behavior unchanged.
2026-02-11 09:34:52 +01:00
Kat
c1207afbec i18n: update ja_JP translations (#10655)
Ref: https://github.com/ghostty-org/ghostty/issues/10632
2026-02-11 06:21:15 +00:00
Takayuki Nagatomi
bd71e9d155 i18n: update ja_JP translations 2026-02-11 12:27:12 +09:00
phush0
758801d431 Update bg_BG.UTF-8.po (#10639) 2026-02-11 00:21:30 +00:00
Mitchell Hashimoto
f831258c0f elvish: improve the sudoedit detection code (#10587)
The previous logic didn't detect the `e` option when it was combined
with other flags (e.g. `-ie`). This change also attempts to improve the
general readability of this code to be a bit more explicit.
2026-02-10 15:36:36 -08:00
Mitchell Hashimoto
d8dd3e3523 bash: remove dependency on bash-preexec for bash 4.4+ (#10609)
bash-preexec implements support for its "precmd" and "preexec" hooks
using a combination of PROMPT_COMMAND and a DEBUG trap. The latter is
unfortunately quick slow (in a relative sense), and the overall system
is a bit more generalized than what we need for our shell integration
(e.g. supporting multiple function hooks, subshells, etc.).

Bash 4.4 introduced the PS0 variable, which is expanded and displayed by
interactive shells after reading a complete command but before executing
it. This is all we need to implement our own shell integration hooks.

In Bash 5.1, PROMPT_COMMAND can be an array variable, each element of
which can contain a command to be executed like a string PROMPT_COMMAND
variable. When adding our hook to PROMPT_COMMAND, we preserve its type
(string or array) to be minimally intrusive. This also matches direnv's
approach.

Bash 5.3 introduced support for function substitution, which is an even
more efficient way to run code from PS0, so we use that when available.
Otherwise, we use the more traditional command substitution approach.

Earlier versions of bash (such as 3.2, which still ships with macOS)
continue to use the bash-preexec path. This gives us two code paths to
maintain, but I think that's preferable to fully maintaining our own
DEBUG trap-based system for older bash versions given that bash-preexec
has proven to work reliably in those environments. We also wouldn't
unlock any other user benefits aside from removing the bash-preexec
script dependency.

See: #3724, #7734
2026-02-10 15:36:22 -08:00
Mitchell Hashimoto
9e9dfe3ee1 Update iTerm2 colorschemes (#10612)
Upstream release:
https://github.com/mbadolato/iTerm2-Color-Schemes/releases/tag/release-20260202-151632-49169e9
2026-02-10 15:36:09 -08:00
Mitchell Hashimoto
68e0884f7a build(deps): bump namespacelabs/nscloud-cache-action from 1.4.0 to 1.4.1 (#10626)
Bumps
[namespacelabs/nscloud-cache-action](https://github.com/namespacelabs/nscloud-cache-action)
from 1.4.0 to 1.4.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/namespacelabs/nscloud-cache-action/releases">namespacelabs/nscloud-cache-action's
releases</a>.</em></p>
<blockquote>
<h2>v1.4.1</h2>
<h2>What's Changed</h2>
<ul>
<li>Add workflow to rebuild dist on Dependabot PRs by <a
href="https://github.com/rcrowe"><code>@​rcrowe</code></a> in <a
href="https://redirect.github.com/namespacelabs/nscloud-cache-action/pull/95">namespacelabs/nscloud-cache-action#95</a></li>
<li>Add spacectl-system-binary input and update actions toolkit by <a
href="https://github.com/rcrowe"><code>@​rcrowe</code></a> in <a
href="https://redirect.github.com/namespacelabs/nscloud-cache-action/pull/96">namespacelabs/nscloud-cache-action#96</a></li>
<li>Bump the minor-npm-dependencies group across 1 directory with 2
updates by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/namespacelabs/nscloud-cache-action/pull/98">namespacelabs/nscloud-cache-action#98</a></li>
<li>Handle undefined mounts in mount response by <a
href="https://github.com/rcrowe"><code>@​rcrowe</code></a> in <a
href="https://redirect.github.com/namespacelabs/nscloud-cache-action/pull/99">namespacelabs/nscloud-cache-action#99</a></li>
<li>Handle undefined mounts in post phase by <a
href="https://github.com/rcrowe"><code>@​rcrowe</code></a> in <a
href="https://redirect.github.com/namespacelabs/nscloud-cache-action/pull/100">namespacelabs/nscloud-cache-action#100</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/namespacelabs/nscloud-cache-action/compare/v1.4.0...v1.4.1">https://github.com/namespacelabs/nscloud-cache-action/compare/v1.4.0...v1.4.1</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="4d61c33d0b"><code>4d61c33</code></a>
Handle undefined mounts in post phase (<a
href="https://redirect.github.com/namespacelabs/nscloud-cache-action/issues/100">#100</a>)</li>
<li><a
href="8d12890c97"><code>8d12890</code></a>
Handle undefined mounts in mount response (<a
href="https://redirect.github.com/namespacelabs/nscloud-cache-action/issues/99">#99</a>)</li>
<li><a
href="76d2e2e1ae"><code>76d2e2e</code></a>
Bump the minor-npm-dependencies group across 1 directory with 2 updates
(<a
href="https://redirect.github.com/namespacelabs/nscloud-cache-action/issues/98">#98</a>)</li>
<li><a
href="215dc8ca20"><code>215dc8c</code></a>
Add spacectl-system-binary input and update actions toolkit (<a
href="https://redirect.github.com/namespacelabs/nscloud-cache-action/issues/96">#96</a>)</li>
<li><a
href="3245166426"><code>3245166</code></a>
Add workflow to rebuild dist on Dependabot PRs (<a
href="https://redirect.github.com/namespacelabs/nscloud-cache-action/issues/95">#95</a>)</li>
<li>See full diff in <a
href="d985186ac2...4d61c33d0b">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=namespacelabs/nscloud-cache-action&package-manager=github_actions&previous-version=1.4.0&new-version=1.4.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 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>
2026-02-10 15:35:56 -08:00
Gerry Agbobada
960b181df7 i18n: Add fr_FR translations (#10636)
Co-authored-by: flou <flou@proton.me>
2026-02-10 20:54:19 +01:00
Nico Geesink
e41a86820c i18n: Update translations for nl_NL (#10637) 2026-02-10 20:01:02 +01:00
Jeffrey C. Ollie
41924c2d0e feat(nix): enhance overlays (#10628)
uses the `final` fixed point package set as the source of dependencies
for the ghostty package created by the overlay - allows simpler
overriding of dependencies when using the overlay

no AI used
2026-02-09 18:02:09 -06:00
Kat
5726ac8316 i18n: update es_AR Spanish translations for 1.3 (#10641)
Related to https://github.com/ghostty-org/ghostty/issues/10632
2026-02-09 22:25:47 +00:00
Alan Moyano
ed8c06fede i18n: update translation metadata 2026-02-09 17:51:01 -03:00
Alan Moyano
69bcca73d5 i18n: update translation for more consistent look 2026-02-09 17:50:08 -03:00
Alan Moyano
9c0a003c1e i18n: update es_AR Spanish translations for 1.3 2026-02-09 17:44:18 -03:00
Kat
ee7fb9d544 i18n: update uk_UA translation for 1.3 (#10638)
Adding missing Ukrainian translations, as asked for in
https://github.com/ghostty-org/ghostty/issues/10632.
2026-02-09 20:38:18 +00:00
Volodymyr Chernetskyi
34480a060e i18n: update uk_UA translation for 1.3
Signed-off-by: Volodymyr Chernetskyi <19735328+chernetskyi@users.noreply.github.com>
2026-02-09 21:03:07 +01:00
Kat
6763ebc22a New translation: Latvian (#10625)
Added initial version of Latvian translation
2026-02-09 10:33:47 +00:00
Caleb Norton
1284c9d4ba feat(nix): enhance overlays 2026-02-09 00:11:47 -06:00
Ēriks Remess
fd97943b7c Latvian translation, small update 2026-02-09 03:25:27 +02:00
dependabot[bot]
ceba3b1777 build(deps): bump namespacelabs/nscloud-cache-action from 1.4.0 to 1.4.1
Bumps [namespacelabs/nscloud-cache-action](https://github.com/namespacelabs/nscloud-cache-action) from 1.4.0 to 1.4.1.
- [Release notes](https://github.com/namespacelabs/nscloud-cache-action/releases)
- [Commits](d985186ac2...4d61c33d0b)

---
updated-dependencies:
- dependency-name: namespacelabs/nscloud-cache-action
  dependency-version: 1.4.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-09 00:20:48 +00:00
Ēriks Remess
0aef823748 Latvian translation. Updated CODEOWNERS, src/os/i18n_locales.zig 2026-02-09 01:30:34 +02:00
Ēriks Remess
036a152df5 Latvian translation 2026-02-09 01:07:15 +02:00
Jeffrey C. Ollie
da10707f93 chore: sync with nixpkgs (#10624)
updates nixpkgs and home-manager

X11 packages are now not in a shared namespace

the ZIG_GLOBAL_CACHE_DIR creation was moved to the configurePhase in the
zig hook

moves nix shell from #devShell.\<system\> to
#devshells.\<system\>.default

tested with `nix run` and `nix flake check` on x86-64_linux

no AI used
2026-02-08 17:01:45 -06:00
Caleb Norton
1c023c6519 chore: nix typos and deprecations 2026-02-08 16:20:41 -06:00
Caleb Norton
8892714f9b chore: sync with nixpkgs changes 2026-02-08 16:17:50 -06:00
trag1c
2e13ec89bf Fix the checker in "test.translation" CI (#10618)
According to the [Contributors' Guides for
I18n](https://github.com/ghostty-org/ghostty/blob/main/po/README_CONTRIBUTORS.md):

> This file must stay in sync with the list of translatable strings
present in source code or Blueprints at all times. A CI action would be
run for every PR, which checks if the translation template requires any
updates.

Currently, the CI passes even if the POT file is outdated and has not
been updated for a long time. Add `set -euxo pipefail` to
`check-translations.sh` to ensure the CI fails when contributors do not
update the POT file with their changes.

Before:

```
❯ bash .github/scripts/check-translations.sh; echo "status code: $?"
po/com.mitchellh.ghostty.pot:87: this message is used but not defined in /var/folders/sq/_thdhjtd653cbg8c_8_4r6mc0000gn/T/tmp.YxAlAg28KW
po/com.mitchellh.ghostty.pot:91: this message is used but not defined in /var/folders/sq/_thdhjtd653cbg8c_8_4r6mc0000gn/T/tmp.YxAlAg28KW
po/com.mitchellh.ghostty.pot:95: this message is used but not defined in /var/folders/sq/_thdhjtd653cbg8c_8_4r6mc0000gn/T/tmp.YxAlAg28KW
po/com.mitchellh.ghostty.pot:99: this message is used but not defined in /var/folders/sq/_thdhjtd653cbg8c_8_4r6mc0000gn/T/tmp.YxAlAg28KW
po/com.mitchellh.ghostty.pot:103: this message is used but not defined in /var/folders/sq/_thdhjtd653cbg8c_8_4r6mc0000gn/T/tmp.YxAlAg28KW
po/com.mitchellh.ghostty.pot:110: this message is used but not defined in /var/folders/sq/_thdhjtd653cbg8c_8_4r6mc0000gn/T/tmp.YxAlAg28KW
po/com.mitchellh.ghostty.pot:114: this message is used but not defined in /var/folders/sq/_thdhjtd653cbg8c_8_4r6mc0000gn/T/tmp.YxAlAg28KW
po/com.mitchellh.ghostty.pot:126: this message is used but not defined in /var/folders/sq/_thdhjtd653cbg8c_8_4r6mc0000gn/T/tmp.YxAlAg28KW
po/com.mitchellh.ghostty.pot:297: this message is used but not defined in /var/folders/sq/_thdhjtd653cbg8c_8_4r6mc0000gn/T/tmp.YxAlAg28KW
po/com.mitchellh.ghostty.pot:301: this message is used but not defined in /var/folders/sq/_thdhjtd653cbg8c_8_4r6mc0000gn/T/tmp.YxAlAg28KW
po/com.mitchellh.ghostty.pot:305: this message is used but not defined in /var/folders/sq/_thdhjtd653cbg8c_8_4r6mc0000gn/T/tmp.YxAlAg28KW
msgcmp: found 11 fatal errors
status code: 0
```

After:

```
❯ bash .github/scripts/check-translations.sh; echo "status code: $?"
++ mktemp
+ old_pot=/var/folders/sq/_thdhjtd653cbg8c_8_4r6mc0000gn/T/tmp.OfLyQ8IKsR
+ cp po/com.mitchellh.ghostty.pot /var/folders/sq/_thdhjtd653cbg8c_8_4r6mc0000gn/T/tmp.OfLyQ8IKsR
+ zig build update-translations
+ msgcmp /var/folders/sq/_thdhjtd653cbg8c_8_4r6mc0000gn/T/tmp.OfLyQ8IKsR po/com.mitchellh.ghostty.pot --use-untranslated
po/com.mitchellh.ghostty.pot:87: this message is used but not defined in /var/folders/sq/_thdhjtd653cbg8c_8_4r6mc0000gn/T/tmp.OfLyQ8IKsR
po/com.mitchellh.ghostty.pot:91: this message is used but not defined in /var/folders/sq/_thdhjtd653cbg8c_8_4r6mc0000gn/T/tmp.OfLyQ8IKsR
po/com.mitchellh.ghostty.pot:95: this message is used but not defined in /var/folders/sq/_thdhjtd653cbg8c_8_4r6mc0000gn/T/tmp.OfLyQ8IKsR
po/com.mitchellh.ghostty.pot:99: this message is used but not defined in /var/folders/sq/_thdhjtd653cbg8c_8_4r6mc0000gn/T/tmp.OfLyQ8IKsR
po/com.mitchellh.ghostty.pot:103: this message is used but not defined in /var/folders/sq/_thdhjtd653cbg8c_8_4r6mc0000gn/T/tmp.OfLyQ8IKsR
po/com.mitchellh.ghostty.pot:110: this message is used but not defined in /var/folders/sq/_thdhjtd653cbg8c_8_4r6mc0000gn/T/tmp.OfLyQ8IKsR
po/com.mitchellh.ghostty.pot:114: this message is used but not defined in /var/folders/sq/_thdhjtd653cbg8c_8_4r6mc0000gn/T/tmp.OfLyQ8IKsR
po/com.mitchellh.ghostty.pot:126: this message is used but not defined in /var/folders/sq/_thdhjtd653cbg8c_8_4r6mc0000gn/T/tmp.OfLyQ8IKsR
po/com.mitchellh.ghostty.pot:297: this message is used but not defined in /var/folders/sq/_thdhjtd653cbg8c_8_4r6mc0000gn/T/tmp.OfLyQ8IKsR
po/com.mitchellh.ghostty.pot:301: this message is used but not defined in /var/folders/sq/_thdhjtd653cbg8c_8_4r6mc0000gn/T/tmp.OfLyQ8IKsR
po/com.mitchellh.ghostty.pot:305: this message is used but not defined in /var/folders/sq/_thdhjtd653cbg8c_8_4r6mc0000gn/T/tmp.OfLyQ8IKsR
msgcmp: found 11 fatal errors
status code: 1
```
2026-02-08 23:08:27 +01:00
Jon Parise
d0b403304d bash: use PROMPT_COMMAND array form in bash 5.1+
PROMPT_COMMAND array support for introduced in bash 5.1, and it's the
preferred format moving forward. Using the string form is also fine, but
it's easy to be a modern bash citizen here, so let's do so.
2026-02-08 09:40:05 -05:00
Yi-Jyun Pan
b7e35c3d5d i18n: update POT file 2026-02-08 20:30:12 +08:00
Yi-Jyun Pan
15d37c6016 ci: ensure translation check script fails on errors
Add `set -euxo pipefail` to `check-translations.sh` to ensure the CI
fails when contributors do not update the POT file with their changes.
Currently, the CI passes even if the POT file is outdated and the POT
has not been updated for a long time.
2026-02-08 20:29:24 +08:00
mitchellh
90ebe25fdd deps: Update iTerm2 color schemes 2026-02-08 00:23:24 +00:00
Jon Parise
5425569a19 bash: remove dependency on bash-preexec for bash 4.4+
bash-preexec implements support for its "precmd" and "preexec" hooks
using a combination of PROMPT_COMMAND and a DEBUG trap. The latter is
unfortunately quick slow (in a relative sense), and the overall system
is a bit more generalized than what we need for our shell integration
(e.g. supporting multiple function hooks, subshells, etc.).

Bash 4.4 introduced the PS0 variable, which is expanded and displayed by
interactive shells after reading a complete command but before executing
it. This is all we need to implement our own shell integration hooks.

In Bash 5.1, PROMPT_COMMAND can be an array variable, each element of
which can contain a command to be executed like a string PROMPT_COMMAND
variable. When adding our hook to PROMPT_COMMAND, we preserve its type
(string or array) to be minimally intrusive. This also matches direnv's
approach.

Bash 5.3 introduced support for function substitution, which is an even
more efficient way to run code from PS0, so we use that when available.
Otherwise, we use the more traditional command substitution approach.

Earlier versions of bash (such as 3.2, which still ships with macOS)
continue to use the bash-preexec path. This gives us two code paths to
maintain, but I think that's preferable to fully maintaining our own
DEBUG trap-based system for older bash versions given that bash-preexec
has proven to work reliably in those environments. We also wouldn't
unlock any other user benefits aside from removing the bash-preexec
script dependency.

See: #3724, #7734
2026-02-07 15:29:04 -05:00
Jeffrey C. Ollie
6c0e02d113 fix fish shell integration when cancelling a command (#10602)
Cancelling a command should not send `OSC 133;A` as that starts a new
line.

Fixes #10544
2026-02-06 10:20:04 -06:00
Jeffrey C. Ollie
290ad05ea6 fix fish shell integration when cancelling a command
Cancelling a command should not send `OSC 133;A` as that starts a new
line.

Fixes #10544
2026-02-06 09:49:13 -06:00
Mitchell Hashimoto
3cc01155bf build(deps): bump namespacelabs/nscloud-cache-action from 1.3.0 to 1.4.0 (#10573)
Bumps
[namespacelabs/nscloud-cache-action](https://github.com/namespacelabs/nscloud-cache-action)
from 1.3.0 to 1.4.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/namespacelabs/nscloud-cache-action/releases">namespacelabs/nscloud-cache-action's
releases</a>.</em></p>
<blockquote>
<h2>v1.4.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Migrate to <code>@​namespacelabs/actions-toolkit/</code>spacectl by
<a href="https://github.com/rcrowe"><code>@​rcrowe</code></a> in <a
href="https://redirect.github.com/namespacelabs/nscloud-cache-action/pull/82">namespacelabs/nscloud-cache-action#82</a></li>
<li>Remove spacectl-enabled option and legacy code path by <a
href="https://github.com/rcrowe"><code>@​rcrowe</code></a> in <a
href="https://redirect.github.com/namespacelabs/nscloud-cache-action/pull/83">namespacelabs/nscloud-cache-action#83</a></li>
<li>Bump ruby/setup-ruby from 1.286.0 to 1.287.0 in the
minor-actions-dependencies group by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/namespacelabs/nscloud-cache-action/pull/72">namespacelabs/nscloud-cache-action#72</a></li>
<li>Bump cachix/install-nix-action from
bec50b45a8bb06017c42af46702a3f502adcfa9e to
4e002c8ec80594ecd40e759629461e26c8abed15 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/namespacelabs/nscloud-cache-action/pull/73">namespacelabs/nscloud-cache-action#73</a></li>
<li>Bump actions/upload-artifact from 4.6.2 to 6.0.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/namespacelabs/nscloud-cache-action/pull/76">namespacelabs/nscloud-cache-action#76</a></li>
<li>Remove obsolete cache metadata step by <a
href="https://github.com/rcrowe"><code>@​rcrowe</code></a> in <a
href="https://redirect.github.com/namespacelabs/nscloud-cache-action/pull/84">namespacelabs/nscloud-cache-action#84</a></li>
<li>Bump actions/download-artifact from 4.3.0 to 7.0.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/namespacelabs/nscloud-cache-action/pull/74">namespacelabs/nscloud-cache-action#74</a></li>
<li>Bump shivammathur/setup-php from
d59004228537ca90c8dca680592a08a675bf52b6 to
44454db4f0199b8b9685a5d763dc37cbf79108e1 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/namespacelabs/nscloud-cache-action/pull/75">namespacelabs/nscloud-cache-action#75</a></li>
<li>Bump the minor-npm-dependencies group with 4 updates by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/namespacelabs/nscloud-cache-action/pull/77">namespacelabs/nscloud-cache-action#77</a></li>
<li>Rebuild dist by <a
href="https://github.com/rcrowe"><code>@​rcrowe</code></a> in <a
href="https://redirect.github.com/namespacelabs/nscloud-cache-action/pull/85">namespacelabs/nscloud-cache-action#85</a></li>
<li>Bump <code>@​actions/core</code> from 2.0.2 to 3.0.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/namespacelabs/nscloud-cache-action/pull/79">namespacelabs/nscloud-cache-action#79</a></li>
<li>Bump <code>@​actions/io</code> from 2.0.0 to 3.0.2 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/namespacelabs/nscloud-cache-action/pull/80">namespacelabs/nscloud-cache-action#80</a></li>
<li>Bump <code>@​actions/exec</code> from 2.0.0 to 3.0.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/namespacelabs/nscloud-cache-action/pull/81">namespacelabs/nscloud-cache-action#81</a></li>
<li>fix: remove leftover spacectl-enabled references from workflow by <a
href="https://github.com/rcrowe"><code>@​rcrowe</code></a> in <a
href="https://redirect.github.com/namespacelabs/nscloud-cache-action/pull/86">namespacelabs/nscloud-cache-action#86</a></li>
<li>Bump pnpm/action-setup from c5ba7f7862a0f64c1b1a05fbac13e0b8e86ba08c
to 41ff72655975bd51cab0327fa583b6e92b6d3061 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/namespacelabs/nscloud-cache-action/pull/87">namespacelabs/nscloud-cache-action#87</a></li>
<li>Bump browser-actions/setup-chrome from
d2811ded0d087168641bbf52f388afe459d02892 to
b94431e051d1c52dcbe9a7092a4f10f827795416 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/namespacelabs/nscloud-cache-action/pull/88">namespacelabs/nscloud-cache-action#88</a></li>
<li>chore: update <code>@​namespacelabs/actions-toolkit</code> to 0.2.1
by <a href="https://github.com/rcrowe"><code>@​rcrowe</code></a> in <a
href="https://redirect.github.com/namespacelabs/nscloud-cache-action/pull/89">namespacelabs/nscloud-cache-action#89</a></li>
<li>fix: preserve NSC_POWERTOYS_DIR when not overriding by <a
href="https://github.com/rcrowe"><code>@​rcrowe</code></a> in <a
href="https://redirect.github.com/namespacelabs/nscloud-cache-action/pull/92">namespacelabs/nscloud-cache-action#92</a></li>
<li>chore(deps): update <code>@​namespacelabs/actions-toolkit</code> to
0.2.2 by <a href="https://github.com/rcrowe"><code>@​rcrowe</code></a>
in <a
href="https://redirect.github.com/namespacelabs/nscloud-cache-action/pull/93">namespacelabs/nscloud-cache-action#93</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/namespacelabs/nscloud-cache-action/compare/v1...v1.4.0">https://github.com/namespacelabs/nscloud-cache-action/compare/v1...v1.4.0</a></p>
<h2>What's Changed</h2>
<ul>
<li>Migrate to <code>@​namespacelabs/actions-toolkit/</code>spacectl by
<a href="https://github.com/rcrowe"><code>@​rcrowe</code></a> in <a
href="https://redirect.github.com/namespacelabs/nscloud-cache-action/pull/82">namespacelabs/nscloud-cache-action#82</a></li>
<li>Remove spacectl-enabled option and legacy code path by <a
href="https://github.com/rcrowe"><code>@​rcrowe</code></a> in <a
href="https://redirect.github.com/namespacelabs/nscloud-cache-action/pull/83">namespacelabs/nscloud-cache-action#83</a></li>
<li>Bump ruby/setup-ruby from 1.286.0 to 1.287.0 in the
minor-actions-dependencies group by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/namespacelabs/nscloud-cache-action/pull/72">namespacelabs/nscloud-cache-action#72</a></li>
<li>Bump cachix/install-nix-action from
bec50b45a8bb06017c42af46702a3f502adcfa9e to
4e002c8ec80594ecd40e759629461e26c8abed15 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/namespacelabs/nscloud-cache-action/pull/73">namespacelabs/nscloud-cache-action#73</a></li>
<li>Bump actions/upload-artifact from 4.6.2 to 6.0.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/namespacelabs/nscloud-cache-action/pull/76">namespacelabs/nscloud-cache-action#76</a></li>
<li>Remove obsolete cache metadata step by <a
href="https://github.com/rcrowe"><code>@​rcrowe</code></a> in <a
href="https://redirect.github.com/namespacelabs/nscloud-cache-action/pull/84">namespacelabs/nscloud-cache-action#84</a></li>
<li>Bump actions/download-artifact from 4.3.0 to 7.0.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/namespacelabs/nscloud-cache-action/pull/74">namespacelabs/nscloud-cache-action#74</a></li>
<li>Bump shivammathur/setup-php from
d59004228537ca90c8dca680592a08a675bf52b6 to
44454db4f0199b8b9685a5d763dc37cbf79108e1 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/namespacelabs/nscloud-cache-action/pull/75">namespacelabs/nscloud-cache-action#75</a></li>
<li>Bump the minor-npm-dependencies group with 4 updates by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/namespacelabs/nscloud-cache-action/pull/77">namespacelabs/nscloud-cache-action#77</a></li>
<li>Rebuild dist by <a
href="https://github.com/rcrowe"><code>@​rcrowe</code></a> in <a
href="https://redirect.github.com/namespacelabs/nscloud-cache-action/pull/85">namespacelabs/nscloud-cache-action#85</a></li>
<li>Bump <code>@​actions/core</code> from 2.0.2 to 3.0.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/namespacelabs/nscloud-cache-action/pull/79">namespacelabs/nscloud-cache-action#79</a></li>
<li>Bump <code>@​actions/io</code> from 2.0.0 to 3.0.2 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/namespacelabs/nscloud-cache-action/pull/80">namespacelabs/nscloud-cache-action#80</a></li>
<li>Bump <code>@​actions/exec</code> from 2.0.0 to 3.0.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/namespacelabs/nscloud-cache-action/pull/81">namespacelabs/nscloud-cache-action#81</a></li>
<li>fix: remove leftover spacectl-enabled references from workflow by <a
href="https://github.com/rcrowe"><code>@​rcrowe</code></a> in <a
href="https://redirect.github.com/namespacelabs/nscloud-cache-action/pull/86">namespacelabs/nscloud-cache-action#86</a></li>
<li>Bump pnpm/action-setup from c5ba7f7862a0f64c1b1a05fbac13e0b8e86ba08c
to 41ff72655975bd51cab0327fa583b6e92b6d3061 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/namespacelabs/nscloud-cache-action/pull/87">namespacelabs/nscloud-cache-action#87</a></li>
<li>Bump browser-actions/setup-chrome from
d2811ded0d087168641bbf52f388afe459d02892 to
b94431e051d1c52dcbe9a7092a4f10f827795416 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/namespacelabs/nscloud-cache-action/pull/88">namespacelabs/nscloud-cache-action#88</a></li>
<li>chore: update <code>@​namespacelabs/actions-toolkit</code> to 0.2.1
by <a href="https://github.com/rcrowe"><code>@​rcrowe</code></a> in <a
href="https://redirect.github.com/namespacelabs/nscloud-cache-action/pull/89">namespacelabs/nscloud-cache-action#89</a></li>
<li>fix: preserve NSC_POWERTOYS_DIR when not overriding by <a
href="https://github.com/rcrowe"><code>@​rcrowe</code></a> in <a
href="https://redirect.github.com/namespacelabs/nscloud-cache-action/pull/92">namespacelabs/nscloud-cache-action#92</a></li>
<li>chore(deps): update <code>@​namespacelabs/actions-toolkit</code> to
0.2.2 by <a href="https://github.com/rcrowe"><code>@​rcrowe</code></a>
in <a
href="https://redirect.github.com/namespacelabs/nscloud-cache-action/pull/93">namespacelabs/nscloud-cache-action#93</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/namespacelabs/nscloud-cache-action/compare/v1.3.0...v1.4.0">https://github.com/namespacelabs/nscloud-cache-action/compare/v1.3.0...v1.4.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="d985186ac2"><code>d985186</code></a>
chore(deps): update <code>@​namespacelabs/actions-toolkit</code> to
0.2.2 (<a
href="https://redirect.github.com/namespacelabs/nscloud-cache-action/issues/93">#93</a>)</li>
<li><a
href="f187f9f6bd"><code>f187f9f</code></a>
fix: preserve NSC_POWERTOYS_DIR when not overriding (<a
href="https://redirect.github.com/namespacelabs/nscloud-cache-action/issues/92">#92</a>)</li>
<li><a
href="7d05b16be1"><code>7d05b16</code></a>
chore: update <code>@​namespacelabs/actions-toolkit</code> to 0.2.1 (<a
href="https://redirect.github.com/namespacelabs/nscloud-cache-action/issues/89">#89</a>)</li>
<li><a
href="9807a2bc3b"><code>9807a2b</code></a>
Bump browser-actions/setup-chrome (<a
href="https://redirect.github.com/namespacelabs/nscloud-cache-action/issues/88">#88</a>)</li>
<li><a
href="0d1978cbe9"><code>0d1978c</code></a>
Bump pnpm/action-setup (<a
href="https://redirect.github.com/namespacelabs/nscloud-cache-action/issues/87">#87</a>)</li>
<li><a
href="7c5c353ae2"><code>7c5c353</code></a>
fix: remove leftover spacectl-enabled references from workflow (<a
href="https://redirect.github.com/namespacelabs/nscloud-cache-action/issues/86">#86</a>)</li>
<li><a
href="f91c7ae719"><code>f91c7ae</code></a>
Bump <code>@​actions/exec</code> from 2.0.0 to 3.0.0 (<a
href="https://redirect.github.com/namespacelabs/nscloud-cache-action/issues/81">#81</a>)</li>
<li><a
href="b51ae6300a"><code>b51ae63</code></a>
Bump <code>@​actions/io</code> from 2.0.0 to 3.0.2 (<a
href="https://redirect.github.com/namespacelabs/nscloud-cache-action/issues/80">#80</a>)</li>
<li><a
href="0901ed851b"><code>0901ed8</code></a>
Bump <code>@​actions/core</code> from 2.0.2 to 3.0.0 (<a
href="https://redirect.github.com/namespacelabs/nscloud-cache-action/issues/79">#79</a>)</li>
<li><a
href="88504b7130"><code>88504b7</code></a>
Rebuild dist (<a
href="https://redirect.github.com/namespacelabs/nscloud-cache-action/issues/85">#85</a>)</li>
<li>Additional commits viewable in <a
href="a4cc4697b9...d985186ac2">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=namespacelabs/nscloud-cache-action&package-manager=github_actions&previous-version=1.3.0&new-version=1.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 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>
2026-02-05 11:27:57 -08:00
Jon Parise
95a4d1675b elvish: improve the sudoedit detection code
The previous logic didn't detect the `e` option when it was combined
with other flags (e.g. `-ie`). This change also attempts to improve the
general readability of this code to be a bit more explicit.
2026-02-05 11:07:49 -05:00
Jeffrey C. Ollie
ca07f8c3f7 gtk: add two-finger left/right scroll to switch tab pages (#10575)
This adds the ability to use two fingers on a touchpad to scroll left or
right on a Ghostty window to change tab pages. Uses the same basic
machinery as scrolling up and down the scrollback buffer. Scrolling
pages does not wrap around at the start or end of the tabs.
2026-02-05 09:02:37 -06:00
Jon Parise
a9e79ae74f macos: quote input strings used for shell commands (#10583)
When we're building an input string that's explicitly meant to be used
as a shell command, quote it using the same logic as Python's
`shlex.quote` function.

This specifically addresses issues we've seen when open(1)'ing Ghostty
with filename arguments that contain spaces.

See #2633, #3030
2026-02-05 09:45:00 -05:00
Mitchell Hashimoto
6d3c7ba49d 👻 : Add Support For Use of Apple's New API - Core Audio Tap API CATap (#10577)
#### [Core Audio Tap API](https://github.com/insidegui/AudioCap)

There's a new NS permission needed for macos (>14.x) to capture system
audio with the `Core Audio Tap API`. Previously desktop-audio capture
was handled by a different permissions API with GUI & preferences. Both
APIs continue to exist but this newer one has a NS permission we should
include. The "geniuses" have spoken and this API doesn't have public
methods for querying the permissions state. As a strong side-effect of
this "feature", failures due to lack of NS permissions are likely to be
handled poorly by software makers.

---

I've spent [the last 5
days](https://github.com/electron/electron/issues/49607) reviewing
C++/Objective-C Chromium source to hone in on why my DesktopAudioCapture
broke on an electron version update. It is in-fact chromium [started
using](source.chromium.org/chromium/chromium/src/+/ad17e8f8b93d5f34891b06085d373a668918255e)
this new `Core Audio Tap API` and has no fallback to the old API if the
new one fails.

Should be your easiest code-review of the week. Shoutout to the
maintainers/creator, big fan of this Zig based terminal with good shader
support.
2026-02-05 06:37:31 -08:00
Jon Parise
1ff0dd821f macos: quote input strings used for shell commands
When we're building an input string that's explicitly meant to be used
as a shell command, quote (escape) it using the same logic as Python's
shlex.quote function.

This specifically addresses issues we've seen when open(1)'ing Ghostty
with filename arguments that contain spaces.
2026-02-05 09:21:37 -05:00
Bug-Reaper
8a87378f00 👻 : Add Support For Apple's New API - Core Audio Tap API CATap
[Reference](https://github.com/insidegui/AudioCap). This is Apple's latest system for allowing apps to access loopback audio streams eg: Desktop-Audio, Window-Audio, etc...
2026-02-05 00:37:24 -05:00
Jeffrey C. Ollie
dd14ce6752 gtk: add two-finger left/right scroll to switch tab pages
This adds the ability to use two fingers on a touchpad to scroll left
or right on a Ghostty window to change tab pages. Uses the same basic
machinery as scrolling up and down the scrollback buffer. Scrolling
pages does not wrap around at the start or end of the tabs.
2026-02-04 20:23:50 -06:00
dependabot[bot]
4d91e9fcc5 build(deps): bump namespacelabs/nscloud-cache-action from 1.3.0 to 1.4.0
Bumps [namespacelabs/nscloud-cache-action](https://github.com/namespacelabs/nscloud-cache-action) from 1.3.0 to 1.4.0.
- [Release notes](https://github.com/namespacelabs/nscloud-cache-action/releases)
- [Commits](a4cc4697b9...d985186ac2)

---
updated-dependencies:
- dependency-name: namespacelabs/nscloud-cache-action
  dependency-version: 1.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-05 00:13:58 +00:00
Mitchell Hashimoto
b30456d9a8 ci(release-tip): track optional triggering PRs and retain URLs (#10565)
Based on some prior private discussion -- this is needed for the GitHub
bot to correctly dispatch, track, and collect workflow runs based on the
triggering PR.

I'm not sure if covering only `build-macos` is enough and if outputs
from other jobs (like `build-macos-debug-slow`) are also useful here. I
went with just `build-macos` since it's the only one to also link a DMG
(and it sounds the most basic of course).
2026-02-04 14:07:57 -08:00
Mitchell Hashimoto
4878669052 Fix clicking bare relative file paths (#10570)
Related to #1972

The URL regex for file path detection requires paths to start with
`../`, `./`, or `/`. For bare relative paths like
`"src/config/url.zig"`, the regex could only match starting at the first
`/`, producing `"/config/url.zig"` as a result — always dropping the
first part of the path.

Fix: added a third top-level alternative to the regex. This matches bare
relative paths where:

1. The first component is word characters (possibly with dots/dashes):
   `[\w][\w\-.]*\/`
2. The remaining path must contain a dot (via positive lookahead) — this
   requires a file extension to avoid false positives on text like
   `"input/output"`
3. Add a `(?<!\w)\/` instead of `\/` in the existing prefix group — the
   standalone `/` prefix now requires that `/` is not preceded by a word
   character. This prevents `"input/output"` from falsely matching
   `"/output"`

Test cases added:
- src/config/url.zig → matches fully
- app/folder/file.rb:1 → matches with line number
- modified:   src/config/url.zig → matches only the path part
- lib/ghostty/terminal.zig:42:10 → matches with line:col
- some-pkg/src/file.txt more text → stops before trailing text
- input/output and foo/bar → correctly do not match (no file extension)

The issue was nailed down here:

https://github.com/ghostty-org/ghostty/issues/1972#issuecomment-3845717672
2026-02-04 14:07:28 -08:00
Ben Kircher
6c0a17cccf Fix clicking bare relative file paths
Related to #1972

The URL regex for file path detection requires paths to start with
`../`, `./`, or `/`. For bare relative paths like
`"src/config/url.zig"`, the regex could only match starting at the first
`/`, producing `"/config/url.zig"` as a result — always dropping the
first part of the path.

Fix: added a third top-level alternative to the regex. This matches bare
relative paths where:

1. The first component is word characters (possibly with dots/dashes):
   `[\w][\w\-.]*\/`
2. The remaining path must contain a dot (via positive lookahead) — this
   requires a file extension to avoid false positives on text like
   input/output
3. Add a `(?<!\w)\/` instead of `\/` in the existing prefix group — the
   standalone `/` prefix now requires that `/` is not preceded by a word
   character. This prevents `"input/output"` from falsely matching
   `"/output"`

Test cases added:
- src/config/url.zig → matches fully
- app/folder/file.rb:1 → matches with line number
- modified:   src/config/url.zig → matches only the path part
- lib/ghostty/terminal.zig:42:10 → matches with line:col
- some-pkg/src/file.txt more text → stops before trailing text
- input/output and foo/bar → correctly do not match (no file extension)

The issue was nailed down here:
https://github.com/ghostty-org/ghostty/issues/1972#issuecomment-3845717672
2026-02-04 15:17:46 +01:00