Summary
Define the public contract for custom workspace builders after the classic dotted-path selection work lands.
Related: #1054, #1058.
Proposed behavior
- Define a public builder protocol or interface that documents constructor inputs,
.build(), .session, plugin lifecycle compatibility, append/detached behavior, progress callbacks, and script-output callbacks.
- Keep sync builders supported first while making the interface shape compatible with future async builders.
- Add package entry point discovery, for example a
tmuxp.workspace_builders group, so packaged builders can be distributed without asking users to reference implementation module paths.
- Keep dotted-path configuration from the base PR as the simple and transparent path for most users.
- Document how tmuxp resolves builder names, dotted paths, and entry points without changing the classic default.
Acceptance criteria
- The builder contract is represented in public code and docs.
- Existing
WorkspaceBuilder satisfies the contract.
- Tests cover a minimal custom builder, an entry-point-discovered builder, and invalid builder failures.
- The interface does not require async execution in this stage.
Summary
Define the public contract for custom workspace builders after the classic dotted-path selection work lands.
Related: #1054, #1058.
Proposed behavior
.build(),.session, plugin lifecycle compatibility, append/detached behavior, progress callbacks, and script-output callbacks.tmuxp.workspace_buildersgroup, so packaged builders can be distributed without asking users to reference implementation module paths.Acceptance criteria
WorkspaceBuildersatisfies the contract.