Skip to content

feat: install.sh warns when a folder above nerd can be written by others - #150

Merged
nyxene merged 2 commits into
masterfrom
feat/86-install-warns-writable-folder
Oct 26, 2026
Merged

nyxene merged 2 commits into
masterfrom
feat/86-install-warns-writable-folder

Conversation

@nyxene

@nyxene nyxene commented Oct 26, 2026

Copy link
Copy Markdown
Contributor

Closes #86

Anyone who can write a folder on the way to nerd can rename it and put their own nerd in its place. install.sh now checks every folder from the install folder up to the home folder and, for one that its group or others can write, says so and how to fix it, then installs as before:

nerd: ~/.local can be written by other users, so one of them could replace nerd; to fix: chmod go-w "/Users/you/.local"
  • A symlinked folder is checked through the folder it points to, the one the install writes through.
  • A folder with the sticky bit is left alone: nobody but an entry's owner can rename it there.
  • A normal home prints nothing new. An install folder outside the home folder is not checked.

Checks: scripts/gates.sh passes, with scripts/install.test.sh covering a normal home, a 777, a sticky 1777 and a group-writable 775 ~/.local, and that nerd is still installed beside the warning. An audit passed; its findings (an unquoted path in the fix, a false warning on a sticky folder) are fixed in the second commit.

🤖 Generated with Claude Code

nyxene and others added 2 commits October 25, 2026 23:14
…ers (#86)

Closes #86

Co-Authored-By: Claude <noreply@anthropic.com>
…ves sticky folders alone

Part of #86

Co-Authored-By: Claude <noreply@anthropic.com>
@nyxene
nyxene merged commit b1371bd into master Oct 26, 2026
1 check passed
@nyxene
nyxene deleted the feat/86-install-warns-writable-folder branch October 26, 2026 12:41
nyxene pushed a commit that referenced this pull request Oct 26, 2026
Release pull request, maintained by release-please. Merging it creates
the tag and a draft GitHub release; then run `scripts/publish-binary.sh
vX.Y.Z` from a terminal to attach the macOS binary and publish the
release.
---


## [0.18.0](v0.17.1...v0.18.0)
(2026-10-26)


### Added

* an agent learns whom it may write to changed, only in its own
commands' output ([#143](#143))
([14c7f8f](14c7f8f))
* install.sh warns when a folder above nerd can be written by others
([#150](#150))
([b1371bd](b1371bd))
* the Messages matrix shows spaces first and opens a pair of spaces on a
press ([#147](#147))
([f9bccf9](f9bccf9))


### Fixed

* a needs-you row names the pane whose agent waits
([#152](#152))
([e59447d](e59447d))
* a pane under heavy load waits for a live broker, and titles keep
following processes when ps is slow
([#153](#153))
([a475310](a475310))
* a process outside nerd is not told to try again while a pane starts
([#138](#138))
([f97eaa8](f97eaa8))
* a sender outside the pane it names is told why it cannot send
([#136](#136))
([1a6192e](1a6192e))
* an agent pane without its hook is not done on every redraw or pause
([#155](#155))
([9c8ad72](9c8ad72))
* every ability in the plugin install and update question is shown
whole, wrapped under its own start
([#151](#151))
([4a538d3](4a538d3))
* text from the socket or another agent can neither drive a terminal nor
hide a forged frame
([#142](#142))
([af1e606](af1e606))
* the New space field has a caret that keys and clicks move, and a
pasted path replaces the prefilled ~/
([#144](#144))
([c87d53c](c87d53c))
* two panes answering each other are not held after eight turns, and
allow-for-an-hour lets them go on
([#148](#148))
([5d7ac9c](5d7ac9c))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

install.sh warns when the folder it installs into can be written by others

1 participant