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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions