Skip to content

fix(zmux): handle workspace basename collisions - #1741

Merged
donjor merged 1 commit into
hyprwsfrom
fix/zmux-workspace-collision
Oct 14, 2026
Merged

donjor merged 1 commit into
hyprwsfrom
fix/zmux-workspace-collision

Conversation

@donjor-agent

@donjor-agent donjor-agent Bot commented Oct 14, 2026

Copy link
Copy Markdown

🤖 claude/anthropic claude-opus-5-5 (high) · host
with peer-worker pi/openai gpt-6.1-sol (low)

Problem

Two checkouts with the same folder name cannot both open managed zmux shells; failed panes also send input to missing terminals.

Change

Reuse registered bindings and keep free basenames unchanged.
On repository_conflict, retry exactly once with twelve SHA-256 hex characters from the root's realpath appended to its basename; surface any retry failure.
Failed panes discard writes and become read-only, without new retry UI.

Scope and approval

Closes #1727.
Host approved this bounded fix.

Verification

  • Tests: 30 passed, 0 failed.
  • Types: server and web exit 0.
  • Builds: server and web exit 0.
  • Lint: no errors, 8 warnings.
  • Fork CI: exit 0.
  • UI: host grounding and evidence.

Tests cover free names, realpath-based suffixes, existing bindings, bounded retry, non-conflict failures, and ignored failed-pane writes.
No server or browser was started; UI evidence awaits host grounding.

Model: gpt-6.1-sol; harness: Pi.

Fork trailers

Fork-Domain: zmux-estate
Fork-Tier: bugfix
Fork-Upstreamable: no

Fork-Domain: zmux-estate
Fork-Tier: bugfix
Fork-Upstreamable: no
@donjor
donjor marked this pull request as ready for review October 14, 2026 03:47
@donjor
donjor merged commit 3a08c26 into hyprws Oct 14, 2026
@donjor
donjor deleted the fix/zmux-workspace-collision branch October 14, 2026 03:51
donjor added a commit that referenced this pull request Oct 15, 2026
## Problem

Two checkouts with the same folder name cannot both open managed zmux shells; failed panes also send input to missing terminals.

## Change

Reuse registered bindings and keep free basenames unchanged.
On `repository_conflict`, retry exactly once with twelve SHA-256 hex characters from the root's realpath appended to its basename; surface any retry failure.
Failed panes discard writes and become read-only, without new retry UI.

## Scope and approval

Closes #1727.
Host approved this bounded fix.

## Verification

- [x] **Tests:** 30 passed, 0 failed.
- [x] **Types:** server and web exit 0.
- [x] **Builds:** server and web exit 0.
- [x] **Lint:** no errors, 8 warnings.
- [x] **Fork CI:** exit 0.
- [ ] **UI:** host grounding and evidence.

Tests cover free names, realpath-based suffixes, existing bindings, bounded retry, non-conflict failures, and ignored failed-pane writes.
No server or browser was started; UI evidence awaits host grounding.

Model: gpt-6.1-sol; harness: Pi.

## Fork trailers

Fork-Domain: zmux-estate
Fork-Tier: bugfix
Fork-Upstreamable: no
Co-authored-by: donjor <[email protected]>
donjor added a commit that referenced this pull request Oct 15, 2026
## Problem

Two checkouts with the same folder name cannot both open managed zmux shells; failed panes also send input to missing terminals.

## Change

Reuse registered bindings and keep free basenames unchanged.
On `repository_conflict`, retry exactly once with twelve SHA-256 hex characters from the root's realpath appended to its basename; surface any retry failure.
Failed panes discard writes and become read-only, without new retry UI.

## Scope and approval

Closes #1727.
Host approved this bounded fix.

## Verification

- [x] **Tests:** 30 passed, 0 failed.
- [x] **Types:** server and web exit 0.
- [x] **Builds:** server and web exit 0.
- [x] **Lint:** no errors, 8 warnings.
- [x] **Fork CI:** exit 0.
- [ ] **UI:** host grounding and evidence.

Tests cover free names, realpath-based suffixes, existing bindings, bounded retry, non-conflict failures, and ignored failed-pane writes.
No server or browser was started; UI evidence awaits host grounding.

Model: gpt-6.1-sol; harness: Pi.

## Fork trailers

Fork-Domain: zmux-estate
Fork-Tier: bugfix
Fork-Upstreamable: no
Co-authored-by: donjor <[email protected]>
donjor added a commit that referenced this pull request Oct 16, 2026
## Problem

Two checkouts with the same folder name cannot both open managed zmux shells; failed panes also send input to missing terminals.

## Change

Reuse registered bindings and keep free basenames unchanged.
On `repository_conflict`, retry exactly once with twelve SHA-256 hex characters from the root's realpath appended to its basename; surface any retry failure.
Failed panes discard writes and become read-only, without new retry UI.

## Scope and approval

Closes #1727.
Host approved this bounded fix.

## Verification

- [x] **Tests:** 30 passed, 0 failed.
- [x] **Types:** server and web exit 0.
- [x] **Builds:** server and web exit 0.
- [x] **Lint:** no errors, 8 warnings.
- [x] **Fork CI:** exit 0.
- [ ] **UI:** host grounding and evidence.

Tests cover free names, realpath-based suffixes, existing bindings, bounded retry, non-conflict failures, and ignored failed-pane writes.
No server or browser was started; UI evidence awaits host grounding.

Model: gpt-6.1-sol; harness: Pi.

## Fork trailers

Fork-Domain: zmux-estate
Fork-Tier: bugfix
Fork-Upstreamable: no
Co-authored-by: donjor <[email protected]>
donjor added a commit that referenced this pull request Oct 16, 2026
## Problem

Two checkouts with the same folder name cannot both open managed zmux shells; failed panes also send input to missing terminals.

## Change

Reuse registered bindings and keep free basenames unchanged.
On `repository_conflict`, retry exactly once with twelve SHA-256 hex characters from the root's realpath appended to its basename; surface any retry failure.
Failed panes discard writes and become read-only, without new retry UI.

## Scope and approval

Closes #1727.
Host approved this bounded fix.

## Verification

- [x] **Tests:** 30 passed, 0 failed.
- [x] **Types:** server and web exit 0.
- [x] **Builds:** server and web exit 0.
- [x] **Lint:** no errors, 8 warnings.
- [x] **Fork CI:** exit 0.
- [ ] **UI:** host grounding and evidence.

Tests cover free names, realpath-based suffixes, existing bindings, bounded retry, non-conflict failures, and ignored failed-pane writes.
No server or browser was started; UI evidence awaits host grounding.

Model: gpt-6.1-sol; harness: Pi.

## Fork trailers

Fork-Domain: zmux-estate
Fork-Tier: bugfix
Fork-Upstreamable: no
Co-authored-by: donjor <[email protected]>
donjor added a commit that referenced this pull request Oct 18, 2026
## Problem

Two checkouts with the same folder name cannot both open managed zmux shells; failed panes also send input to missing terminals.

## Change

Reuse registered bindings and keep free basenames unchanged.
On `repository_conflict`, retry exactly once with twelve SHA-256 hex characters from the root's realpath appended to its basename; surface any retry failure.
Failed panes discard writes and become read-only, without new retry UI.

## Scope and approval

Closes #1727.
Host approved this bounded fix.

## Verification

- [x] **Tests:** 30 passed, 0 failed.
- [x] **Types:** server and web exit 0.
- [x] **Builds:** server and web exit 0.
- [x] **Lint:** no errors, 8 warnings.
- [x] **Fork CI:** exit 0.
- [ ] **UI:** host grounding and evidence.

Tests cover free names, realpath-based suffixes, existing bindings, bounded retry, non-conflict failures, and ignored failed-pane writes.
No server or browser was started; UI evidence awaits host grounding.

Model: gpt-6.1-sol; harness: Pi.

## Fork trailers

Fork-Domain: zmux-estate
Fork-Tier: bugfix
Fork-Upstreamable: no
Co-authored-by: donjor <[email protected]>
donjor added a commit that referenced this pull request Oct 18, 2026
## Problem

Two checkouts with the same folder name cannot both open managed zmux shells; failed panes also send input to missing terminals.

## Change

Reuse registered bindings and keep free basenames unchanged.
On `repository_conflict`, retry exactly once with twelve SHA-256 hex characters from the root's realpath appended to its basename; surface any retry failure.
Failed panes discard writes and become read-only, without new retry UI.

## Scope and approval

Closes #1727.
Host approved this bounded fix.

## Verification

- [x] **Tests:** 30 passed, 0 failed.
- [x] **Types:** server and web exit 0.
- [x] **Builds:** server and web exit 0.
- [x] **Lint:** no errors, 8 warnings.
- [x] **Fork CI:** exit 0.
- [ ] **UI:** host grounding and evidence.

