Skip to content

WorkspaceBuilder: define a public builder protocol and entry points #1060

Description

@tony

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.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions