Repository navigation
fix(native): unfold dropped and attached file paths - #829
Merged
Merged
Conversation
Paths dropped on a session or attached from its footer were written straight into the PTY, so a drop long enough for Claude Code or Kiro CLI to fold still landed as a chip with Unfold long pastes on. Both now go through terminals.writePaste like every other paste the window writes.
omartelo
added a commit
that referenced
this pull request
Oct 19, 2026
TestSubprocessBudgetOutlivesAGrandchild left its grandchild, a re-run of project.test, asleep for ten seconds past the test. A package that finished sooner left it running the binary go test then deletes, which Windows refuses: "go: unlinkat ...\\project.test.exe: Access is denied" (os-tests on #829, run 39256549322). The grandchild now holds the pipe until the test's cleanup releases it, and the cleanup waits for it to exit. Measured by running the two TestSubprocess tests 20 times and checking for a project.test process right after each run: 20/20 left one before, 0/20 after.
omartelo
added a commit
that referenced
this pull request
Oct 19, 2026
…ws and macOS (#828) * fix(native): open the code and diff views without fontconfig on Windows and macOS godemirror resolves a family name only through fc-match, which Windows and macOS do not ship, so the native window exited at startup there. Build the views from the files fonts.Locate picks on those systems instead. native.yml now runs the native tests on a real Windows runner and opens the window once against a backend, as the macOS job does. * fix(native): draw COLR emoji in color on Windows Segoe UI Emoji stores its glyphs as COLR layers, not the PNG bitmaps (CBDT, sbix) the terminal's rasterizer drew, so emoji came out as plain outlines on Windows. Draw COLR version 0 layers and version 1 paint graphs: solid and gradient fills, transforms, glyph clips and composite modes. The Windows smoke now runs even when the native tests fail. * test(native): read the monospace face as a collection in the COLR painter test macOS's Menlo is a .ttc, which ParseTTF refuses. * test(project): keep git's detached maintenance out of the repository template Since git 2.46 a commit starts `git maintenance run --auto --detach`, which outlives it holding objects/maintenance.lock. initRepo copying the template right after listed the lock and failed to open it once it was gone: "copy repository template: open .git/objects/maintenance.lock: no such file or directory". Measured with the template's build-then-copy under two CPUs of contention: 3 failures in 4800 before, 0 in 4800 with maintenance.auto off, and the commit no longer spawns maintenance at all. * test(project): release the waitdelay grandchild before the test ends TestSubprocessBudgetOutlivesAGrandchild left its grandchild, a re-run of project.test, asleep for ten seconds past the test. A package that finished sooner left it running the binary go test then deletes, which Windows refuses: "go: unlinkat ...\\project.test.exe: Access is denied" (os-tests on #829, run 39256549322). The grandchild now holds the pipe until the test's cleanup releases it, and the cleanup waits for it to exit. Measured by running the two TestSubprocess tests 20 times and checking for a project.test process right after each run: 20/20 left one before, 0/20 after.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Follow-up to #827.
Problem
Paths dropped on a session or attached from its footer were the two native pastes left out of #827: they were written straight into the PTY, so a drop of enough files for Claude Code (over 800 characters) or Kiro CLI to fold still landed as a chip with Unfold long pastes on.
Change
dropFilesandattachFilewrite throughterminals.writePaste. The footer gets it as a field set inmain.go, andattachFiletakes the write instead of callingClient.Writeitself (its two tests passc.Write, a signature change only).docs/ceilings.md: drops and attachments leave the "never unfolded" list. The remaining ceiling (a session whose terminal the window never opened has no height to measure) stays, with why no caller reaches it today: each writes into the session on screen, or waits for a session it just opened to reach its prompt, which only happens after the window started its terminal.CHANGELOG.md: folded into the fix(native): unfold long pastes for Claude Code and Kiro CLI #827 entry, still unreleased.Verification
TestDropOfManyFilesUnfoldsInClaudeCodefails before the fix (drop written once) and passes after.native/:gofmt -l .,go vet ./...,go test ./...clean.