workspace(action: activate) Output Optimization
workspace(action: activate) now returns a slim orientation card instead of the full raw config dump.
New response shape
{
"status": "ok",
"project": "my-project",
"project_root": "/home/user/my-project",
"read_only": false,
"languages": ["rust"],
"index": { "status": "not_indexed", "hint": "Run index(action: build) to enable semantic_search." },
"memories": ["architecture", "conventions"],
"hint": "CWD: /home/user/my-project. Run workspace(action: status) for health checks and memory staleness.",
// RW only:
"security_profile": "default",
"shell_enabled": true,
// Multi-project workspaces only:
"workspace": [
{ "id": "root", "root": ".", "languages": ["rust"], "depends_on": [] },
{ "id": "web", "root": "packages/web", "languages": ["typescript"], "depends_on": ["root"] }
],
// When dependencies were auto-registered:
"auto_registered_libs": { "count": 12, "without_source": 3 }
}
What changed
| Before | After |
|---|---|
Full config object (all TOML fields) | Slim orientation card |
| Security fields always present | Security fields only in RW mode |
| No workspace on activation | workspace array included when multi-project |
| No memory list | memories array (topic names) |
| No index status | index.status field |
Focus-switch returned minimal {activated: {project_root}} | Focus-switch returns the same full card |
auto_registered_libs was an array of objects | Now a summary {count, without_source} |
Hint scenarios
| Scenario | Hint |
|---|---|
| First activation (home project) | "CWD: …. Run workspace(action: status) for health checks…" |
| Returning to home | "Returned to home project. CWD: …. Run workspace(action: status)…" |
| Switching away (RO) | "Browsing {name} (read-only). CWD: … — remember to workspace(action: activate, path: ...)" |
| Switching away (RW) | "Switched project (read-write). CWD: … — remember to workspace(action: activate, path: ...)" |
workspace(action: status) for full details
The orientation card is intentionally compact. For detailed health checks, memory staleness
scores, and drift detection, call workspace(action: status) after activation.