-
Notifications
You must be signed in to change notification settings - Fork 236
Comparing changes
Open a pull request
base repository: tmux-python/tmuxp
base: v1.66.0
head repository: tmux-python/tmuxp
compare: v1.67.0
- 8 commits
- 17 files changed
- 1 contributor
Commits on Mar 8, 2026
-
feat(builder[callbacks]): add progress, before_script, script_output,…
… and build_event callbacks why: The builder needs to emit lifecycle events so a UI layer can render real-time progress without coupling builder logic to display code. what: - Add on_progress, on_before_script, on_script_output, on_build_event callback parameters to WorkspaceBuilder - Emit structured build events: session_created (with window_total, session_pane_total), window_started, pane_creating, window_done, workspace_built, before_script_started, before_script_done - Add on_line callback to run_before_script() for capturing script output - Add doctests for all callback types
Configuration menu - View commit details
-
Copy full SHA for 46cf411 - Browse repository at this point
Copy the full SHA 46cf411View commit details
Commits on Mar 9, 2026
-
feat(_progress[spinner]): add Spinner, BuildTree, templates, and presets
why: The CLI needs an animated progress display during workspace builds. A dedicated module keeps display logic decoupled from builder and load. what: - Add Spinner context manager with atexit cursor restore and non-TTY fallback - Add BuildTree for tracking build state (session, windows, panes) - Add scrolling output panel for before_script output lines - Add PROGRESS_PRESETS (default, minimal, window, pane, verbose) with format_template using {session}, {window}, {bar}, {progress}, etc. - Add render_bar() with marching indicator during before_script - Add SUCCESS_TEMPLATE and format_success() for persistent completion line - Add _SafeFormatMap, ANSI-aware truncation, dynamic terminal width refreshConfiguration menu - View commit details
-
Copy full SHA for ac1f73b - Browse repository at this point
Copy the full SHA ac1f73bView commit details -
feat(load[spinner]): wire progress spinner into tmuxp load command
why: Users need visual feedback during workspace builds, especially for sessions with many windows or long before_script executions. what: - Add _silence_stream_handlers() to suppress StreamHandler during spinner - Add _dispatch_build() extracting shared build/attach/error logic - Wire Spinner.on_build_event and add_output_line to builder callbacks - Add --progress-format / TMUXP_PROGRESS_FORMAT for preset or custom format - Add --progress-lines / TMUXP_PROGRESS_LINES for panel height control - Add --no-progress / TMUXP_PROGRESS=0 to disable spinner entirely - Emit persistent success line with checkmark after successful build - Stop spinner before interactive prompts (TMUX switch, error recovery)
Configuration menu - View commit details
-
Copy full SHA for 12e5f12 - Browse repository at this point
Copy the full SHA 12e5f12View commit details -
test(progress[coverage]): add comprehensive tests for spinner and bui…
…ld progress why: The progress spinner and its CLI wiring need thorough test coverage for BuildTree state, template rendering, bar generation, panel behavior, and CLI flag handling. what: - Add tests/cli/test_progress.py covering Spinner lifecycle, BuildTree state transitions, template presets, bar rendering, panel lines, ANSI truncation, non-TTY fallback, and success output - Add tests/workspace/test_progress.py for builder callback integration - Update tests/cli/test_load.py for progress output assertions
Configuration menu - View commit details
-
Copy full SHA for 2528c59 - Browse repository at this point
Copy the full SHA 2528c59View commit details -
docs(progress): document progress display, env vars, and API reference
why: Users need documentation for the progress spinner feature. what: - Add "Progress display" section to docs/cli/load.md with presets, tokens, panel lines, disabling, and before-script behavior - Add TMUXP_PROGRESS, TMUXP_PROGRESS_FORMAT, TMUXP_PROGRESS_LINES to environmental-variables.md - Add docs/api/cli/progress.md API reference page
Configuration menu - View commit details
-
Copy full SHA for 2e9f8cd - Browse repository at this point
Copy the full SHA 2e9f8cdView commit details -
docs(CHANGES): add animated progress spinner entry
why: PR 2 needs changelog entry for the progress spinner feature. what: - Add "Animated progress spinner" section under What's new
Configuration menu - View commit details
-
Copy full SHA for 96ede9b - Browse repository at this point
Copy the full SHA 96ede9bView commit details -
feat(load[progress]): animated progress spinner for tmuxp load (#1020)
Adds real-time build feedback to `tmuxp load` via an animated terminal spinner that shows window/pane creation progress. The spinner runs in a background thread during the build phase only, stopping cleanly before interactive prompts or tmux attach. **Builder callbacks**: Four optional callbacks on `WorkspaceBuilder` (`on_progress`, `on_before_script`, `on_script_output`, `on_build_event`) decouple progress reporting from build logic, emitting structured lifecycle events at each build milestone. **Spinner and BuildTree** (`cli/_progress.py`): `Spinner` handles ANSI-aware terminal output with atexit cursor restoration and a scrolling panel for `before_script` output. `BuildTree` tracks build state and provides template context for format tokens (`{bar}`, `{progress}`, `{window}`, `{pane_index}`, etc.). **Five built-in presets**: `default`, `minimal`, `window`, `pane`, `verbose` — selectable via `--progress-format` or `TMUXP_PROGRESS_FORMAT`. **CLI flags**: `--progress-format`, `--progress-lines`, `--no-progress` with corresponding `TMUXP_PROGRESS*` env vars. Non-TTY environments automatically disable the spinner. **Graceful degradation**: `--no-progress` path wraps session summary access in try/except so killing the session after attach does not crash.Configuration menu - View commit details
-
Copy full SHA for 975a3da - Browse repository at this point
Copy the full SHA 975a3daView commit details -
Configuration menu - View commit details
-
Copy full SHA for d08589a - Browse repository at this point
Copy the full SHA d08589aView commit details
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff v1.66.0...v1.67.0