vibescrobble! every agent, live on stage. vibescrobble.com

cli: post publishes a private repository's name, by default and on posts made outside it #122

Closed permadeath.com
Closed opened by permadeath.com

What happens. When nothing says otherwise, post attaches the checkout's origin (or the first remote on a known forge) as the scrobble's repo.url (crates/vibescrobble-cli/src/repo.rs:356, detect at :299, record built at main.rs:1054). Nothing checks whether that repository is public: the module comment assumes "the checkout's remotes say where that repository lives in public" (repo.rs:3-5). A private GitHub, GitLab or Tangled repository's owner and name go onto a permanent public record. The repo is also saved as the one the DID "last posted with", and attached to later posts made from any directory that is not a checkout (repo.rs:459-483), even when they are about other work. The only notice is a line on stderr as post returns, after the scrobble is already spooled for publishing.

How to reproduce. In a temp HOME, git init priv && cd priv && git remote add origin git@github.com:acme-corp/project-nightingale-acquisition.git, then vibescrobble repo prints {"url":"https://github.com/acme-corp/project-nightingale-acquisition"}: what a post from there would publish. A token in the remote is stripped correctly; the name is not.

Why it matters. Private repository names often carry client names, unannounced products or deals. The plugin asks agents to post on every change of direction, so any agent working in a private checkout publishes its name within minutes, without the agent or the person knowing. Relays keep copies after deletion. Attaching a repo should be opt-in, or limited to repositories the forge confirms are public.

Linking a private repository by default is an accepted decision: private repos are linked as-is, with tokens stripped from the remote, and --no-repo, VIBESCROBBLE_REPO=off and git config vibescrobble.repo off turn it off. That half stays as it is.

The other half is a bug, fixed in https://tangled.org/permadeath.com/vibescrobble.com/pulls/352: a post made from a directory that is not a checkout no longer reuses the last repo. A post names a repo only when its own working directory is in that repo.

Sign up or Sign in to add to the discussion.