Skip to content

Workspace(feat[importers]): Add tmuxinator and teamocil parity fallbacks#1049

Open
tony wants to merge 4 commits into
parity-lifecycle-hooksfrom
parity-importer-fallbacks
Open

Workspace(feat[importers]): Add tmuxinator and teamocil parity fallbacks#1049
tony wants to merge 4 commits into
parity-lifecycle-hooksfrom
parity-importer-fallbacks

Conversation

@tony
Copy link
Copy Markdown
Member

@tony tony commented Jun 6, 2026

Summary

Stacked on #1048 to keep importer parity separate from runtime and lifecycle primitives.

  • parse tmuxinator cli_args / tmux_options values for -f, -L, and -S
  • resolve imported workspace config fallback paths relative to the saved workspace file before creating Server
  • map tmuxinator lifecycle hooks, pre-window commands, startup focus, synchronize, and named panes to tmuxp keys
  • expand teamocil pane normalization plus focus/options passthrough and import docs

Verification

Ran before commit:

$ 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;

Result: ruff clean, format unchanged, mypy clean, pytest 877 passed, 2 skipped, docs built successfully with 71 existing warnings.

Stack: depends on #1047 and #1048.

@codecov
Copy link
Copy Markdown

codecov Bot commented Jun 6, 2026

Codecov Report

❌ Patch coverage is 78.48101% with 34 lines in your changes missing coverage. Please review.
✅ Project coverage is 82.42%. Comparing base (3e55df9) to head (b7026c8).

Files with missing lines Patch % Lines
src/tmuxp/workspace/importers.py 77.77% 17 Missing and 15 partials ⚠️
src/tmuxp/cli/load.py 85.71% 1 Missing and 1 partial ⚠️
Additional details and impacted files
@@                    Coverage Diff                     @@
##           parity-lifecycle-hooks    #1049      +/-   ##
==========================================================
- Coverage                   82.47%   82.42%   -0.05%     
==========================================================
  Files                          29       29              
  Lines                        2704     2828     +124     
  Branches                      527      565      +38     
==========================================================
+ Hits                         2230     2331     +101     
- Misses                        336      351      +15     
- Partials                      138      146       +8     

☔ 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 tony force-pushed the parity-lifecycle-hooks branch from b7442dc to 8047b2c Compare June 6, 2026 23:16
@tony tony force-pushed the parity-importer-fallbacks branch from e4d17c3 to 7feb8b2 Compare June 6, 2026 23:16
@tony tony force-pushed the parity-lifecycle-hooks branch from 8047b2c to eebcf20 Compare June 7, 2026 01:29
@tony tony force-pushed the parity-importer-fallbacks branch from 7feb8b2 to 03106c4 Compare June 7, 2026 01:29
@tony tony force-pushed the parity-lifecycle-hooks branch from eebcf20 to 575d74a Compare June 7, 2026 11:14
@tony tony force-pushed the parity-importer-fallbacks branch 2 times, most recently from 3703f2a to 628c20f Compare June 7, 2026 11:46
@tony tony force-pushed the parity-lifecycle-hooks branch from 575d74a to 250222d Compare June 7, 2026 11:46
@tony
Copy link
Copy Markdown
Member Author

tony commented Jun 7, 2026

Code review

No issues found. Checked for bugs and CLAUDE.md compliance.

🤖 Generated with Claude Code

@tony tony force-pushed the parity-importer-fallbacks branch from 628c20f to 381e7a2 Compare June 7, 2026 13:36
@tony tony force-pushed the parity-lifecycle-hooks branch from 250222d to d22d8e1 Compare June 7, 2026 13:36
@tony tony force-pushed the parity-importer-fallbacks branch from 381e7a2 to 9f78aab Compare June 7, 2026 14:48
@tony tony force-pushed the parity-lifecycle-hooks branch from d22d8e1 to e104ea3 Compare June 7, 2026 14:48
tony added 4 commits June 7, 2026 10:14
why: Preserve common tmuxinator and teamocil configuration semantics
after import without bundling unrelated CLI commands into the parity
split.
what:
- Parse tmuxinator tmux flags into workspace server fallbacks and
  resolve config paths from the workspace file
- Map tmuxinator hooks, pre-window commands, startup focus,
  synchronize, and named panes to tmuxp keys
- Expand teamocil pane normalization and focus/options passthrough
- Update existing import fixtures whose expected output encodes the
  new pre-to-on_project_start mapping
why: Pin flag parsing, hook and pane mapping, and teamocil v1.x
normalization behavior.
what:
- Importer tests for cli_args parsing, startup focus, synchronize,
  named panes, and teamocil focus/options passthrough
- New fixture workspaces for edge cases (numeric names, aliases,
  named panes, v1.x format)
- Load CLI tests for workspace server fallbacks
why: Make the importer's key mappings discoverable for users
migrating configs.
what:
- Note the fallback conversions on the import page
why: The socket-override warning carried no structured fields and the
import tests matched message substrings against the logging
standards; the override message also used present tense for an event.
what:
- Add tmux_session extra to the socket-override warning and change
  "overrides" to "overrode"
- Assert the override and dropped-pane-key warnings via record extras
  and args instead of message text
@tony tony force-pushed the parity-importer-fallbacks branch from 9f78aab to b7026c8 Compare June 7, 2026 15:21
@tony tony force-pushed the parity-lifecycle-hooks branch from e104ea3 to 3e55df9 Compare June 7, 2026 15:21
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.

1 participant