workspace.md
markdown
sha256:18b983389ee1b55900fcd799bfbb496552d2e3ecded9d18cefbfef188947a12e
chore: remove blob-debug test marker file
Sonnet 4.6
13 hours ago
muse workspace — multi-repository workspaces
A workspace links multiple independent Muse repositories together under a single manifest, giving you a unified status view, one-shot synchronisation, and a clear model for multi-repo projects.
When to use workspaces vs. worktrees
| Need | Use |
|---|---|
| Multiple branches of one repo simultaneously | muse worktree |
| Multiple separate repos that evolve together | muse workspace |
Use cases
- A film score with a melody repo, a harmony repo, and a samples repo
- A machine learning pipeline with a model repo, a dataset repo, and an eval repo
- A micro-service backend where each service lives in its own Muse repo
- An agent swarm where each autonomous agent manages its own state repo, and the coordinator workspace tracks them all
Workspace manifest
The manifest lives at .muse/workspace.toml:
[[members]]
name = "core"
url = "https://musehub.ai/acme/core"
path = "repos/core"
branch = "main"
[[members]]
name = "sounds"
url = "https://musehub.ai/acme/sounds"
path = "repos/sounds"
branch = "v2"
Subcommands
muse workspace add <name> <url>
Register a member repository.
muse workspace add core https://musehub.ai/acme/core
muse workspace add sounds https://musehub.ai/acme/sounds --branch v2
muse workspace add data /path/to/local/dataset --path vendor/data
| Option | Default | Description |
|---|---|---|
--path |
repos/<name> |
Relative checkout path inside the workspace |
--branch, -b |
main |
Branch to track |
Registration writes the manifest entry. Run muse workspace sync to clone.
muse workspace list
List all registered members with their status.
name branch present HEAD url
──────────────────────────────────────────────────────────────────────────────
core main yes a1b2c3d4ef56 https://musehub.ai/acme/core
sounds v2 yes deadbeef0012 https://musehub.ai/acme/sounds
data main no (not cloned) /path/to/local/dataset
muse workspace remove <name>
Remove a member from the manifest. The member's directory is not deleted.
muse workspace remove sounds
muse workspace status
Rich status view for all members.
Workspace: /Users/me/myproject
✅ core branch=main head=a1b2c3d4ef56
path: /Users/me/myproject/repos/core
url: https://musehub.ai/acme/core
❌ data branch=main head=not cloned
path: /Users/me/myproject/repos/data
url: /path/to/local/dataset
muse workspace sync [name]
Clone or pull all members (or one named member).
muse workspace sync # sync everything
muse workspace sync core # sync only 'core'
- If a member directory does not exist,
muse cloneis run to fetch it. - If a member directory already exists,
muse pullis run to update it.
Agent workflows
Coordinator + worker pattern
# Coordinator workspace tracks N worker repos:
muse workspace add worker-001 https://musehub.ai/swarm/worker-001
muse workspace add worker-002 https://musehub.ai/swarm/worker-002
muse workspace add worker-003 https://musehub.ai/swarm/worker-003
# Sync all workers to latest:
muse workspace sync
# Status across all:
muse workspace status
Release pipeline
# Pin all members to release branches before archiving:
muse workspace add core https://musehub.ai/acme/core --branch release/v2
muse workspace add sounds https://musehub.ai/acme/sounds --branch release/v2
muse workspace sync
# Archive each member:
for member in repos/*/; do
(cd "$member" && muse archive --output "../../archives/$(basename $member).tar.gz")
done
Exit codes
| Code | Meaning |
|---|---|
| 0 | Success |
| 1 | Validation error, duplicate name, or member not found |
File History
7 commits
sha256:18b983389ee1b55900fcd799bfbb496552d2e3ecded9d18cefbfef188947a12e
chore: remove blob-debug test marker file
Sonnet 4.6
13 hours ago
sha256:e452ad9a6ace6ccc6d875a35e06caf9da5576a970c1c36133b69a891ce5fefa8
chore: prebuild timing test
Sonnet 4.6
7 days ago
sha256:0008ab6695e3e064b3e236b24fd19e538fef6a588eb0d211622f4466d919c0b1
merge: pull staging/dev — advance to 0.2.0rc12
Sonnet 4.6
patch
9 days ago
sha256:9c33d61749fff814c5226d5386aa2af7064c2c02788594a25fdd709358132eea
fix: _PROPOSAL_PREFIX_RESOLVE_LIMIT 200 → 100 to match hub …
Sonnet 4.6
20 days ago
sha256:36c3cb3e76619d4c30a6d9bf81b5ec4ff148e30dcfed913e3114ca7b43b81c7e
fix: rename objects→blobs in push client and all stale test…
Sonnet 4.6
patch
23 days ago
sha256:c06a9b9b9fee26c68ea725b44d54b2c0a171301ce9de746d5b656617b4463a9a
fix: repair four test failures from post-migration audit
Sonnet 4.6
patch
29 days ago
sha256:1900655993c83c4107067375548a7be823e471d2515830842f1a12cba4bd3cdf
fix: unified object store migration — idempotent writes, JS…
Sonnet 4.6
minor
⚠
30 days ago