Skip to content

feat: tmuxinator/teamocil feature parity (recut)#1046

Open
tony wants to merge 3 commits into
masterfrom
parity-recut
Open

feat: tmuxinator/teamocil feature parity (recut)#1046
tony wants to merge 3 commits into
masterfrom
parity-recut

Conversation

@tony

@tony tony commented Jun 6, 2026

Copy link
Copy Markdown
Member

Summary

This is a replacement recut for #1025. It keeps the parity work in three reviewable commits:

  • importer parity for tmuxinator/teamocil conversion
  • runtime/load parity for lifecycle hooks, here mode, pane titles, synchronization, templating, and config-management commands
  • docs, examples, changelog, and documented example tests

Closes #1031.

Review Fixes Folded In

  • Avoids respawning the active pane running tmuxp load --here.
  • Runs shell_command_after before synchronized panes are enabled.
  • Validates tmuxp delete targets before unlinking files.
  • Lets lifecycle hooks run without the previous undocumented timeout.
  • Normalizes --here outside tmux before existing-session handling.
  • Expands workspace-level config fallback paths before Server creation, including ./tmux.conf relative to the workspace file and ~/tmux.conf via HOME.

Parity Check

The final tree matches the original parity branch except for the intentional workspace config path-expansion fix and its regression coverage:

  • src/tmuxp/cli/load.py
  • tests/cli/test_load.py

Verification

Run before each commit and again at branch tip:

$ unset NO_COLOR; rm -rf docs/_build; uv run ruff check . --fix --show-fixes; uv run ruff format .; uv run mypy .; uv run py.test --reruns 0 -vvv; just build-docs;

Final branch-tip results:

  • uv run ruff check . --fix --show-fixes: all checks passed
  • uv run ruff format .: 144 files left unchanged
  • uv run mypy .: success, no issues in 144 source files
  • uv run py.test --reruns 0 -vvv: 1038 passed, 2 skipped
  • just build-docs: build succeeded with 76 existing warnings

NO_COLOR was unset for the gates because this local shell exports NO_COLOR=1, while existing color tests assert ANSI output in forced-color cases.

@codecov

codecov Bot commented Jun 6, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 89.05547% with 73 lines in your changes missing coverage. Please review.
✅ Project coverage is 84.16%. Comparing base (700a9b9) to head (4e9116c).
⚠️ Report is 93 commits behind head on master.

Files with missing lines Patch % Lines
src/tmuxp/cli/load.py 76.06% 22 Missing and 6 partials ⚠️
src/tmuxp/workspace/builder.py 86.88% 9 Missing and 7 partials ⚠️
src/tmuxp/workspace/importers.py 90.90% 3 Missing and 10 partials ⚠️
src/tmuxp/cli/copy.py 87.80% 3 Missing and 2 partials ⚠️
src/tmuxp/cli/delete.py 92.10% 2 Missing and 1 partial ⚠️
src/tmuxp/util.py 90.32% 1 Missing and 2 partials ⚠️
src/tmuxp/cli/import_config.py 90.00% 2 Missing ⚠️
src/tmuxp/cli/new.py 96.29% 1 Missing and 1 partial ⚠️
src/tmuxp/workspace/loader.py 97.95% 0 Missing and 1 partial ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #1046      +/-   ##
==========================================
+ Coverage   81.98%   84.16%   +2.17%     
==========================================
  Files          28       32       +4     
  Lines        2548     3125     +577     
  Branches      485      630     +145     
==========================================
+ Hits         2089     2630     +541     
- Misses        328      340      +12     
- Partials      131      155      +24     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
tony added 3 commits June 7, 2026 06:28
why: Keep importer compatibility work reviewable as a standalone behavior slice.
what:
- Expand tmuxinator mappings for cli args, hooks, pane titles, startup focus, named panes, synchronize, and dropped-key logging
- Expand teamocil import support for v1.x panes, focus/options, filters, and unsupported sizing warnings
- Add fixtures and typed parametrized coverage for importer edge cases
why: Keep the runtime parity behavior in one reviewable commit after importer normalization.
what:
- Add load flags, here-mode handling, config templating, pane titles, synchronize, shell_command_after, clear, and lifecycle hook execution
- Add config-management commands and safety checks for new, copy, delete, and stop
- Add regression coverage for workspace config path expansion and destructive command safeguards
why: Document the public parity surface and release notes in one reviewable docs commit.
what:
- Add comparison, CLI, configuration, and example docs for parity features
- Add API pages for new CLI modules and tested examples
- Add changelog coverage for the parity release
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

1 participant