Expand description
Library surface of the workon crate. The binary (main.rs) is a thin
shim over these modules, and examples/generate_assets.rs reaches
cli::Cli through here to render the man page and completion scripts.
Modules§
- agent
- The agent a config drives: which pane command is the agent, and the argument templates workon injects into it.
- background
- Work handed to a process that may outlive workon.
- claude_
trust - cli
- deps
- discover
- Live inference of workspace structure from the filesystem plus git/jj, so the
headless subcommands need no registry. The worktrees under
~/.worktreesare the source of truth; this module reads facts back off them. Anything stored (in.workon.json) is only what can’t be inferred — see specs/non-interactive-workspaces.md. - home
- layout
- mise_
env - The environment
mise envcomputes for a directory, handed to the session and to provisioners. - mux
- Multiplexer backends. zellij is the default. tmux and zmx are selected with
--muxorWORKON_MUX. - not_
ready - What workon says when a setup step failed (issue #2): a test database that could not be
created, or a schema load or migration that errors, does not stop provisioning, so the
workspace exists but is not ready.
createsays so last, names the command that opens the workspace as it is, and exits withEXIT_NOT_READY;-wasks before zellij takes the screen, which would hide the warning. - provision
- Per-workspace provisioners: modular setup that copying gitignored files can’t
provide (isolated test databases today; more per ecosystem later). Each
provisioner detects its project type and does only the irreducible work,
recording any external resource it created so teardown can undo it. Mirrors
the
vcstrait + backend registry. See specs/workspace-provisioners.md. - registered
- A workspace’s identity is the name jj registered for the workspace whose root
is that directory. Parsing
<project>-<ws_id>off the directory name is wrong the moment jj’s name and the directory disagree (workon issue #5), so a project that has.jjnever does it. A git-only worktree has no jj registration; the directory spelling is the only name it has, and that fallback stays. - resolve
- session
- trust
- Config trust gate.
- vcs
- workspace