Tests cover free names, realpath-based suffixes, existing bindings, bounded retry, non-conflict failures, and ignored failed-pane writes.
No server or browser was started; UI evidence awaits host grounding.

Model: gpt-6.1-sol; harness: Pi.

## Fork trailers

Fork-Domain: zmux-estate
Fork-Tier: bugfix
Fork-Upstreamable: no
Co-authored-by: donjor <[email protected]>
donjor added a commit that referenced this pull request Oct 18, 2026
## Problem

Two checkouts with the same folder name cannot both open managed zmux shells; failed panes also send input to missing terminals.

## Change

Reuse registered bindings and keep free basenames unchanged.
On `repository_conflict`, retry exactly once with twelve SHA-256 hex characters from the root's realpath appended to its basename; surface any retry failure.
Failed panes discard writes and become read-only, without new retry UI.

## Scope and approval

Closes #1727.
Host approved this bounded fix.

## Verification

- [x] **Tests:** 30 passed, 0 failed.
- [x] **Types:** server and web exit 0.
- [x] **Builds:** server and web exit 0.
- [x] **Lint:** no errors, 8 warnings.
- [x] **Fork CI:** exit 0.
- [ ] **UI:** host grounding and evidence.

Tests cover free names, realpath-based suffixes, existing bindings, bounded retry, non-conflict failures, and ignored failed-pane writes.
No server or browser was started; UI evidence awaits host grounding.

Model: gpt-6.1-sol; harness: Pi.

## Fork trailers

Fork-Domain: zmux-estate
Fork-Tier: bugfix
Fork-Upstreamable: no
Co-authored-by: donjor <[email protected]>
donjor added a commit that referenced this pull request Oct 19, 2026
## Problem

Two checkouts with the same folder name cannot both open managed zmux shells; failed panes also send input to missing terminals.

## Change

Reuse registered bindings and keep free basenames unchanged.
On `repository_conflict`, retry exactly once with twelve SHA-256 hex characters from the root's realpath appended to its basename; surface any retry failure.
Failed panes discard writes and become read-only, without new retry UI.

## Scope and approval

Closes #1727.
Host approved this bounded fix.

## Verification

- [x] **Tests:** 30 passed, 0 failed.
- [x] **Types:** server and web exit 0.
- [x] **Builds:** server and web exit 0.
- [x] **Lint:** no errors, 8 warnings.
- [x] **Fork CI:** exit 0.
- [ ] **UI:** host grounding and evidence.

Tests cover free names, realpath-based suffixes, existing bindings, bounded retry, non-conflict failures, and ignored failed-pane writes.
No server or browser was started; UI evidence awaits host grounding.

Model: gpt-6.1-sol; harness: Pi.

## Fork trailers

Fork-Domain: zmux-estate
Fork-Tier: bugfix
Fork-Upstreamable: no
Co-authored-by: donjor <[email protected]>
donjor added a commit that referenced this pull request Oct 19, 2026
## Problem

Two checkouts with the same folder name cannot both open managed zmux shells; failed panes also send input to missing terminals.

## Change

Reuse registered bindings and keep free basenames unchanged.
On `repository_conflict`, retry exactly once with twelve SHA-256 hex characters from the root's realpath appended to its basename; surface any retry failure.
Failed panes discard writes and become read-only, without new retry UI.

## Scope and approval

Closes #1727.
Host approved this bounded fix.

## Verification

- [x] **Tests:** 30 passed, 0 failed.
- [x] **Types:** server and web exit 0.
- [x] **Builds:** server and web exit 0.
- [x] **Lint:** no errors, 8 warnings.
- [x] **Fork CI:** exit 0.
- [ ] **UI:** host grounding and evidence.

Tests cover free names, realpath-based suffixes, existing bindings, bounded retry, non-conflict failures, and ignored failed-pane writes.
No server or browser was started; UI evidence awaits host grounding.

Model: gpt-6.1-sol; harness: Pi.

## Fork trailers

Fork-Domain: zmux-estate
Fork-Tier: bugfix
Fork-Upstreamable: no
Co-authored-by: donjor <[email protected]>
donjor added a commit that referenced this pull request Oct 19, 2026
## Problem

Two checkouts with the same folder name cannot both open managed zmux shells; failed panes also send input to missing terminals.

## Change

Reuse registered bindings and keep free basenames unchanged.
On `repository_conflict`, retry exactly once with twelve SHA-256 hex characters from the root's realpath appended to its basename; surface any retry failure.
Failed panes discard writes and become read-only, without new retry UI.

## Scope and approval

Closes #1727.
Host approved this bounded fix.

## Verification

- [x] **Tests:** 30 passed, 0 failed.
- [x] **Types:** server and web exit 0.
- [x] **Builds:** server and web exit 0.
- [x] **Lint:** no errors, 8 warnings.
- [x] **Fork CI:** exit 0.
- [ ] **UI:** host grounding and evidence.

Tests cover free names, realpath-based suffixes, existing bindings, bounded retry, non-conflict failures, and ignored failed-pane writes.
No server or browser was started; UI evidence awaits host grounding.

Model: gpt-6.1-sol; harness: Pi.

## Fork trailers

Fork-Domain: zmux-estate
Fork-Tier: bugfix
Fork-Upstreamable: no
Co-authored-by: donjor <[email protected]>
donjor added a commit that referenced this pull request Oct 20, 2026
## Problem

Two checkouts with the same folder name cannot both open managed zmux shells; failed panes also send input to missing terminals.

## Change

Reuse registered bindings and keep free basenames unchanged.
On `repository_conflict`, retry exactly once with twelve SHA-256 hex characters from the root's realpath appended to its basename; surface any retry failure.
Failed panes discard writes and become read-only, without new retry UI.

## Scope and approval

Closes #1727.
Host approved this bounded fix.

## Verification

- [x] **Tests:** 30 passed, 0 failed.
- [x] **Types:** server and web exit 0.
- [x] **Builds:** server and web exit 0.
- [x] **Lint:** no errors, 8 warnings.
- [x] **Fork CI:** exit 0.
- [ ] **UI:** host grounding and evidence.

Tests cover free names, realpath-based suffixes, existing bindings, bounded retry, non-conflict failures, and ignored failed-pane writes.
No server or browser was started; UI evidence awaits host grounding.

Model: gpt-6.1-sol; harness: Pi.

## Fork trailers

Fork-Domain: zmux-estate
Fork-Tier: bugfix
Fork-Upstreamable: no
Co-authored-by: donjor <[email protected]>
donjor added a commit that referenced this pull request Oct 20, 2026
## Problem

Two checkouts with the same folder name cannot both open managed zmux shells; failed panes also send input to missing terminals.

## Change

Reuse registered bindings and keep free basenames unchanged.
On `repository_conflict`, retry exactly once with twelve SHA-256 hex characters from the root's realpath appended to its basename; surface any retry failure.
Failed panes discard writes and become read-only, without new retry UI.

## Scope and approval

Closes #1727.
Host approved this bounded fix.

## Verification

- [x] **Tests:** 30 passed, 0 failed.
- [x] **Types:** server and web exit 0.
- [x] **Builds:** server and web exit 0.
- [x] **Lint:** no errors, 8 warnings.
- [x] **Fork CI:** exit 0.
- [ ] **UI:** host grounding and evidence.

Tests cover free names, realpath-based suffixes, existing bindings, bounded retry, non-conflict failures, and ignored failed-pane writes.
No server or browser was started; UI evidence awaits host grounding.

Model: gpt-6.1-sol; harness: Pi.

## Fork trailers

Fork-Domain: zmux-estate
Fork-Tier: bugfix
Fork-Upstreamable: no
Co-authored-by: donjor <[email protected]>
donjor added a commit that referenced this pull request Oct 20, 2026
## Problem

Two checkouts with the same folder name cannot both open managed zmux shells; failed panes also send input to missing terminals.

## Change

Reuse registered bindings and keep free basenames unchanged.
On `repository_conflict`, retry exactly once with twelve SHA-256 hex characters from the root's realpath appended to its basename; surface any retry failure.
Failed panes discard writes and become read-only, without new retry UI.

## Scope and approval

Closes #1727.
Host approved this bounded fix.

## Verification

- [x] **Tests:** 30 passed, 0 failed.
- [x] **Types:** server and web exit 0.
- [x] **Builds:** server and web exit 0.
- [x] **Lint:** no errors, 8 warnings.
- [x] **Fork CI:** exit 0.
- [ ] **UI:** host grounding and evidence.

Tests cover free names, realpath-based suffixes, existing bindings, bounded retry, non-conflict failures, and ignored failed-pane writes.
No server or browser was started; UI evidence awaits host grounding.

Model: gpt-6.1-sol; harness: Pi.

## Fork trailers

Fork-Domain: zmux-estate
Fork-Tier: bugfix
Fork-Upstreamable: no
Co-authored-by: donjor <[email protected]>
donjor added a commit that referenced this pull request Oct 20, 2026
## Problem

Two checkouts with the same folder name cannot both open managed zmux shells; failed panes also send input to missing terminals.

## Change

Reuse registered bindings and keep free basenames unchanged.
On `repository_conflict`, retry exactly once with twelve SHA-256 hex characters from the root's realpath appended to its basename; surface any retry failure.
Failed panes discard writes and become read-only, without new retry UI.

## Scope and approval

Closes #1727.
Host approved this bounded fix.

## Verification

- [x] **Tests:** 30 passed, 0 failed.
- [x] **Types:** server and web exit 0.
- [x] **Builds:** server and web exit 0.
- [x] **Lint:** no errors, 8 warnings.
- [x] **Fork CI:** exit 0.
- [ ] **UI:** host grounding and evidence.

Tests cover free names, realpath-based suffixes, existing bindings, bounded retry, non-conflict failures, and ignored failed-pane writes.
No server or browser was started; UI evidence awaits host grounding.

Model: gpt-6.1-sol; harness: Pi.

## Fork trailers

Fork-Domain: zmux-estate
Fork-Tier: bugfix
Fork-Upstreamable: no
Co-authored-by: donjor <[email protected]>
donjor added a commit that referenced this pull request Oct 20, 2026
## Problem

Two checkouts with the same folder name cannot both open managed zmux shells; failed panes also send input to missing terminals.

## Change

Reuse registered bindings and keep free basenames unchanged.
On `repository_conflict`, retry exactly once with twelve SHA-256 hex characters from the root's realpath appended to its basename; surface any retry failure.
Failed panes discard writes and become read-only, without new retry UI.

## Scope and approval

Closes #1727.
Host approved this bounded fix.

## Verification

- [x] **Tests:** 30 passed, 0 failed.
- [x] **Types:** server and web exit 0.
- [x] **Builds:** server and web exit 0.
- [x] **Lint:** no errors, 8 warnings.
- [x] **Fork CI:** exit 0.
- [ ] **UI:** host grounding and evidence.

Tests cover free names, realpath-based suffixes, existing bindings, bounded retry, non-conflict failures, and ignored failed-pane writes.
No server or browser was started; UI evidence awaits host grounding.

Model: gpt-6.1-sol; harness: Pi.

## Fork trailers

Fork-Domain: zmux-estate
Fork-Tier: bugfix
Fork-Upstreamable: no
Co-authored-by: donjor <[email protected]>
donjor added a commit that referenced this pull request Oct 21, 2026
## Problem

Two checkouts with the same folder name cannot both open managed zmux shells; failed panes also send input to missing terminals.

## Change

Reuse registered bindings and keep free basenames unchanged.
On `repository_conflict`, retry exactly once with twelve SHA-256 hex characters from the root's realpath appended to its basename; surface any retry failure.
Failed panes discard writes and become read-only, without new retry UI.

## Scope and approval

Closes #1727.
Host approved this bounded fix.

## Verification

- [x] **Tests:** 30 passed, 0 failed.
- [x] **Types:** server and web exit 0.
- [x] **Builds:** server and web exit 0.
- [x] **Lint:** no errors, 8 warnings.
- [x] **Fork CI:** exit 0.
- [ ] **UI:** host grounding and evidence.

Tests cover free names, realpath-based suffixes, existing bindings, bounded retry, non-conflict failures, and ignored failed-pane writes.
No server or browser was started; UI evidence awaits host grounding.

Model: gpt-6.1-sol; harness: Pi.

## Fork trailers

Fork-Domain: zmux-estate
Fork-Tier: bugfix
Fork-Upstreamable: no
Co-authored-by: donjor <[email protected]>
donjor added a commit that referenced this pull request Oct 21, 2026
## Problem

Two checkouts with the same folder name cannot both open managed zmux shells; failed panes also send input to missing terminals.

## Change

Reuse registered bindings and keep free basenames unchanged.
On `repository_conflict`, retry exactly once with twelve SHA-256 hex characters from the root's realpath appended to its basename; surface any retry failure.
Failed panes discard writes and become read-only, without new retry UI.

## Scope and approval

Closes #1727.
Host approved this bounded fix.

## Verification

- [x] **Tests:** 30 passed, 0 failed.
- [x] **Types:** server and web exit 0.
- [x] **Builds:** server and web exit 0.
- [x] **Lint:** no errors, 8 warnings.
- [x] **Fork CI:** exit 0.
- [ ] **UI:** host grounding and evidence.

Tests cover free names, realpath-based suffixes, existing bindings, bounded retry, non-conflict failures, and ignored failed-pane writes.
No server or browser was started; UI evidence awaits host grounding.

Model: gpt-6.1-sol; harness: Pi.

## Fork trailers

Fork-Domain: zmux-estate
Fork-Tier: bugfix
Fork-Upstreamable: no
Co-authored-by: donjor <[email protected]>
donjor added a commit that referenced this pull request Oct 21, 2026
## Problem

Two checkouts with the same folder name cannot both open managed zmux shells; failed panes also send input to missing terminals.

## Change

Reuse registered bindings and keep free basenames unchanged.
On `repository_conflict`, retry exactly once with twelve SHA-256 hex characters from the root's realpath appended to its basename; surface any retry failure.
Failed panes discard writes and become read-only, without new retry UI.

## Scope and approval

Closes #1727.
Host approved this bounded fix.

## Verification

- [x] **Tests:** 30 passed, 0 failed.
- [x] **Types:** server and web exit 0.
- [x] **Builds:** server and web exit 0.
- [x] **Lint:** no errors, 8 warnings.
- [x] **Fork CI:** exit 0.
- [ ] **UI:** host grounding and evidence.

Tests cover free names, realpath-based suffixes, existing bindings, bounded retry, non-conflict failures, and ignored failed-pane writes.
No server or browser was started; UI evidence awaits host grounding.

Model: gpt-6.1-sol; harness: Pi.

## Fork trailers

Fork-Domain: zmux-estate
Fork-Tier: bugfix
Fork-Upstreamable: no
Co-authored-by: donjor <[email protected]>
donjor added a commit that referenced this pull request Oct 21, 2026
## Problem

Two checkouts with the same folder name cannot both open managed zmux shells; failed panes also send input to missing terminals.

## Change

Reuse registered bindings and keep free basenames unchanged.
On `repository_conflict`, retry exactly once with twelve SHA-256 hex characters from the root's realpath appended to its basename; surface any retry failure.
Failed panes discard writes and become read-only, without new retry UI.

## Scope and approval

Closes #1727.
Host approved this bounded fix.

## Verification

- [x] **Tests:** 30 passed, 0 failed.
- [x] **Types:** server and web exit 0.
- [x] **Builds:** server and web exit 0.
- [x] **Lint:** no errors, 8 warnings.
- [x] **Fork CI:** exit 0.
- [ ] **UI:** host grounding and evidence.

Tests cover free names, realpath-based suffixes, existing bindings, bounded retry, non-conflict failures, and ignored failed-pane writes.
No server or browser was started; UI evidence awaits host grounding.

Model: gpt-6.1-sol; harness: Pi.

## Fork trailers

Fork-Domain: zmux-estate
Fork-Tier: bugfix
Fork-Upstreamable: no
Co-authored-by: donjor <[email protected]>
donjor added a commit that referenced this pull request Oct 21, 2026
## Problem

Two checkouts with the same folder name cannot both open managed zmux shells; failed panes also send input to missing terminals.

## Change

Reuse registered bindings and keep free basenames unchanged.
On `repository_conflict`, retry exactly once with twelve SHA-256 hex characters from the root's realpath appended to its basename; surface any retry failure.
Failed panes discard writes and become read-only, without new retry UI.

## Scope and approval

Closes #1727.
Host approved this bounded fix.

## Verification

- [x] **Tests:** 30 passed, 0 failed.
- [x] **Types:** server and web exit 0.
- [x] **Builds:** server and web exit 0.
- [x] **Lint:** no errors, 8 warnings.
- [x] **Fork CI:** exit 0.
- [ ] **UI:** host grounding and evidence.

Tests cover free names, realpath-based suffixes, existing bindings, bounded retry, non-conflict failures, and ignored failed-pane writes.
No server or browser was started; UI evidence awaits host grounding.

Model: gpt-6.1-sol; harness: Pi.

## Fork trailers

Fork-Domain: zmux-estate
Fork-Tier: bugfix
Fork-Upstreamable: no
Co-authored-by: donjor <[email protected]>
donjor added a commit that referenced this pull request Oct 22, 2026
## Problem

Two checkouts with the same folder name cannot both open managed zmux shells; failed panes also send input to missing terminals.

## Change

Reuse registered bindings and keep free basenames unchanged.
On `repository_conflict`, retry exactly once with twelve SHA-256 hex characters from the root's realpath appended to its basename; surface any retry failure.
Failed panes discard writes and become read-only, without new retry UI.

## Scope and approval

Closes #1727.
Host approved this bounded fix.

## Verification

- [x] **Tests:** 30 passed, 0 failed.
- [x] **Types:** server and web exit 0.
- [x] **Builds:** server and web exit 0.
- [x] **Lint:** no errors, 8 warnings.
- [x] **Fork CI:** exit 0.
- [ ] **UI:** host grounding and evidence.

Tests cover free names, realpath-based suffixes, existing bindings, bounded retry, non-conflict failures, and ignored failed-pane writes.
No server or browser was started; UI evidence awaits host grounding.

Model: gpt-6.1-sol; harness: Pi.

## Fork trailers

Fork-Domain: zmux-estate
Fork-Tier: bugfix
Fork-Upstreamable: no
Co-authored-by: donjor <[email protected]>
donjor added a commit that referenced this pull request Oct 22, 2026
## Problem

Two checkouts with the same folder name cannot both open managed zmux shells; failed panes also send input to missing terminals.

## Change

Reuse registered bindings and keep free basenames unchanged.
On `repository_conflict`, retry exactly once with twelve SHA-256 hex characters from the root's realpath appended to its basename; surface any retry failure.
Failed panes discard writes and become read-only, without new retry UI.

## Scope and approval

Closes #1727.
Host approved this bounded fix.

## Verification

- [x] **Tests:** 30 passed, 0 failed.
- [x] **Types:** server and web exit 0.
- [x] **Builds:** server and web exit 0.
- [x] **Lint:** no errors, 8 warnings.
- [x] **Fork CI:** exit 0.
- [ ] **UI:** host grounding and evidence.

Tests cover free names, realpath-based suffixes, existing bindings, bounded retry, non-conflict failures, and ignored failed-pane writes.
No server or browser was started; UI evidence awaits host grounding.

Model: gpt-6.1-sol; harness: Pi.

## Fork trailers

Fork-Domain: zmux-estate
Fork-Tier: bugfix
Fork-Upstreamable: no
Co-authored-by: donjor <[email protected]>
donjor added a commit that referenced this pull request Oct 23, 2026
## Problem

Two checkouts with the same folder name cannot both open managed zmux shells; failed panes also send input to missing terminals.

## Change

Reuse registered bindings and keep free basenames unchanged.
On `repository_conflict`, retry exactly once with twelve SHA-256 hex characters from the root's realpath appended to its basename; surface any retry failure.
Failed panes discard writes and become read-only, without new retry UI.

## Scope and approval

Closes #1727.
Host approved this bounded fix.

## Verification

- [x] **Tests:** 30 passed, 0 failed.
- [x] **Types:** server and web exit 0.
- [x] **Builds:** server and web exit 0.
- [x] **Lint:** no errors, 8 warnings.
- [x] **Fork CI:** exit 0.
- [ ] **UI:** host grounding and evidence.

Tests cover free names, realpath-based suffixes, existing bindings, bounded retry, non-conflict failures, and ignored failed-pane writes.
No server or browser was started; UI evidence awaits host grounding.

Model: gpt-6.1-sol; harness: Pi.

## Fork trailers

Fork-Domain: zmux-estate
Fork-Tier: bugfix
Fork-Upstreamable: no
Co-authored-by: donjor <[email protected]>
donjor added a commit that referenced this pull request Oct 24, 2026
## Problem

Two checkouts with the same folder name cannot both open managed zmux shells; failed panes also send input to missing terminals.

## Change

Reuse registered bindings and keep free basenames unchanged.
On `repository_conflict`, retry exactly once with twelve SHA-256 hex characters from the root's realpath appended to its basename; surface any retry failure.
Failed panes discard writes and become read-only, without new retry UI.

## Scope and approval

Closes #1727.
Host approved this bounded fix.

## Verification

- [x] **Tests:** 30 passed, 0 failed.
- [x] **Types:** server and web exit 0.
- [x] **Builds:** server and web exit 0.
- [x] **Lint:** no errors, 8 warnings.
- [x] **Fork CI:** exit 0.
- [ ] **UI:** host grounding and evidence.

Tests cover free names, realpath-based suffixes, existing bindings, bounded retry, non-conflict failures, and ignored failed-pane writes.
No server or browser was started; UI evidence awaits host grounding.

Model: gpt-6.1-sol; harness: Pi.

## Fork trailers

Fork-Domain: zmux-estate
Fork-Tier: bugfix
Fork-Upstreamable: no
Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot pushed a commit that referenced this pull request Oct 29, 2026
## Problem

Two checkouts with the same folder name cannot both open managed zmux shells; failed panes also send input to missing terminals.

## Change

Reuse registered bindings and keep free basenames unchanged.
On `repository_conflict`, retry exactly once with twelve SHA-256 hex characters from the root's realpath appended to its basename; surface any retry failure.
Failed panes discard writes and become read-only, without new retry UI.

## Scope and approval

Closes #1727.
Host approved this bounded fix.

## Verification

- [x] **Tests:** 30 passed, 0 failed.
- [x] **Types:** server and web exit 0.
- [x] **Builds:** server and web exit 0.
- [x] **Lint:** no errors, 8 warnings.
- [x] **Fork CI:** exit 0.
- [ ] **UI:** host grounding and evidence.

Tests cover free names, realpath-based suffixes, existing bindings, bounded retry, non-conflict failures, and ignored failed-pane writes.
No server or browser was started; UI evidence awaits host grounding.

Model: gpt-6.1-sol; harness: Pi.

## Fork trailers

Fork-Domain: zmux-estate
Fork-Tier: bugfix
Fork-Upstreamable: no
Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot pushed a commit that referenced this pull request Oct 30, 2026
## Problem

Two checkouts with the same folder name cannot both open managed zmux shells; failed panes also send input to missing terminals.

## Change

Reuse registered bindings and keep free basenames unchanged.
On `repository_conflict`, retry exactly once with twelve SHA-256 hex characters from the root's realpath appended to its basename; surface any retry failure.
Failed panes discard writes and become read-only, without new retry UI.

## Scope and approval

Closes #1727.
Host approved this bounded fix.

## Verification

- [x] **Tests:** 30 passed, 0 failed.
- [x] **Types:** server and web exit 0.
- [x] **Builds:** server and web exit 0.
- [x] **Lint:** no errors, 8 warnings.
- [x] **Fork CI:** exit 0.
- [ ] **UI:** host grounding and evidence.

Tests cover free names, realpath-based suffixes, existing bindings, bounded retry, non-conflict failures, and ignored failed-pane writes.
No server or browser was started; UI evidence awaits host grounding.

Model: gpt-6.1-sol; harness: Pi.

## Fork trailers

Fork-Domain: zmux-estate
Fork-Tier: bugfix
Fork-Upstreamable: no
Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot pushed a commit that referenced this pull request Oct 30, 2026
## Problem

Two checkouts with the same folder name cannot both open managed zmux shells; failed panes also send input to missing terminals.

## Change

Reuse registered bindings and keep free basenames unchanged.
On `repository_conflict`, retry exactly once with twelve SHA-256 hex characters from the root's realpath appended to its basename; surface any retry failure.
Failed panes discard writes and become read-only, without new retry UI.

## Scope and approval

Closes #1727.
Host approved this bounded fix.

## Verification

- [x] **Tests:** 30 passed, 0 failed.
- [x] **Types:** server and web exit 0.
- [x] **Builds:** server and web exit 0.
- [x] **Lint:** no errors, 8 warnings.
- [x] **Fork CI:** exit 0.
- [ ] **UI:** host grounding and evidence.

Tests cover free names, realpath-based suffixes, existing bindings, bounded retry, non-conflict failures, and ignored failed-pane writes.
No server or browser was started; UI evidence awaits host grounding.

Model: gpt-6.1-sol; harness: Pi.

## Fork trailers

Fork-Domain: zmux-estate
Fork-Tier: bugfix
Fork-Upstreamable: no
Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot pushed a commit that referenced this pull request Oct 30, 2026
## Problem

Two checkouts with the same folder name cannot both open managed zmux shells; failed panes also send input to missing terminals.

## Change

Reuse registered bindings and keep free basenames unchanged.
On `repository_conflict`, retry exactly once with twelve SHA-256 hex characters from the root's realpath appended to its basename; surface any retry failure.
Failed panes discard writes and become read-only, without new retry UI.

## Scope and approval

Closes #1727.
Host approved this bounded fix.

## Verification

- [x] **Tests:** 30 passed, 0 failed.
- [x] **Types:** server and web exit 0.
- [x] **Builds:** server and web exit 0.
- [x] **Lint:** no errors, 8 warnings.
- [x] **Fork CI:** exit 0.
- [ ] **UI:** host grounding and evidence.

Tests cover free names, realpath-based suffixes, existing bindings, bounded retry, non-conflict failures, and ignored failed-pane writes.
No server or browser was started; UI evidence awaits host grounding.

Model: gpt-6.1-sol; harness: Pi.

## Fork trailers

Fork-Domain: zmux-estate
Fork-Tier: bugfix
Fork-Upstreamable: no
Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot pushed a commit that referenced this pull request Oct 31, 2026
## Problem

Two checkouts with the same folder name cannot both open managed zmux shells; failed panes also send input to missing terminals.

## Change

Reuse registered bindings and keep free basenames unchanged.
On `repository_conflict`, retry exactly once with twelve SHA-256 hex characters from the root's realpath appended to its basename; surface any retry failure.
Failed panes discard writes and become read-only, without new retry UI.

## Scope and approval

Closes #1727.
Host approved this bounded fix.

## Verification

- [x] **Tests:** 30 passed, 0 failed.
- [x] **Types:** server and web exit 0.
- [x] **Builds:** server and web exit 0.
- [x] **Lint:** no errors, 8 warnings.
- [x] **Fork CI:** exit 0.
- [ ] **UI:** host grounding and evidence.

Tests cover free names, realpath-based suffixes, existing bindings, bounded retry, non-conflict failures, and ignored failed-pane writes.
No server or browser was started; UI evidence awaits host grounding.

Model: gpt-6.1-sol; harness: Pi.

## Fork trailers

Fork-Domain: zmux-estate
Fork-Tier: bugfix
Fork-Upstreamable: no
Co-authored-by: donjor <[email protected]>
donjor added a commit that referenced this pull request Nov 6, 2026
## Problem

Two checkouts with the same folder name cannot both open managed zmux shells; failed panes also send input to missing terminals.

## Change

Reuse registered bindings and keep free basenames unchanged.
On `repository_conflict`, retry exactly once with twelve SHA-256 hex characters from the root's realpath appended to its basename; surface any retry failure.
Failed panes discard writes and become read-only, without new retry UI.

## Scope and approval

Closes #1727.
Host approved this bounded fix.

## Verification

- [x] **Tests:** 30 passed, 0 failed.
- [x] **Types:** server and web exit 0.
- [x] **Builds:** server and web exit 0.
- [x] **Lint:** no errors, 8 warnings.
- [x] **Fork CI:** exit 0.
- [ ] **UI:** host grounding and evidence.

Tests cover free names, realpath-based suffixes, existing bindings, bounded retry, non-conflict failures, and ignored failed-pane writes.
No server or browser was started; UI evidence awaits host grounding.

Model: gpt-6.1-sol; harness: Pi.

## Fork trailers

Fork-Domain: zmux-estate
Fork-Tier: bugfix
Fork-Upstreamable: no
Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot pushed a commit that referenced this pull request Nov 6, 2026
## Problem

Two checkouts with the same folder name cannot both open managed zmux shells; failed panes also send input to missing terminals.

## Change

Reuse registered bindings and keep free basenames unchanged.
On `repository_conflict`, retry exactly once with twelve SHA-256 hex characters from the root's realpath appended to its basename; surface any retry failure.
Failed panes discard writes and become read-only, without new retry UI.

## Scope and approval

Closes #1727.
Host approved this bounded fix.

## Verification

- [x] **Tests:** 30 passed, 0 failed.
- [x] **Types:** server and web exit 0.
- [x] **Builds:** server and web exit 0.
- [x] **Lint:** no errors, 8 warnings.
- [x] **Fork CI:** exit 0.
- [ ] **UI:** host grounding and evidence.

Tests cover free names, realpath-based suffixes, existing bindings, bounded retry, non-conflict failures, and ignored failed-pane writes.
No server or browser was started; UI evidence awaits host grounding.

Model: gpt-6.1-sol; harness: Pi.

## Fork trailers

Fork-Domain: zmux-estate
Fork-Tier: bugfix
Fork-Upstreamable: no
Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot pushed a commit that referenced this pull request Nov 6, 2026
## Problem

Two checkouts with the same folder name cannot both open managed zmux shells; failed panes also send input to missing terminals.

## Change

Reuse registered bindings and keep free basenames unchanged.
On `repository_conflict`, retry exactly once with twelve SHA-256 hex characters from the root's realpath appended to its basename; surface any retry failure.
Failed panes discard writes and become read-only, without new retry UI.

## Scope and approval

Closes #1727.
Host approved this bounded fix.

## Verification

- [x] **Tests:** 30 passed, 0 failed.
- [x] **Types:** server and web exit 0.
- [x] **Builds:** server and web exit 0.
- [x] **Lint:** no errors, 8 warnings.
- [x] **Fork CI:** exit 0.
- [ ] **UI:** host grounding and evidence.

Tests cover free names, realpath-based suffixes, existing bindings, bounded retry, non-conflict failures, and ignored failed-pane writes.
No server or browser was started; UI evidence awaits host grounding.

Model: gpt-6.1-sol; harness: Pi.

## Fork trailers

Fork-Domain: zmux-estate
Fork-Tier: bugfix
Fork-Upstreamable: no
Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot pushed a commit that referenced this pull request Nov 6, 2026
## Problem

Two checkouts with the same folder name cannot both open managed zmux shells; failed panes also send input to missing terminals.

## Change

Reuse registered bindings and keep free basenames unchanged.
On `repository_conflict`, retry exactly once with twelve SHA-256 hex characters from the root's realpath appended to its basename; surface any retry failure.
Failed panes discard writes and become read-only, without new retry UI.

## Scope and approval

Closes #1727.
Host approved this bounded fix.

## Verification

- [x] **Tests:** 30 passed, 0 failed.
- [x] **Types:** server and web exit 0.
- [x] **Builds:** server and web exit 0.
- [x] **Lint:** no errors, 8 warnings.
- [x] **Fork CI:** exit 0.
- [ ] **UI:** host grounding and evidence.

Tests cover free names, realpath-based suffixes, existing bindings, bounded retry, non-conflict failures, and ignored failed-pane writes.
No server or browser was started; UI evidence awaits host grounding.

Model: gpt-6.1-sol; harness: Pi.

## Fork trailers

Fork-Domain: zmux-estate
Fork-Tier: bugfix
Fork-Upstreamable: no
Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot pushed a commit that referenced this pull request Nov 6, 2026
## Problem

Two checkouts with the same folder name cannot both open managed zmux shells; failed panes also send input to missing terminals.

## Change

Reuse registered bindings and keep free basenames unchanged.
On `repository_conflict`, retry exactly once with twelve SHA-256 hex characters from the root's realpath appended to its basename; surface any retry failure.
Failed panes discard writes and become read-only, without new retry UI.

## Scope and approval

Closes #1727.
Host approved this bounded fix.

## Verification

- [x] **Tests:** 30 passed, 0 failed.
- [x] **Types:** server and web exit 0.
- [x] **Builds:** server and web exit 0.
- [x] **Lint:** no errors, 8 warnings.
- [x] **Fork CI:** exit 0.
- [ ] **UI:** host grounding and evidence.

Tests cover free names, realpath-based suffixes, existing bindings, bounded retry, non-conflict failures, and ignored failed-pane writes.
No server or browser was started; UI evidence awaits host grounding.

Model: gpt-6.1-sol; harness: Pi.

## Fork trailers

Fork-Domain: zmux-estate
Fork-Tier: bugfix
Fork-Upstreamable: no
Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot pushed a commit that referenced this pull request Nov 6, 2026
## Problem

Two checkouts with the same folder name cannot both open managed zmux shells; failed panes also send input to missing terminals.

## Change

Reuse registered bindings and keep free basenames unchanged.
On `repository_conflict`, retry exactly once with twelve SHA-256 hex characters from the root's realpath appended to its basename; surface any retry failure.
Failed panes discard writes and become read-only, without new retry UI.

## Scope and approval

Closes #1727.
Host approved this bounded fix.

## Verification

- [x] **Tests:** 30 passed, 0 failed.
- [x] **Types:** server and web exit 0.
- [x] **Builds:** server and web exit 0.
- [x] **Lint:** no errors, 8 warnings.
- [x] **Fork CI:** exit 0.
- [ ] **UI:** host grounding and evidence.

Tests cover free names, realpath-based suffixes, existing bindings, bounded retry, non-conflict failures, and ignored failed-pane writes.
No server or browser was started; UI evidence awaits host grounding.

Model: gpt-6.1-sol; harness: Pi.

## Fork trailers

