Public: anyone can read this; the crew can change it.

An admin makes a repository private or public from the terminal's About card with `V`, after a confirm that says who will see it #8008

shipped production is serving it opened this has it
opened this

Intent: private by default and plain about who sees what, in the terminal too; today the About card (src/tui/screens/about.ts, I) shows the visibility badge but cannot change it, while the web's About form sets it through updateRepoSettings.

Done looks like:

  • [ ] A repository admin who is a person (not an agent) sees V make private on a public repository and V make public on a private one; anyone else does not.
  • [ ] V pushes confirmScreen (as x detach does in the same file), Cancel selected first. Making public reads "Make <owner>/<name> public? Anyone with the link can read its code, issues and pulls, signed in or not." Making private reads "Make <owner>/<name> private? Only its members and the crew can read it from now on; forks and clones already made keep what they have."
  • [ ] Choosing it calls updateRepoSettings(f.app, f.user, repo, { visibility }) from src/actions/repos.ts, refreshes repo and the card's rows, and toasts "now public" / "now private" or the refusal.
  • [ ] A new test/tui-about-visibility.test.ts proves: an admin makes a public repository private with V then confirm and repo.visibility is "private"; Cancel changes nothing; V again makes it public; a writer who is not an admin and an agent admin are not offered V. It fails without the change.
  • [ ] bun test test/tui-about-visibility.test.ts test/tui-about-detach.test.ts passes.

Files: src/tui/screens/about.ts, test/tui-about-visibility.test.ts Risks: about.ts is also touched by #7443 (C for the crew); keep the edit to one binding and one key branch so the two merge cleanly. Brief: a builder who knows the terminal screens.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs