Mitchell Hashimoto
f479210daf
Rewrite semantic prompt parsing, parse the full spec ( #10427 )
...
Related to #5932
This updates our OSC parser to parse the full OSC 133 specification:
https://gitlab.freedesktop.org/Per_Bothner/specifications/blob/master/proposals/semantic-prompts.md
The logic for handling these events was _unchanged_ from our prior
implementation. This is just a parser-only update. As such, we ignore a
bunch of semantic prompt command we should definitely handle, and
incorrectly handle others. This is the crux of #5932 that I want to head
towards fixing. This PR just contains the parser updates.
I also retained all the Kitty parser extensions.
**AI disclosure:** AI helped a lot of the rote tasks once I manually did
a few. I'm still reviewing this manually but will do so shortly.
2026-01-24 07:04:04 -08:00
Mitchell Hashimoto
34eaad6fc8
gtk: add read-only indicator for surfaces ( #10425 )
...
Fixes : #9889
<img width="850" height="650" alt="image"
src="https://github.com/user-attachments/assets/88c6cc22-1e58-43c3-be63-96c9de9446a2 "
/>
2026-01-23 14:51:19 -08:00
Mitchell Hashimoto
3f006f86a3
lib-vt: fix up the OSC command keys
2026-01-23 14:42:05 -08:00
Mitchell Hashimoto
c98e3e6fc7
terminal/osc: rename the prompt2 file
2026-01-23 14:38:28 -08:00
Mitchell Hashimoto
afea12116d
terminal/osc: Kitty extensions to semantic prompt options
2026-01-23 14:38:06 -08:00
Mitchell Hashimoto
d23722dbd7
terminal: remove old semantic prompt handling
2026-01-23 14:35:10 -08:00
Mitchell Hashimoto
389439b167
terminal: handle semantic prompt same as old
2026-01-23 14:30:27 -08:00
Mitchell Hashimoto
6ce45fb65a
terminal/osc: semantic prompt redraw option from Kitty
2026-01-23 14:19:43 -08:00
Mitchell Hashimoto
9f2808ce40
terminal: stream handles new SemanticPrompt type
2026-01-23 14:14:28 -08:00
Mitchell Hashimoto
edafe86203
terminal/osc: semantic prompt is a struct not tagged union
2026-01-23 14:04:27 -08:00
Mitchell Hashimoto
a9e23c135f
terminal/osc: semantic prompt 'D'
2026-01-23 13:56:29 -08:00
Mitchell Hashimoto
9d1282eb95
terminal/osc: semantic prompt 'C'
2026-01-23 13:44:34 -08:00
Mitchell Hashimoto
7421e78f1e
terminal/osc: semantic prompt 'I'
2026-01-23 13:43:08 -08:00
Mitchell Hashimoto
fdc6a6b10a
terminal/osc: semantic prompt 'B'
2026-01-23 13:39:33 -08:00
Mitchell Hashimoto
0d9216bb5a
terminal/osc: semantic prompt 'N'
2026-01-23 13:37:34 -08:00
Mitchell Hashimoto
39c0f79b8d
terminal/osc: semantic prompt 'P'
2026-01-23 13:35:16 -08:00
Mitchell Hashimoto
7968358234
terminal/osc: semantic prompt options
2026-01-23 13:26:45 -08:00
Mitchell Hashimoto
65c56c7c77
terminal/osc: add 'A'
2026-01-23 13:19:11 -08:00
Mitchell Hashimoto
d040c935e2
terminal/osc: boilerplate new OSC 133 parsing
2026-01-23 13:02:23 -08:00
Jeffrey C. Ollie
f0b4e86ab5
gtk: add read-only indicator for surfaces
...
Fixes : #9889
2026-01-23 12:11:48 -06:00
Mitchell Hashimoto
5de4ff3b98
osc: parse iTerm2 OSC 1337 extensions ( #10417 )
...
Add a framework for parsing iTerm2's OSC 1337 extensions. Implement a
couple (`Copy` and `CurrentDir`) that map easily onto existing OSC
commands.
2026-01-23 08:13:30 -08:00
Jeffrey C. Ollie
e1b82ff398
osc: parse iTerm2 OSC 1337 extensions
...
Add a framework for parsing iTerm2's OSC 1337 extensions. Implement
a couple (`Copy` and `CurrentDir`) that map easily onto existing OSC
commands.
2026-01-22 22:06:39 -06:00
Mitchell Hashimoto
4acd33954a
build(deps): bump actions/checkout from 6.0.1 to 6.0.2 ( #10413 )
...
Bumps [actions/checkout](https://github.com/actions/checkout ) from 6.0.1
to 6.0.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/checkout/releases ">actions/checkout's
releases</a>.</em></p>
<blockquote>
<h2>v6.0.2</h2>
<h2>What's Changed</h2>
<ul>
<li>Add orchestration_id to git user-agent when ACTIONS_ORCHESTRATION_ID
is set by <a
href="https://github.com/TingluoHuang "><code>@TingluoHuang</code></a>
in <a
href="https://redirect.github.com/actions/checkout/pull/2355 ">actions/checkout#2355</a></li>
<li>Fix tag handling: preserve annotations and explicit fetch-tags by <a
href="https://github.com/ericsciple "><code>@ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2356 ">actions/checkout#2356</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/checkout/compare/v6.0.1...v6.0.2 ">https://github.com/actions/checkout/compare/v6.0.1...v6.0.2 </a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/actions/checkout/blob/main/CHANGELOG.md ">actions/checkout's
changelog</a>.</em></p>
<blockquote>
<h1>Changelog</h1>
<h2>v6.0.2</h2>
<ul>
<li>Fix tag handling: preserve annotations and explicit fetch-tags by <a
href="https://github.com/ericsciple "><code>@ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2356 ">actions/checkout#2356</a></li>
</ul>
<h2>v6.0.1</h2>
<ul>
<li>Add worktree support for persist-credentials includeIf by <a
href="https://github.com/ericsciple "><code>@ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2327 ">actions/checkout#2327</a></li>
</ul>
<h2>v6.0.0</h2>
<ul>
<li>Persist creds to a separate file by <a
href="https://github.com/ericsciple "><code>@ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2286 ">actions/checkout#2286</a></li>
<li>Update README to include Node.js 24 support details and requirements
by <a href="https://github.com/salmanmkc "><code>@salmanmkc</code></a>
in <a
href="https://redirect.github.com/actions/checkout/pull/2248 ">actions/checkout#2248</a></li>
</ul>
<h2>v5.0.1</h2>
<ul>
<li>Port v6 cleanup to v5 by <a
href="https://github.com/ericsciple "><code>@ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2301 ">actions/checkout#2301</a></li>
</ul>
<h2>v5.0.0</h2>
<ul>
<li>Update actions checkout to use node 24 by <a
href="https://github.com/salmanmkc "><code>@salmanmkc</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2226 ">actions/checkout#2226</a></li>
</ul>
<h2>v4.3.1</h2>
<ul>
<li>Port v6 cleanup to v4 by <a
href="https://github.com/ericsciple "><code>@ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2305 ">actions/checkout#2305</a></li>
</ul>
<h2>v4.3.0</h2>
<ul>
<li>docs: update README.md by <a
href="https://github.com/motss "><code>@motss</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1971 ">actions/checkout#1971</a></li>
<li>Add internal repos for checking out multiple repositories by <a
href="https://github.com/mouismail "><code>@mouismail</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1977 ">actions/checkout#1977</a></li>
<li>Documentation update - add recommended permissions to Readme by <a
href="https://github.com/benwells "><code>@benwells</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2043 ">actions/checkout#2043</a></li>
<li>Adjust positioning of user email note and permissions heading by <a
href="https://github.com/joshmgross "><code>@joshmgross</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2044 ">actions/checkout#2044</a></li>
<li>Update README.md by <a
href="https://github.com/nebuk89 "><code>@nebuk89</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2194 ">actions/checkout#2194</a></li>
<li>Update CODEOWNERS for actions by <a
href="https://github.com/TingluoHuang "><code>@TingluoHuang</code></a>
in <a
href="https://redirect.github.com/actions/checkout/pull/2224 ">actions/checkout#2224</a></li>
<li>Update package dependencies by <a
href="https://github.com/salmanmkc "><code>@salmanmkc</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2236 ">actions/checkout#2236</a></li>
</ul>
<h2>v4.2.2</h2>
<ul>
<li><code>url-helper.ts</code> now leverages well-known environment
variables by <a href="https://github.com/jww3 "><code>@jww3</code></a>
in <a
href="https://redirect.github.com/actions/checkout/pull/1941 ">actions/checkout#1941</a></li>
<li>Expand unit test coverage for <code>isGhes</code> by <a
href="https://github.com/jww3 "><code>@jww3</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1946 ">actions/checkout#1946</a></li>
</ul>
<h2>v4.2.1</h2>
<ul>
<li>Check out other refs/* by commit if provided, fall back to ref by <a
href="https://github.com/orhantoy "><code>@orhantoy</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1924 ">actions/checkout#1924</a></li>
</ul>
<h2>v4.2.0</h2>
<ul>
<li>Add Ref and Commit outputs by <a
href="https://github.com/lucacome "><code>@lucacome</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1180 ">actions/checkout#1180</a></li>
<li>Dependency updates by <a
href="https://github.com/dependabot "><code>@dependabot</code></a>- <a
href="https://redirect.github.com/actions/checkout/pull/1777 ">actions/checkout#1777</a>,
<a
href="https://redirect.github.com/actions/checkout/pull/1872 ">actions/checkout#1872</a></li>
</ul>
<h2>v4.1.7</h2>
<ul>
<li>Bump the minor-npm-dependencies group across 1 directory with 4
updates by <a
href="https://github.com/dependabot "><code>@dependabot</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1739 ">actions/checkout#1739</a></li>
<li>Bump actions/checkout from 3 to 4 by <a
href="https://github.com/dependabot "><code>@dependabot</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1697 ">actions/checkout#1697</a></li>
<li>Check out other refs/* by commit by <a
href="https://github.com/orhantoy "><code>@orhantoy</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1774 ">actions/checkout#1774</a></li>
<li>Pin actions/checkout's own workflows to a known, good, stable
version. by <a href="https://github.com/jww3 "><code>@jww3</code></a> in
<a
href="https://redirect.github.com/actions/checkout/pull/1776 ">actions/checkout#1776</a></li>
</ul>
<h2>v4.1.6</h2>
<ul>
<li>Check platform to set archive extension appropriately by <a
href="https://github.com/cory-miller "><code>@cory-miller</code></a> in
<a
href="https://redirect.github.com/actions/checkout/pull/1732 ">actions/checkout#1732</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="de0fac2e45 "><code>de0fac2</code></a>
Fix tag handling: preserve annotations and explicit fetch-tags (<a
href="https://redirect.github.com/actions/checkout/issues/2356 ">#2356</a>)</li>
<li><a
href="064fe7f331 "><code>064fe7f</code></a>
Add orchestration_id to git user-agent when ACTIONS_ORCHESTRATION_ID is
set (...</li>
<li>See full diff in <a
href="8e8c483db8...de0fac2e45 ">compare
view</a></li>
</ul>
</details>
<br />
[](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>
2026-01-22 19:47:36 -08:00
dependabot[bot]
6d607f0f1f
build(deps): bump actions/checkout from 6.0.1 to 6.0.2
...
Bumps [actions/checkout](https://github.com/actions/checkout ) from 6.0.1 to 6.0.2.
- [Release notes](https://github.com/actions/checkout/releases )
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md )
- [Commits](8e8c483db8...de0fac2e45 )
---
updated-dependencies:
- dependency-name: actions/checkout
dependency-version: 6.0.2
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-01-23 00:15:25 +00:00
Mitchell Hashimoto
ef19290456
Updated AI usage policy for contributions ( #10412 )
...
Follow up to #8289
The rise of agentic programming has eliminated the natural effort-based
backpressure that previously limited low-effort contributions. It is now
too easy to create large amounts of bad content with minimal effort.
Open source projects have always had poor quality issues, PRs, etc. That
comes with the territory. Unfortunately, the ease and carelessness by
which these are now manifested has increased the "bad" count by 10x if
not more. It's ruining it for the rest of us. This policy is a result of
the bad, and I'm sorry about it.
**Going forward, AI generated contributions will only be allowed for
accepted issues and maintainers.** Drive-by pull requests with AI
generated content will be immediately closed.
**Going further, users who contribute bad AI generated content will be
immediately banned from all future contributions.** This is a
zero-tolerance policy. If you use AI, you are responsible for the
quality of your contributions. If you're using low-effort AI to create
low-effort content, I have no human obligation to help you.
If you are a junior developer who is really trying to learn and get
better, then please put aside the AI, do your best, and I will still
help. I want to help. But I expect effort and organic thinking in
return.
> [!IMPORTANT]
>
> This is not an anti-AI stance. This is an anti-idiot stance. Ghostty
is written with plenty of AI assistance and many of our maintainers use
AI daily. We just want quality contributions, regardless of how they are
made.
2026-01-22 13:08:57 -08:00
Mitchell Hashimoto
f00de7ee4b
Updated AI usage policy for contributions
...
Follow up to #8289
The rise of agentic programming has eliminated the natural effort-based
backpressure that previously limited low-effort contributions. It is
now too easy to create large amounts of bad content with minimal effort.
Open source projects have always had poor quality issues, PRs, etc. That
comes with the territory. Unfortunately, the ease and carelessness by which
these are now manifested has increased the "bad" count by 10x if not more.
It's ruining it for the rest of us. This policy is a result of the bad, and
I'm sorry about it.
**Going forward, AI generated contributions will only be allowed for
accepted issues and maintainers.** Drive-by pull requests with AI generated
content will be immediately closed.
**Going further, users who contribute bad AI generated content will be
immediately banned from all future contributions.** This is a zero-tolerance
policy. If you use AI, you are responsible for the quality of your
contributions. If you're using low-effort AI to create low-effort content,
I have no human obligation to help you.
If you are a junior developer who is really trying to learn and get
better, then please put aside the AI, do your best, and I will still
help. I want to help. But I expect effort and organic thinking in return.
This is not an anti-AI stance. This is an anti-idiot stance. Ghostty is
written with plenty of AI assistance and many of our maintainers use
AI daily. We just want quality contributions, regardless of how they are
made.
2026-01-22 12:21:11 -08:00
Mitchell Hashimoto
2559cfe66a
editorconfig: 2-space indent for Nushell scripts ( #10411 )
...
This aligns with the Topiary format, which appears to be the most
prominent community standard.
https://github.com/blindFS/topiary-nushell
2026-01-22 11:26:55 -08:00
Jon Parise
16a98f5831
editorconfig: 2-space indent for Nushell scripts
...
This aligns with the Topiary format, which appears to be the most
prominent community standard.
https://github.com/blindFS/topiary-nushell
2026-01-22 11:08:29 -08:00
Mitchell Hashimoto
338c9b15aa
splits: make resize_split and toggle_split_zoom non-performable with single pane ( #10376 )
...
Refer to discussion #10000
When a tab contains only a single split, resize_split and
toggle_split_zoom actions now return false (not performed). This allows
keybindings marked with `performable: true` to pass the event through to
the terminal program.
The performable flag causes unperformed actions to be treated as if the
binding didn't exist, so the key event is sent to the terminal instead
of being consumed.
- Add isSplit() helper to SplitTree to detect single-pane vs split state
- Update GTK resizeSplit/toggleSplitZoom to return false when single
pane
- Update macOS resizeSplit/toggleSplitZoom to return Bool and check
isSplit
- Add unit test for isSplit method
2026-01-22 08:23:57 -08:00
Mitchell Hashimoto
72c00e8227
build(deps): bump peter-evans/create-pull-request from 8.0.0 to 8.1.0 ( #10408 )
...
Bumps
[peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request )
from 8.0.0 to 8.1.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/peter-evans/create-pull-request/releases ">peter-evans/create-pull-request's
releases</a>.</em></p>
<blockquote>
<h2>Create Pull Request v8.1.0</h2>
<h2>What's Changed</h2>
<ul>
<li>README.md: bump given GitHub actions to their latest versions by <a
href="https://github.com/deining "><code>@deining</code></a> in <a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/4265 ">peter-evans/create-pull-request#4265</a></li>
<li>build(deps): bump the github-actions group with 2 updates by <a
href="https://github.com/dependabot "><code>@dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/4273 ">peter-evans/create-pull-request#4273</a></li>
<li>build(deps-dev): 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/peter-evans/create-pull-request/pull/4274 ">peter-evans/create-pull-request#4274</a></li>
<li>build(deps-dev): bump undici from 6.22.0 to 6.23.0 by <a
href="https://github.com/dependabot "><code>@dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/4284 ">peter-evans/create-pull-request#4284</a></li>
<li>Update distribution by <a
href="https://github.com/actions-bot "><code>@actions-bot</code></a> in
<a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/4289 ">peter-evans/create-pull-request#4289</a></li>
<li>fix: Handle remote prune failures gracefully on self-hosted runners
by <a
href="https://github.com/peter-evans "><code>@peter-evans</code></a> in
<a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/4295 ">peter-evans/create-pull-request#4295</a></li>
<li>feat: add <code>@octokit/plugin-retry</code> to handle retriable
server errors by <a
href="https://github.com/peter-evans "><code>@peter-evans</code></a> in
<a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/4298 ">peter-evans/create-pull-request#4298</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/deining "><code>@deining</code></a> made
their first contribution in <a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/4265 ">peter-evans/create-pull-request#4265</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/peter-evans/create-pull-request/compare/v8.0.0...v8.1.0 ">https://github.com/peter-evans/create-pull-request/compare/v8.0.0...v8.1.0 </a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="c0f553fe54 "><code>c0f553f</code></a>
feat: add <code>@octokit/plugin-retry</code> to handle retriable server
errors (<a
href="https://redirect.github.com/peter-evans/create-pull-request/issues/4298 ">#4298</a>)</li>
<li><a
href="70001242bf "><code>7000124</code></a>
fix: Handle remote prune failures gracefully (<a
href="https://redirect.github.com/peter-evans/create-pull-request/issues/4295 ">#4295</a>)</li>
<li><a
href="34aa40e9cf "><code>34aa40e</code></a>
build: update distribution (<a
href="https://redirect.github.com/peter-evans/create-pull-request/issues/4289 ">#4289</a>)</li>
<li><a
href="641099ddca "><code>641099d</code></a>
build(deps-dev): bump undici from 6.22.0 to 6.23.0 (<a
href="https://redirect.github.com/peter-evans/create-pull-request/issues/4284 ">#4284</a>)</li>
<li><a
href="2271f1ddcf "><code>2271f1d</code></a>
build(deps-dev): bump the npm group with 2 updates (<a
href="https://redirect.github.com/peter-evans/create-pull-request/issues/4274 ">#4274</a>)</li>
<li><a
href="437c31a11d "><code>437c31a</code></a>
build(deps): bump the github-actions group with 2 updates (<a
href="https://redirect.github.com/peter-evans/create-pull-request/issues/4273 ">#4273</a>)</li>
<li><a
href="0979079bc2 "><code>0979079</code></a>
docs: update readme</li>
<li><a
href="5b751cdf40 "><code>5b751cd</code></a>
README.md: bump given GitHub actions to their latest versions (<a
href="https://redirect.github.com/peter-evans/create-pull-request/issues/4265 ">#4265</a>)</li>
<li>See full diff in <a
href="98357b18bf...c0f553fe54 ">compare
view</a></li>
</ul>
</details>
<br />
[](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>
2026-01-22 07:50:08 -08:00
Mitchell Hashimoto
1003a7e622
feat(macos): focus surface view if search box is manually closed ( #10396 )
...
Currently, if a user clicks the "xmark" button to close the search box,
the main interface does not regain focus until clicked again. This patch
focuses the surface view upon closing.
2026-01-21 18:02:01 -08:00
MrConnorKenway
02d6dc0672
feat(macos): focus surface view if search box is manually closed
2026-01-22 09:25:47 +08:00
dependabot[bot]
3570c2b28f
build(deps): bump peter-evans/create-pull-request from 8.0.0 to 8.1.0
...
Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request ) from 8.0.0 to 8.1.0.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases )
- [Commits](98357b18bf...c0f553fe54 )
---
updated-dependencies:
- dependency-name: peter-evans/create-pull-request
dependency-version: 8.1.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-01-22 00:16:06 +00:00
Mitchell Hashimoto
06e23ef363
tripwire: change backing store from ArrayHashMap to EnumMap ( #10407 )
...
This eliminates all allocation from Tripwire.
Thanks @pluiedev
2026-01-21 15:40:25 -08:00
Mitchell Hashimoto
01f1611c9f
tripwire: change backing store from ArrayHashMap to EnumMap
...
This eliminates all allocation from Tripwire.
2026-01-21 15:30:49 -08:00
Mitchell Hashimoto
fbc1e326d6
Introduce Tripwire to test errdefer and fix some found issues ( #10401 )
...
This adds a new single-file library called "Tripwire" in
`src/tripwire.zig`. This library helps inject failures around `try`
cases for the purpose of testing `errdefer`. It is fully optimized away
in non-test builds (even debug), turning into zero space and zero
assembly.
From this, I've verified (via unit tests w/ tripwire) and fixed a number
of errdefer issues:
* PageList init with non-standard pages that requires more than 1 page
can leak on allocation error on the 2nd+ loop
* Tabstop allocation failure on resize corrupts the internal state
(invalid cols)
* `Screen.selectionString` would leak memory on late allocation failures
* Screen search could leak memory on late allocation failures
* `SharedGrid.renderGlyph` in our font subsystem would corrupt the glyph
cache if failure occurred
* `SharedGrid.init` could leak memory if loading font metrics failed
In addition to the bugs found, there is now tripwire coverage around
more of our core and we should continue to add more. I've also added
significantly more explicit error sets as I found them.
**AI disclosure:** AI wrote some of the tests, but tripwire itself is
all handwritten and everything was reviewed.
2026-01-21 12:50:55 -08:00
Mitchell Hashimoto
3fdff49a82
font: fix memory leak in SharedGrid.init on late failure
...
Add errdefer cleanup for codepoints and glyphs hash maps in init().
Previously, if ensureTotalCapacity or reloadMetrics() failed after
allocating these maps, they would leak.
Add tripwire test to verify all failure points in init().
2026-01-21 12:37:21 -08:00
Mitchell Hashimoto
b606b71cda
font: fix missing errdefer rollback in SharedGrid.renderGlyph
...
Add errdefer to remove cache entry after getOrPut if subsequent
operations fail (getPresentation, atlas.grow, renderGlyph). Without
this, failed renders would leave uninitialized/garbage entries in
the glyph cache, potentially causing crashes or incorrect rendering.
Add tripwire test to verify the rollback behavior.
2026-01-21 12:23:28 -08:00
Mitchell Hashimoto
64ccad3a75
terminal: fix memory leak on error handling in screen search
2026-01-21 12:01:59 -08:00
Jeffrey C. Ollie
5b38e0bd71
OSC 9: Finish parsing all ConEmu OSCs ( #10399 )
...
Adds support for parsing OSC 9;7, 9;8, 9;9, 9;10, 9;11, 9;12
2026-01-21 13:54:38 -06:00
Mitchell Hashimoto
c1b22a8041
terminal: fix leak on error in selectionString
2026-01-21 11:53:25 -08:00
Mitchell Hashimoto
a83bd6a111
font: add tripwire tests to Atlas
2026-01-21 11:34:59 -08:00
Mitchell Hashimoto
82b10ae7af
terminal: explicit error sets in Screen and ScreenSet
2026-01-21 11:34:59 -08:00
Jeffrey C. Ollie
9ee27d2697
OSC 9: Finish parsing all ConEmu OSCs
...
Adds support for parsing OSC 9;7, 9;8, 9;9, 9;10, 9;11, 9;12
2026-01-21 13:34:30 -06:00
Mitchell Hashimoto
3d2152f5e8
terminal: Tabstops fix state corruption on error in resize
2026-01-21 09:50:53 -08:00
Mitchell Hashimoto
baa9dd6b2a
terminal: use tripwire with PageList init, fix an errdefer bug
2026-01-21 09:42:31 -08:00
Mitchell Hashimoto
179a9d4cfa
tripwire: a module for injecting failures to test errdefer
2026-01-21 09:39:02 -08:00
Mitchell Hashimoto
2e1b501d25
nix: clean up flake ( #10234 )
...
- Don't expose package attributes that won't build (e.g. on macOS)
- Make the flake generally easier to read since there's none of that
`builtin.foldl' recursiveUpdate` nonsense anymore
2026-01-21 09:30:32 -08:00
Leah Amelia Chen
8deecac6fb
nix: clean up flake
...
- Don't expose package attributes that won't build (e.g. on macOS)
- Make the flake generally easier to read since there's none of that
`builtin.foldl' recursiveUpdate` nonsense anymore
2026-01-22 01:15:16 +08:00
Steven Lu
ba16ce0249
reintroduce assertion, with adjusted limit
2026-01-21 20:03:37 +07:00