GeezerVisonThe World Wide Web, restored to 800 pixels of glory. | ||||||||||||||||||||||||
| Home|About|Gaming cabinet|Archives|How it works|Starter sites | ||||||||||||||||||||||||
GeezerVison is showing github.com — Workspace(feat[lifecycle]): Add project hooks and stop command by tony · Pull Request #1048 · tmux-python/tmuxp Conversation
Member
SummaryStacked on #1047 to keep lifecycle behavior separate from runtime config primitives.
VerificationRan 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 Stack: depends on #1047. Importer fallback follow-up is stacked on this branch.
Sorry, something went wrong. Uh oh!
There was an error while loading. Please reload this page. All reactions
|
There was an error while loading. Please reload this page.
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@ ## parity-runtime-config #1048 +/- ## ========================================================= + Coverage 83.00% 83.13% +0.12% ========================================================= Files 31 32 +1 Lines 2872 2982 +110 Branches 549 574 +25 ========================================================= + Hits 2384 2479 +95 - Misses 348 356 +8 - Partials 140 147 +7 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Sorry, something went wrong.
There was an error while loading. Please reload this page.
b7442dc to
8047b2c
Compare
1e5aeb0 to
f031d96
Compare
8047b2c to
eebcf20
Compare
f031d96 to
99fbb1b
Compare
eebcf20 to
575d74a
Compare
99fbb1b to
61a6df4
Compare
575d74a to
250222d
Compare
Code reviewFound 1 issue:
tmuxp/docs/configuration/top-level.md Lines 74 to 77 in 250222d
Implementation showing the non-blocking dispatch: tmuxp/src/tmuxp/workspace/builder.py Lines 551 to 557 in 250222d
🤖 Generated with Claude Code - If this code review was useful, please react with 👍. Otherwise, react with 👎. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
e104ea3 to
3e55df9
Compare
a45ab9b to
04f7257
Compare
3e55df9 to
03f2ba7
Compare
04f7257 to
da4d476
Compare
03f2ba7 to
9688667
Compare
da4d476 to
fb3ec79
Compare
9688667 to
ad9bcfc
Compare
why: Add lifecycle cleanup and restart hooks as a separate layer above runtime config primitives. what: - Run start and restart hooks from load while preserving append behavior - Store exit and stop hook metadata on newly created tmux sessions - Add tmuxp stop with on_project_stop execution - Register the new modules' doctest fixtures and the stop subcommand in the CLI-surface guards (conftest, help-example validation), which must move in lockstep with the CLI
why: Pin hook firing semantics per load path and the stop command's behavior. what: - Load CLI tests for start/restart hook dispatch and append behavior - Stop command tests including on_project_stop execution - Builder and config tests for exit/stop hook metadata - util tests for run_hook_commands
why: Give users working references for lifecycle hooks and the stop command. what: - CLI page and API autodoc page for tmuxp stop - Lifecycle hook sections in top-level configuration docs - Example workspace file for lifecycle hooks
why: Lifecycle hook commands may contain expanded credentials, so normal logs must not persist the command text. what: - Replace hook command log extras with a redacted placeholder
why: Pin that hook failure logging keeps exit codes without leaking command text. what: - Assert redacted placeholder in hook log extras and absence of the raw command string
why: The prose claimed all hooks block tmuxp, but on_project_exit runs via tmux's client-detached hook after tmuxp has returned — the claim was false for one of the four hooks and contradicted the per-hook table on the same page. what: - Name the three blocking hooks explicitly and describe on_project_exit's deferred, non-blocking dispatch
why: run_hook_commands logs records under tmux_hook_cmd, but the key was absent from the structured-context table that downstream consumers treat as the schema contract. what: - Add the tmux_hook_cmd row to the core key table
why: The command text is redacted because hooks may expand credentials, but the failure path logged the hook's raw stdout/stderr at debug — the same secrets leak through output. what: - Replace raw output debug logging with a single suppression record carrying tmux_stdout_len / tmux_stderr_len companion fields - Add parametrized coverage asserting an echoed secret marker reaches no log record while the length fields remain attributable
fb3ec79 to
d3f01de
Compare
ad9bcfc to
d06d999
Compare
There was an error while loading. Please reload this page.
Successfully merging this pull request may close these issues.
There was an error while loading. Please reload this page.