Skip to content

Commit ed41450

Browse files
committed
Update workspace tooling and query planning
1 parent 97f3cd1 commit ed41450

8 files changed

Lines changed: 1358 additions & 20 deletions

File tree

AGENTS.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -232,3 +232,6 @@ The most important implementation seams are:
232232
behavior, check for duplicate Vite listeners from sibling worktrees.
233233
`localhost` can hit an IPv6 listener from another checkout while
234234
`127.0.0.1` hits the current repo.
235+
- Control-plane import/checkpoint JSON fields typed as `map[string][]byte`
236+
expect base64-encoded string values. Small synthetic manifests can avoid that
237+
by using `ManifestEntry.inline`, which is already base64 text.

cmd/afs/afs_surface_test.go

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,14 @@ func TestConfigPathDefaultsToAFSConfig(t *testing.T) {
2525
}
2626
}
2727

28-
func TestWorkspaceRootShortcutsAreHiddenAliases(t *testing.T) {
28+
func TestWorkspaceRootShortcutsAreDocumentedAliases(t *testing.T) {
2929
t.Helper()
3030

31-
for _, command := range []string{"mount", "unmount", "create", "list", "info", "import", "fork", "delete"} {
31+
for _, command := range []string{
32+
"mount", "unmount", "create", "list", "clone", "default",
33+
"set-default", "unset-default", "info", "import", "fork",
34+
"versioning", "delete",
35+
} {
3236
if !isWorkspaceRootShortcut(command) {
3337
t.Fatalf("isWorkspaceRootShortcut(%q) = false, want true", command)
3438
}
@@ -46,11 +50,18 @@ func TestWorkspaceRootShortcutsAreHiddenAliases(t *testing.T) {
4650
}
4751

4852
out := captureStderrText(t, printUsage)
49-
for _, hidden := range []string{" mount", " unmount", " create", " list", " import", " fork", " delete", " reset"} {
50-
if strings.Contains(out, hidden) {
51-
t.Fatalf("top-level help should not document hidden shortcut %q:\n%s", hidden, out)
53+
for _, documented := range []string{
54+
"Workspace Shortcuts", "mount", "unmount", "create", "list", "clone",
55+
"default", "set-default", "unset-default", "info", "import", "fork",
56+
"versioning", "delete",
57+
} {
58+
if !strings.Contains(out, documented) {
59+
t.Fatalf("top-level help should document workspace shortcut %q:\n%s", documented, out)
5260
}
5361
}
62+
if strings.Contains(out, " reset") {
63+
t.Fatalf("top-level help should not document non-workspace shortcut %q:\n%s", "reset", out)
64+
}
5465
}
5566

5667
func TestCompactDisplayPathUsesParentAndFilename(t *testing.T) {

cmd/afs/main.go

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,9 @@ func main() {
107107

108108
func isWorkspaceRootShortcut(command string) bool {
109109
switch command {
110-
case "mount", "unmount", "create", "list", "info", "import", "fork", "delete":
110+
case "mount", "unmount", "create", "list", "clone", "default",
111+
"set-default", "unset-default", "info", "import", "fork",
112+
"versioning", "delete":
111113
return true
112114
default:
113115
return false
@@ -140,7 +142,7 @@ func printUsage() {
140142
fmt.Fprintf(w, "%sCommands:%s\n", bold, reset)
141143
fmt.Fprintf(w, " %sstatus%s %sshow AFS status and local workspace mounts%s\n\n", bold, reset, dim, reset)
142144

143-
fmt.Fprintf(w, " %sws%s (workspace) %smount, unmount, create, list, import, fork, versioning, delete%s\n", bold, reset, dim, reset)
145+
fmt.Fprintf(w, " %sws%s (workspace) %smount, create, list, clone, defaults, import, fork, versioning%s\n", bold, reset, dim, reset)
144146
fmt.Fprintf(w, " %sfs%s (filesystem) %sread, search, and safely write workspace files%s\n", bold, reset, dim, reset)
145147
fmt.Fprintf(w, " %scp%s (checkpoint) %screate, list, show, diff, restore%s\n", bold, reset, dim, reset)
146148
fmt.Fprintf(w, " %slog%s %sWorkspace file-change log%s\n\n", bold, reset, dim, reset)
@@ -151,15 +153,20 @@ func printUsage() {
151153
fmt.Fprintf(w, " %sdatabase%s %sadvanced database operations%s\n", bold, reset, dim, reset)
152154
fmt.Fprintf(w, " %smcp%s %sstart the MCP server%s\n\n", bold, reset, dim, reset)
153155

156+
fmt.Fprintf(w, "%sWorkspace Shortcuts:%s\n", bold, reset)
157+
fmt.Fprintf(w, " %sOmit \"ws\" for:%s mount, unmount, create, list, clone, default, set-default,\n", dim, reset)
158+
fmt.Fprintf(w, " unset-default, info, import, fork, versioning, delete\n")
159+
fmt.Fprintf(w, " %sExample:%s %s%s mount demo ~/demo%s %s(same as %s ws mount demo ~/demo)%s\n\n", dim, reset, orange, bin, reset, dim, bin, reset)
160+
154161
fmt.Fprintf(w, "%sExamples:%s\n", bold, reset)
155162
fmt.Fprintf(w, " %s%s auth login%s\n Sign in to AFS Cloud via browser.\n", orange, bin, reset)
156-
fmt.Fprintf(w, " %s%s ws mount getting-started ~/getting-started%s\n Mount a workspace to a local folder.\n", orange, bin, reset)
157-
fmt.Fprintf(w, " %s%s ws unmount getting-started%s\n Stop managing that workspace; keep local files.\n\n", orange, bin, reset)
163+
fmt.Fprintf(w, " %s%s mount getting-started ~/getting-started%s\n Mount a workspace to a local folder.\n", orange, bin, reset)
164+
fmt.Fprintf(w, " %s%s unmount getting-started%s\n Stop managing that workspace; keep local files.\n\n", orange, bin, reset)
158165

159166
fmt.Fprintf(w, "%sCommon Flows:%s\n", bold, reset)
160-
fmt.Fprintf(w, " %sFresh setup:%s %s%s auth login%s → %s%s ws mount getting-started ~/getting-started%s\n", dim, reset, orange, bin, reset, orange, bin, reset)
161-
fmt.Fprintf(w, " %sNew workspace:%s %s%s ws create demo%s → %s%s ws mount demo ~/demo%s\n", dim, reset, orange, bin, reset, orange, bin, reset)
162-
fmt.Fprintf(w, " %sImport existing files:%s %s%s ws import --mount-at-source demo ~/src/demo%s\n\n", dim, reset, orange, bin, reset)
167+
fmt.Fprintf(w, " %sFresh setup:%s %s%s auth login%s → %s%s mount getting-started ~/getting-started%s\n", dim, reset, orange, bin, reset, orange, bin, reset)
168+
fmt.Fprintf(w, " %sNew workspace:%s %s%s create demo%s → %s%s mount demo ~/demo%s\n", dim, reset, orange, bin, reset, orange, bin, reset)
169+
fmt.Fprintf(w, " %sImport existing files:%s %s%s import --mount-at-source demo ~/src/demo%s\n\n", dim, reset, orange, bin, reset)
163170

164171
fmt.Fprintf(w, "%sConfig:%s %s%s%s\n", bold, reset, dim, compactDisplayPath(configPath()), reset)
165172
}

0 commit comments

Comments
 (0)