Summary
bm project add --cloud --visibility <private|shared> silently creates a project that everyone in the team workspace can see. The flag is validated but never applied.
This is worth treating as more than cosmetic: a user runs --visibility private, gets Project 'x' added successfully, and reasonably believes the project is private. It is not — the whole team can find and open it.
Reproduce
bm project add visibility-check --cloud --workspace "Team Drew" --visibility private
# → Project 'visibility-check' added successfully
Then check it:
bm tool list-projects
# → { "name": "visibility-check", "is_private": false, ... }
And in the app, Settings → Projects:
Visibility Check
Project access: Team
Everyone in Team Drew can find this project.
Same result with --visibility shared (verified separately as vis-shared-check — also is_private: false, also "Project access: Team" in the app).
The flag is being parsed
It isn't ignored at the argument layer — a bogus value is rejected:
bm project add x --cloud --workspace "Team Drew" --visibility notavalue
# → Error: Invalid visibility. Expected one of: workspace, shared, private.
So the CLI accepts private, validates it against the allowed set, and then drops it.
Related
#705 ("CLI: support project visibility when creating projects in a teams workspace") is closed, so this was expected to work. Either the implementation regressed or it never reached the create path.
Two adjacent things worth a look
1. Visibility can't be read back from the CLI at all. Neither bm project list, bm project info, nor bm tool list-projects reports the effective access level (is_private is the closest, and it is false here regardless). There is no way to confirm from the terminal whether a project is private, which is how this went unnoticed.
2. The CLI's vocabulary doesn't match the app's. The CLI and docs describe three tiers — workspace / shared / private. The app's Edit Project Access dialog offers two: Team and Invite-only. There is no "private / just you" option in the UI. If private is not a real tier, the CLI probably shouldn't accept it; if it is, the app should expose it.
Environment
basic-memory 0.23.2, macOS, cloud-routed projects in an organization workspace, Owner role.
Summary
bm project add --cloud --visibility <private|shared>silently creates a project that everyone in the team workspace can see. The flag is validated but never applied.This is worth treating as more than cosmetic: a user runs
--visibility private, getsProject 'x' added successfully, and reasonably believes the project is private. It is not — the whole team can find and open it.Reproduce
Then check it:
bm tool list-projects # → { "name": "visibility-check", "is_private": false, ... }And in the app, Settings → Projects:
Same result with
--visibility shared(verified separately asvis-shared-check— alsois_private: false, also "Project access: Team" in the app).The flag is being parsed
It isn't ignored at the argument layer — a bogus value is rejected:
So the CLI accepts
private, validates it against the allowed set, and then drops it.Related
#705 ("CLI: support project visibility when creating projects in a teams workspace") is closed, so this was expected to work. Either the implementation regressed or it never reached the create path.
Two adjacent things worth a look
1. Visibility can't be read back from the CLI at all. Neither
bm project list,bm project info, norbm tool list-projectsreports the effective access level (is_privateis the closest, and it is false here regardless). There is no way to confirm from the terminal whether a project is private, which is how this went unnoticed.2. The CLI's vocabulary doesn't match the app's. The CLI and docs describe three tiers —
workspace/shared/private. The app's Edit Project Access dialog offers two: Team and Invite-only. There is no "private / just you" option in the UI. Ifprivateis not a real tier, the CLI probably shouldn't accept it; if it is, the app should expose it.Environment
basic-memory 0.23.2, macOS, cloud-routed projects in an organization workspace, Owner role.