Fork-Domain: zmux-estate
Fork-Tier: bugfix
Fork-Upstreamable: no
Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot pushed a commit that referenced this pull request Nov 6, 2026
## Problem

Two checkouts with the same folder name cannot both open managed zmux shells; failed panes also send input to missing terminals.

## Change

Reuse registered bindings and keep free basenames unchanged.
On `repository_conflict`, retry exactly once with twelve SHA-256 hex characters from the root's realpath appended to its basename; surface any retry failure.
Failed panes discard writes and become read-only, without new retry UI.

## Scope and approval

Closes #1727.
Host approved this bounded fix.

## Verification

- [x] **Tests:** 30 passed, 0 failed.
- [x] **Types:** server and web exit 0.
- [x] **Builds:** server and web exit 0.
- [x] **Lint:** no errors, 8 warnings.
- [x] **Fork CI:** exit 0.
- [ ] **UI:** host grounding and evidence.

Tests cover free names, realpath-based suffixes, existing bindings, bounded retry, non-conflict failures, and ignored failed-pane writes.
No server or browser was started; UI evidence awaits host grounding.

Model: gpt-6.1-sol; harness: Pi.

## Fork trailers

Fork-Domain: zmux-estate
Fork-Tier: bugfix
Fork-Upstreamable: no
Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot pushed a commit that referenced this pull request Nov 7, 2026
## Problem

Two checkouts with the same folder name cannot both open managed zmux shells; failed panes also send input to missing terminals.

## Change

Reuse registered bindings and keep free basenames unchanged.
On `repository_conflict`, retry exactly once with twelve SHA-256 hex characters from the root's realpath appended to its basename; surface any retry failure.
Failed panes discard writes and become read-only, without new retry UI.

## Scope and approval

Closes #1727.
Host approved this bounded fix.

## Verification

- [x] **Tests:** 30 passed, 0 failed.
- [x] **Types:** server and web exit 0.
- [x] **Builds:** server and web exit 0.
- [x] **Lint:** no errors, 8 warnings.
- [x] **Fork CI:** exit 0.
- [ ] **UI:** host grounding and evidence.

Tests cover free names, realpath-based suffixes, existing bindings, bounded retry, non-conflict failures, and ignored failed-pane writes.
No server or browser was started; UI evidence awaits host grounding.

Model: gpt-6.1-sol; harness: Pi.

## Fork trailers

Fork-Domain: zmux-estate
Fork-Tier: bugfix
Fork-Upstreamable: no
Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot pushed a commit that referenced this pull request Nov 7, 2026
## Problem

Two checkouts with the same folder name cannot both open managed zmux shells; failed panes also send input to missing terminals.

## Change

Reuse registered bindings and keep free basenames unchanged.
On `repository_conflict`, retry exactly once with twelve SHA-256 hex characters from the root's realpath appended to its basename; surface any retry failure.
Failed panes discard writes and become read-only, without new retry UI.

## Scope and approval

Closes #1727.
Host approved this bounded fix.

## Verification

- [x] **Tests:** 30 passed, 0 failed.
- [x] **Types:** server and web exit 0.
- [x] **Builds:** server and web exit 0.
- [x] **Lint:** no errors, 8 warnings.
- [x] **Fork CI:** exit 0.
- [ ] **UI:** host grounding and evidence.

Tests cover free names, realpath-based suffixes, existing bindings, bounded retry, non-conflict failures, and ignored failed-pane writes.
No server or browser was started; UI evidence awaits host grounding.

Model: gpt-6.1-sol; harness: Pi.

## Fork trailers

Fork-Domain: zmux-estate
Fork-Tier: bugfix
Fork-Upstreamable: no
Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot pushed a commit that referenced this pull request Nov 7, 2026
## Problem

Two checkouts with the same folder name cannot both open managed zmux shells; failed panes also send input to missing terminals.

## Change

Reuse registered bindings and keep free basenames unchanged.
On `repository_conflict`, retry exactly once with twelve SHA-256 hex characters from the root's realpath appended to its basename; surface any retry failure.
Failed panes discard writes and become read-only, without new retry UI.

## Scope and approval

Closes #1727.
Host approved this bounded fix.

## Verification

- [x] **Tests:** 30 passed, 0 failed.
- [x] **Types:** server and web exit 0.
- [x] **Builds:** server and web exit 0.
- [x] **Lint:** no errors, 8 warnings.
- [x] **Fork CI:** exit 0.
- [ ] **UI:** host grounding and evidence.

Tests cover free names, realpath-based suffixes, existing bindings, bounded retry, non-conflict failures, and ignored failed-pane writes.
No server or browser was started; UI evidence awaits host grounding.

Model: gpt-6.1-sol; harness: Pi.

## Fork trailers

Fork-Domain: zmux-estate
Fork-Tier: bugfix
Fork-Upstreamable: no
Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot pushed a commit that referenced this pull request Nov 8, 2026
## Problem

Two checkouts with the same folder name cannot both open managed zmux shells; failed panes also send input to missing terminals.

## Change

Reuse registered bindings and keep free basenames unchanged.
On `repository_conflict`, retry exactly once with twelve SHA-256 hex characters from the root's realpath appended to its basename; surface any retry failure.
Failed panes discard writes and become read-only, without new retry UI.

## Scope and approval

Closes #1727.
Host approved this bounded fix.

## Verification

- [x] **Tests:** 30 passed, 0 failed.
- [x] **Types:** server and web exit 0.
- [x] **Builds:** server and web exit 0.
- [x] **Lint:** no errors, 8 warnings.
- [x] **Fork CI:** exit 0.
- [ ] **UI:** host grounding and evidence.

Tests cover free names, realpath-based suffixes, existing bindings, bounded retry, non-conflict failures, and ignored failed-pane writes.
No server or browser was started; UI evidence awaits host grounding.

Model: gpt-6.1-sol; harness: Pi.

## Fork trailers

Fork-Domain: zmux-estate
Fork-Tier: bugfix
Fork-Upstreamable: no
Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot pushed a commit that referenced this pull request Nov 8, 2026
## Problem

Two checkouts with the same folder name cannot both open managed zmux shells; failed panes also send input to missing terminals.

## Change

Reuse registered bindings and keep free basenames unchanged.
On `repository_conflict`, retry exactly once with twelve SHA-256 hex characters from the root's realpath appended to its basename; surface any retry failure.
Failed panes discard writes and become read-only, without new retry UI.

## Scope and approval

Closes #1727.
Host approved this bounded fix.

## Verification

- [x] **Tests:** 30 passed, 0 failed.
- [x] **Types:** server and web exit 0.
- [x] **Builds:** server and web exit 0.
- [x] **Lint:** no errors, 8 warnings.
- [x] **Fork CI:** exit 0.
- [ ] **UI:** host grounding and evidence.

Tests cover free names, realpath-based suffixes, existing bindings, bounded retry, non-conflict failures, and ignored failed-pane writes.
No server or browser was started; UI evidence awaits host grounding.

Model: gpt-6.1-sol; harness: Pi.

## Fork trailers

Fork-Domain: zmux-estate
Fork-Tier: bugfix
Fork-Upstreamable: no
Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot pushed a commit that referenced this pull request Nov 9, 2026
## Problem

Two checkouts with the same folder name cannot both open managed zmux shells; failed panes also send input to missing terminals.

## Change

Reuse registered bindings and keep free basenames unchanged.
On `repository_conflict`, retry exactly once with twelve SHA-256 hex characters from the root's realpath appended to its basename; surface any retry failure.
Failed panes discard writes and become read-only, without new retry UI.

## Scope and approval

Closes #1727.
Host approved this bounded fix.

## Verification

- [x] **Tests:** 30 passed, 0 failed.
- [x] **Types:** server and web exit 0.
- [x] **Builds:** server and web exit 0.
- [x] **Lint:** no errors, 8 warnings.
- [x] **Fork CI:** exit 0.
- [ ] **UI:** host grounding and evidence.

Tests cover free names, realpath-based suffixes, existing bindings, bounded retry, non-conflict failures, and ignored failed-pane writes.
No server or browser was started; UI evidence awaits host grounding.

Model: gpt-6.1-sol; harness: Pi.

## Fork trailers

Fork-Domain: zmux-estate
Fork-Tier: bugfix
Fork-Upstreamable: no
Co-authored-by: donjor <[email protected]>
donjor added a commit that referenced this pull request Nov 9, 2026
## Problem

Two checkouts with the same folder name cannot both open managed zmux shells; failed panes also send input to missing terminals.

## Change

Reuse registered bindings and keep free basenames unchanged.
On `repository_conflict`, retry exactly once with twelve SHA-256 hex characters from the root's realpath appended to its basename; surface any retry failure.
Failed panes discard writes and become read-only, without new retry UI.

