<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ghostty.git/src/termio/Exec.zig, branch main</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/ghostty.git/'/>
<entry>
<title>Zig 0.15: Flatpak</title>
<updated>2025-10-03T14:10:43+00:00</updated>
<author>
<name>Mitchell Hashimoto</name>
<email>m@mitchellh.com</email>
</author>
<published>2025-10-02T22:54:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/ghostty.git/commit/?id=4e3e0ed0563f359d8dcba3984d0a094f38049fe0'/>
<id>4e3e0ed0563f359d8dcba3984d0a094f38049fe0</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Zig 0.15: zig build test macOS</title>
<updated>2025-10-03T14:10:43+00:00</updated>
<author>
<name>Mitchell Hashimoto</name>
<email>m@mitchellh.com</email>
</author>
<published>2025-10-02T22:31:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/ghostty.git/commit/?id=01126075322b6661990044a0a6deaae70b3c1001'/>
<id>01126075322b6661990044a0a6deaae70b3c1001</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Zig 0.15: zig build GTK exe</title>
<updated>2025-10-03T14:10:43+00:00</updated>
<author>
<name>Mitchell Hashimoto</name>
<email>m@mitchellh.com</email>
</author>
<published>2025-10-02T21:41:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/ghostty.git/commit/?id=d59d754e29857365940f5e5c2d732b52e8fc00e9'/>
<id>d59d754e29857365940f5e5c2d732b52e8fc00e9</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Zig 0.15: zig build test </title>
<updated>2025-10-03T14:10:43+00:00</updated>
<author>
<name>Mitchell Hashimoto</name>
<email>m@mitchellh.com</email>
</author>
<published>2025-10-01T20:10:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/ghostty.git/commit/?id=cb295b84a0ec274a43da59041fa4a199e799798d'/>
<id>cb295b84a0ec274a43da59041fa4a199e799798d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>terminal: fix test w/ freed config</title>
<updated>2025-09-09T17:31:49+00:00</updated>
<author>
<name>Cheru Berhanu</name>
<email>cheru@cheru.dev</email>
</author>
<published>2025-09-09T17:20:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/ghostty.git/commit/?id=be6cb0f6ce91d3e52cab44c5eaeb0a643f2a91f8'/>
<id>be6cb0f6ce91d3e52cab44c5eaeb0a643f2a91f8</id>
<content type='text'>
this test previously didn't fail when accessing freed members of config
because deiniting `command_arena` was a no-op; `command_arena` was derived
from `arena`, which allocated memory after `command_arena` was created/used
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
this test previously didn't fail when accessing freed members of config
because deiniting `command_arena` was a no-op; `command_arena` was derived
from `arena`, which allocated memory after `command_arena` was created/used
</pre>
</div>
</content>
</entry>
<entry>
<title>terminal: test execCommand w/ freed config</title>
<updated>2025-08-22T22:55:08+00:00</updated>
<author>
<name>Cheru Berhanu</name>
<email>cheru@cheru.dev</email>
</author>
<published>2025-08-22T22:55:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/ghostty.git/commit/?id=d854ecd37403a0781a5e9b72066a3282f5bc6f0b'/>
<id>d854ecd37403a0781a5e9b72066a3282f5bc6f0b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>terminal: fix use-after-free in exec</title>
<updated>2025-08-22T22:22:54+00:00</updated>
<author>
<name>Cheru Berhanu</name>
<email>cheru@cheru.dev</email>
</author>
<published>2025-08-15T00:51:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/ghostty.git/commit/?id=652f6f1deb00d83d7db3c09cbcd932e362cbbe2a'/>
<id>652f6f1deb00d83d7db3c09cbcd932e362cbbe2a</id>
<content type='text'>
This was only an issue on Linux, as MacOS' command is reallocated and
rewritten. We hit this using embedded Ghostty w/o a login shell :p
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This was only an issue on Linux, as MacOS' command is reallocated and
rewritten. We hit this using embedded Ghostty w/o a login shell :p
</pre>
</div>
</content>
</entry>
<entry>
<title>Handle `exec` failures more gracefully</title>
<updated>2025-07-04T04:31:03+00:00</updated>
<author>
<name>Mitchell Hashimoto</name>
<email>m@mitchellh.com</email>
</author>
<published>2025-07-04T04:14:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/ghostty.git/commit/?id=e494d94fb326c043e062ab5f60704e891f927371'/>
<id>e494d94fb326c043e062ab5f60704e891f927371</id>
<content type='text'>
Fixes #7792

Our error handling for `exec` failing within the forked process never
actually worked! It triggered all sorts of issues. We didn't catch this
before because it used to be exceptionally hard to fail an exec because
we used to wrap ALL commands in a `/bin/sh -c`.

However, we now support direction execution, most notably when you do
`ghostty -e &lt;command&gt;` but also via the `direct:` prefix on configured
commands.

This fixes up our exec failure handling by printing a useful error
message and avoiding any errdefers in the child which was causing the
double-close.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixes #7792

Our error handling for `exec` failing within the forked process never
actually worked! It triggered all sorts of issues. We didn't catch this
before because it used to be exceptionally hard to fail an exec because
we used to wrap ALL commands in a `/bin/sh -c`.

However, we now support direction execution, most notably when you do
`ghostty -e &lt;command&gt;` but also via the `direct:` prefix on configured
commands.

This fixes up our exec failure handling by printing a useful error
message and avoiding any errdefers in the child which was causing the
double-close.
</pre>
</div>
</content>
</entry>
<entry>
<title>Do not resolve the symbolic link for the initial working directory</title>
<updated>2025-07-03T14:09:24+00:00</updated>
<author>
<name>Basil Crow</name>
<email>me@basilcrow.com</email>
</author>
<published>2025-07-03T00:37:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/ghostty.git/commit/?id=182f8ddd1a00d9abcdcee5d7179ecabcdd126a0e'/>
<id>182f8ddd1a00d9abcdcee5d7179ecabcdd126a0e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Move child exit handling logic to apprt thread</title>
<updated>2025-06-27T17:36:23+00:00</updated>
<author>
<name>Mitchell Hashimoto</name>
<email>m@mitchellh.com</email>
</author>
<published>2025-06-27T17:23:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/ghostty.git/commit/?id=591ef0f40f5fea31b399827bf2602ad85f44e869'/>
<id>591ef0f40f5fea31b399827bf2602ad85f44e869</id>
<content type='text'>
Fixes #7500
Supersedes #7582

This commit moves the child exit handling logic from the IO thead to the
apprt thread. The IO thread now only sends a `child_exited` message to
the apprt thread with metadata about the exit conditions (exit code,
runtime).

From there, the apprt thread can handle the exit situation however is
necessary. This commit doesn't change the behavior but it does fix the
issue #7500. The behavior is: exit immediately, show abnormal exit
message, wait for user input, etc.

This also gets us closer to #7649.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixes #7500
Supersedes #7582

This commit moves the child exit handling logic from the IO thead to the
apprt thread. The IO thread now only sends a `child_exited` message to
the apprt thread with metadata about the exit conditions (exit code,
runtime).

From there, the apprt thread can handle the exit situation however is
necessary. This commit doesn't change the behavior but it does fix the
issue #7500. The behavior is: exit immediately, show abnormal exit
message, wait for user input, etc.

This also gets us closer to #7649.
</pre>
</div>
</content>
</entry>
</feed>
