Development record
zsh, the user shell abcd's own sessions run in, reads $name:r, $name:h, $name:t, $name:e and $name:s as history modifiers on an unbraced parameter, so a refspec or a path written "$sha:refs/heads/x" expands to the sha with its last suffix stripped followed by 'efs/heads/x'. On 2026-10-07 this broke a git fetch into a lab snapshot inside a chain whose next step, after a ';', dropped the stash being archived; the objects were restored from the repository within two minutes. The shell-hazard registry teaches rm-after-cd and similar shapes but not this one, and bash does not have it, so a command tested in bash passes and fails in zsh.
zsh, the user shell abcd's own sessions run in, reads $name:r, $name:h, $name:t, $name:e and $name:s as history modifiers on an unbraced parameter, so a refspec or a path written "$sha:refs/heads/x" expands to the sha with its last suffix stripped followed by 'efs/heads/x'. On 2026-10-07 this broke a git fetch into a lab snapshot inside a chain whose next step, after a ';', dropped the stash being archived; the objects were restored from the repository within two minutes. The shell-hazard registry teaches rm-after-cd and similar shapes but not this one, and bash does not have it, so a command tested in bash passes and fails in zsh.
Frontmatter
| id | iss-2610070927488590 |
|---|---|
| type | issue |
| lifecycle | open |
| severity | minor |
.abcd/work/issues/open/iss-2610070927488590-zsh-the-user-shell-abcd-s-own-sessions.md
open on GitHub ↗ · commit history ↗