## Scope and approval

Closes #1727.
Host approved this bounded fix.

## Verification

- [x] **Tests:** 30 passed, 0 failed.
- [x] **Types:** server and web exit 0.
- [x] **Builds:** server and web exit 0.
- [x] **Lint:** no errors, 8 warnings.
- [x] **Fork CI:** exit 0.
- [ ] **UI:** host grounding and evidence.

Tests cover free names, realpath-based suffixes, existing bindings, bounded retry, non-conflict failures, and ignored failed-pane writes.
No server or browser was started; UI evidence awaits host grounding.

Model: gpt-6.1-sol; harness: Pi.

## Fork trailers

Squashes:

- 5911207e873 fix(zmux): handle workspace basename collisions (#1741) (#1741)
- 2d5eb8b231b fix(web): retarget hidden terminal splits when shown (#1763) (#1763)
- 55896883ab2 fix(web): terminal OSC 52 copies reach the client clipboard (#1790) (#1790)

Fork-Domain: zmux-estate
Fork-Tier: bugfix
Fork-Upstreamable: no
Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot pushed a commit that referenced this pull request Nov 9, 2026
## Problem

Two checkouts with the same folder name cannot both open managed zmux shells; failed panes also send input to missing terminals.

## Change

Reuse registered bindings and keep free basenames unchanged.
On `repository_conflict`, retry exactly once with twelve SHA-256 hex characters from the root's realpath appended to its basename; surface any retry failure.
Failed panes discard writes and become read-only, without new retry UI.

## Scope and approval

Closes #1727.
Host approved this bounded fix.

## Verification

- [x] **Tests:** 30 passed, 0 failed.
- [x] **Types:** server and web exit 0.
- [x] **Builds:** server and web exit 0.
- [x] **Lint:** no errors, 8 warnings.
- [x] **Fork CI:** exit 0.
- [ ] **UI:** host grounding and evidence.

Tests cover free names, realpath-based suffixes, existing bindings, bounded retry, non-conflict failures, and ignored failed-pane writes.
No server or browser was started; UI evidence awaits host grounding.

Model: gpt-6.1-sol; harness: Pi.

## Fork trailers

Squashes:

- 5911207e873 fix(zmux): handle workspace basename collisions (#1741) (#1741)
- 2d5eb8b231b fix(web): retarget hidden terminal splits when shown (#1763) (#1763)
- 55896883ab2 fix(web): terminal OSC 52 copies reach the client clipboard (#1790) (#1790)

Fork-Domain: zmux-estate
Fork-Tier: bugfix
Fork-Upstreamable: no
Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot pushed a commit that referenced this pull request Nov 9, 2026
## Problem

Two checkouts with the same folder name cannot both open managed zmux shells; failed panes also send input to missing terminals.

## Change

Reuse registered bindings and keep free basenames unchanged.
On `repository_conflict`, retry exactly once with twelve SHA-256 hex characters from the root's realpath appended to its basename; surface any retry failure.
Failed panes discard writes and become read-only, without new retry UI.

## Scope and approval

Closes #1727.
Host approved this bounded fix.

## Verification

- [x] **Tests:** 30 passed, 0 failed.
- [x] **Types:** server and web exit 0.
- [x] **Builds:** server and web exit 0.
- [x] **Lint:** no errors, 8 warnings.
- [x] **Fork CI:** exit 0.
- [ ] **UI:** host grounding and evidence.

Tests cover free names, realpath-based suffixes, existing bindings, bounded retry, non-conflict failures, and ignored failed-pane writes.
No server or browser was started; UI evidence awaits host grounding.

Model: gpt-6.1-sol; harness: Pi.

## Fork trailers

Squashes:

- 5911207e873 fix(zmux): handle workspace basename collisions (#1741) (#1741)
- 2d5eb8b231b fix(web): retarget hidden terminal splits when shown (#1763) (#1763)
- 55896883ab2 fix(web): terminal OSC 52 copies reach the client clipboard (#1790) (#1790)

Fork-Domain: zmux-estate
Fork-Tier: bugfix
Fork-Upstreamable: no
Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot pushed a commit that referenced this pull request Nov 9, 2026
## Problem

Two checkouts with the same folder name cannot both open managed zmux shells; failed panes also send input to missing terminals.

## Change

Reuse registered bindings and keep free basenames unchanged.
On `repository_conflict`, retry exactly once with twelve SHA-256 hex characters from the root's realpath appended to its basename; surface any retry failure.
Failed panes discard writes and become read-only, without new retry UI.

## Scope and approval

Closes #1727.
Host approved this bounded fix.

## Verification

- [x] **Tests:** 30 passed, 0 failed.
- [x] **Types:** server and web exit 0.
- [x] **Builds:** server and web exit 0.
- [x] **Lint:** no errors, 8 warnings.
- [x] **Fork CI:** exit 0.
- [ ] **UI:** host grounding and evidence.

Tests cover free names, realpath-based suffixes, existing bindings, bounded retry, non-conflict failures, and ignored failed-pane writes.
No server or browser was started; UI evidence awaits host grounding.

Model: gpt-6.1-sol; harness: Pi.

## Fork trailers

Squashes:

- 5911207e873 fix(zmux): handle workspace basename collisions (#1741) (#1741)
- 2d5eb8b231b fix(web): retarget hidden terminal splits when shown (#1763) (#1763)
- 55896883ab2 fix(web): terminal OSC 52 copies reach the client clipboard (#1790) (#1790)

Fork-Domain: zmux-estate
Fork-Tier: bugfix
Fork-Upstreamable: no
Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot pushed a commit that referenced this pull request Nov 9, 2026
## Problem

Two checkouts with the same folder name cannot both open managed zmux shells; failed panes also send input to missing terminals.

## Change

Reuse registered bindings and keep free basenames unchanged.
On `repository_conflict`, retry exactly once with twelve SHA-256 hex characters from the root's realpath appended to its basename; surface any retry failure.
Failed panes discard writes and become read-only, without new retry UI.

## Scope and approval

Closes #1727.
Host approved this bounded fix.

## Verification

- [x] **Tests:** 30 passed, 0 failed.
- [x] **Types:** server and web exit 0.
- [x] **Builds:** server and web exit 0.
- [x] **Lint:** no errors, 8 warnings.
- [x] **Fork CI:** exit 0.
- [ ] **UI:** host grounding and evidence.

Tests cover free names, realpath-based suffixes, existing bindings, bounded retry, non-conflict failures, and ignored failed-pane writes.
No server or browser was started; UI evidence awaits host grounding.

Model: gpt-6.1-sol; harness: Pi.

## Fork trailers

Squashes:

- 5911207e873 fix(zmux): handle workspace basename collisions (#1741) (#1741)
- 2d5eb8b231b fix(web): retarget hidden terminal splits when shown (#1763) (#1763)
- 55896883ab2 fix(web): terminal OSC 52 copies reach the client clipboard (#1790) (#1790)

Fork-Domain: zmux-estate
Fork-Tier: bugfix
Fork-Upstreamable: no
Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot pushed a commit that referenced this pull request Nov 10, 2026
## Problem

Two checkouts with the same folder name cannot both open managed zmux shells; failed panes also send input to missing terminals.

## Change

Reuse registered bindings and keep free basenames unchanged.
On `repository_conflict`, retry exactly once with twelve SHA-256 hex characters from the root's realpath appended to its basename; surface any retry failure.
Failed panes discard writes and become read-only, without new retry UI.

## Scope and approval

Closes #1727.
Host approved this bounded fix.

## Verification

- [x] **Tests:** 30 passed, 0 failed.
- [x] **Types:** server and web exit 0.
- [x] **Builds:** server and web exit 0.
- [x] **Lint:** no errors, 8 warnings.
- [x] **Fork CI:** exit 0.
- [ ] **UI:** host grounding and evidence.

Tests cover free names, realpath-based suffixes, existing bindings, bounded retry, non-conflict failures, and ignored failed-pane writes.
No server or browser was started; UI evidence awaits host grounding.

Model: gpt-6.1-sol; harness: Pi.

## Fork trailers

Squashes:

- 5911207e873 fix(zmux): handle workspace basename collisions (#1741) (#1741)
- 2d5eb8b231b fix(web): retarget hidden terminal splits when shown (#1763) (#1763)
- 55896883ab2 fix(web): terminal OSC 52 copies reach the client clipboard (#1790) (#1790)

Fork-Domain: zmux-estate
Fork-Tier: bugfix
Fork-Upstreamable: no
Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot pushed a commit that referenced this pull request Nov 10, 2026
## Problem

Two checkouts with the same folder name cannot both open managed zmux shells; failed panes also send input to missing terminals.

## Change

Reuse registered bindings and keep free basenames unchanged.
On `repository_conflict`, retry exactly once with twelve SHA-256 hex characters from the root's realpath appended to its basename; surface any retry failure.
Failed panes discard writes and become read-only, without new retry UI.

## Scope and approval

Closes #1727.
Host approved this bounded fix.

## Verification

- [x] **Tests:** 30 passed, 0 failed.
- [x] **Types:** server and web exit 0.
- [x] **Builds:** server and web exit 0.
- [x] **Lint:** no errors, 8 warnings.
- [x] **Fork CI:** exit 0.
- [ ] **UI:** host grounding and evidence.

Tests cover free names, realpath-based suffixes, existing bindings, bounded retry, non-conflict failures, and ignored failed-pane writes.
No server or browser was started; UI evidence awaits host grounding.

Model: gpt-6.1-sol; harness: Pi.

## Fork trailers

Squashes:

- 5911207e873 fix(zmux): handle workspace basename collisions (#1741) (#1741)
- 2d5eb8b231b fix(web): retarget hidden terminal splits when shown (#1763) (#1763)
- 55896883ab2 fix(web): terminal OSC 52 copies reach the client clipboard (#1790) (#1790)

Fork-Domain: zmux-estate
Fork-Tier: bugfix
Fork-Upstreamable: no
Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot pushed a commit that referenced this pull request Nov 10, 2026
## Problem

Two checkouts with the same folder name cannot both open managed zmux shells; failed panes also send input to missing terminals.

## Change

Reuse registered bindings and keep free basenames unchanged.
On `repository_conflict`, retry exactly once with twelve SHA-256 hex characters from the root's realpath appended to its basename; surface any retry failure.
Failed panes discard writes and become read-only, without new retry UI.

## Scope and approval

Closes #1727.
Host approved this bounded fix.

## Verification

- [x] **Tests:** 30 passed, 0 failed.
- [x] **Types:** server and web exit 0.
- [x] **Builds:** server and web exit 0.
- [x] **Lint:** no errors, 8 warnings.
- [x] **Fork CI:** exit 0.
- [ ] **UI:** host grounding and evidence.

Tests cover free names, realpath-based suffixes, existing bindings, bounded retry, non-conflict failures, and ignored failed-pane writes.
No server or browser was started; UI evidence awaits host grounding.

Model: gpt-6.1-sol; harness: Pi.

## Fork trailers

Squashes:

- 5911207e873 fix(zmux): handle workspace basename collisions (#1741) (#1741)
- 2d5eb8b231b fix(web): retarget hidden terminal splits when shown (#1763) (#1763)
- 55896883ab2 fix(web): terminal OSC 52 copies reach the client clipboard (#1790) (#1790)

Fork-Domain: zmux-estate
Fork-Tier: bugfix
Fork-Upstreamable: no
Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot pushed a commit that referenced this pull request Nov 10, 2026
## Problem

Two checkouts with the same folder name cannot both open managed zmux shells; failed panes also send input to missing terminals.

## Change

Reuse registered bindings and keep free basenames unchanged.
On `repository_conflict`, retry exactly once with twelve SHA-256 hex characters from the root's realpath appended to its basename; surface any retry failure.
Failed panes discard writes and become read-only, without new retry UI.

## Scope and approval

Closes #1727.
Host approved this bounded fix.

## Verification

- [x] **Tests:** 30 passed, 0 failed.
- [x] **Types:** server and web exit 0.
- [x] **Builds:** server and web exit 0.
- [x] **Lint:** no errors, 8 warnings.
- [x] **Fork CI:** exit 0.
- [ ] **UI:** host grounding and evidence.

Tests cover free names, realpath-based suffixes, existing bindings, bounded retry, non-conflict failures, and ignored failed-pane writes.
No server or browser was started; UI evidence awaits host grounding.

Model: gpt-6.1-sol; harness: Pi.

## Fork trailers

Squashes:

- 5911207e873 fix(zmux): handle workspace basename collisions (#1741) (#1741)
- 2d5eb8b231b fix(web): retarget hidden terminal splits when shown (#1763) (#1763)
- 55896883ab2 fix(web): terminal OSC 52 copies reach the client clipboard (#1790) (#1790)

Fork-Domain: zmux-estate
Fork-Tier: bugfix
Fork-Upstreamable: no
Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot pushed a commit that referenced this pull request Nov 10, 2026
## Problem

Two checkouts with the same folder name cannot both open managed zmux shells; failed panes also send input to missing terminals.

## Change

Reuse registered bindings and keep free basenames unchanged.
On `repository_conflict`, retry exactly once with twelve SHA-256 hex characters from the root's realpath appended to its basename; surface any retry failure.
Failed panes discard writes and become read-only, without new retry UI.

## Scope and approval

Closes #1727.
Host approved this bounded fix.

## Verification

- [x] **Tests:** 30 passed, 0 failed.
- [x] **Types:** server and web exit 0.
- [x] **Builds:** server and web exit 0.
- [x] **Lint:** no errors, 8 warnings.
- [x] **Fork CI:** exit 0.
- [ ] **UI:** host grounding and evidence.

Tests cover free names, realpath-based suffixes, existing bindings, bounded retry, non-conflict failures, and ignored failed-pane writes.
No server or browser was started; UI evidence awaits host grounding.

Model: gpt-6.1-sol; harness: Pi.

## Fork trailers

Squashes:

- 5911207e873 fix(zmux): handle workspace basename collisions (#1741) (#1741)
- 2d5eb8b231b fix(web): retarget hidden terminal splits when shown (#1763) (#1763)
- 55896883ab2 fix(web): terminal OSC 52 copies reach the client clipboard (#1790) (#1790)

Fork-Domain: zmux-estate
Fork-Tier: bugfix
Fork-Upstreamable: no
Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot pushed a commit that referenced this pull request Nov 11, 2026
## Problem

Two checkouts with the same folder name cannot both open managed zmux shells; failed panes also send input to missing terminals.

## Change

Reuse registered bindings and keep free basenames unchanged.
On `repository_conflict`, retry exactly once with twelve SHA-256 hex characters from the root's realpath appended to its basename; surface any retry failure.
Failed panes discard writes and become read-only, without new retry UI.

## Scope and approval

Closes #1727.
Host approved this bounded fix.

## Verification

- [x] **Tests:** 30 passed, 0 failed.
- [x] **Types:** server and web exit 0.
- [x] **Builds:** server and web exit 0.
- [x] **Lint:** no errors, 8 warnings.
- [x] **Fork CI:** exit 0.
- [ ] **UI:** host grounding and evidence.

Tests cover free names, realpath-based suffixes, existing bindings, bounded retry, non-conflict failures, and ignored failed-pane writes.
No server or browser was started; UI evidence awaits host grounding.

Model: gpt-6.1-sol; harness: Pi.

## Fork trailers

Squashes:

- 5911207e873 fix(zmux): handle workspace basename collisions (#1741) (#1741)
- 2d5eb8b231b fix(web): retarget hidden terminal splits when shown (#1763) (#1763)
- 55896883ab2 fix(web): terminal OSC 52 copies reach the client clipboard (#1790) (#1790)

Fork-Domain: zmux-estate
Fork-Tier: bugfix
Fork-Upstreamable: no
Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot pushed a commit that referenced this pull request Nov 11, 2026
## Problem

Two checkouts with the same folder name cannot both open managed zmux shells; failed panes also send input to missing terminals.

## Change

Reuse registered bindings and keep free basenames unchanged.
On `repository_conflict`, retry exactly once with twelve SHA-256 hex characters from the root's realpath appended to its basename; surface any retry failure.
Failed panes discard writes and become read-only, without new retry UI.

## Scope and approval

Closes #1727.
Host approved this bounded fix.

## Verification

- [x] **Tests:** 30 passed, 0 failed.
- [x] **Types:** server and web exit 0.
- [x] **Builds:** server and web exit 0.
- [x] **Lint:** no errors, 8 warnings.
- [x] **Fork CI:** exit 0.
- [ ] **UI:** host grounding and evidence.

Tests cover free names, realpath-based suffixes, existing bindings, bounded retry, non-conflict failures, and ignored failed-pane writes.
No server or browser was started; UI evidence awaits host grounding.

Model: gpt-6.1-sol; harness: Pi.

## Fork trailers

Squashes:

- 5911207e873 fix(zmux): handle workspace basename collisions (#1741) (#1741)
- 2d5eb8b231b fix(web): retarget hidden terminal splits when shown (#1763) (#1763)
- 55896883ab2 fix(web): terminal OSC 52 copies reach the client clipboard (#1790) (#1790)

Fork-Domain: zmux-estate
Fork-Tier: bugfix
Fork-Upstreamable: no
Co-authored-by: donjor <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

zmux shell fails when another repo shares the project folder name [📡#305]

1 participant