Show the repository state repo show now reports !59

merged merged by cmc on 2026-09-07 04:11 UTC · krz/gitbay-ios:repo-state into main

Discussion

cmc

repo show began reporting the caller's own state (krz/gitbay#178), so the app can stop guessing at it.

Watch and mute were two stateless buttons because nothing reported which one you were in. The screen now shows the current setting and offers only the transitions that exist: watching offers mute, muted offers watch, and the neutral default offers both. It offers no third option, because no command returns you to the default — repo watch and repo unwatch are the only two, and a control implying otherwise would promise something the server cannot do. An unrecognised value from a future server reads as the default rather than masquerading as watching.

The bookmark state comes from the same read, so the separate repo bookmarks call and the three-state optional that covered its failure are gone — a repository screen is one request lighter than before.

A fork says what it was forked from. When the field is absent the screen says nothing at all: the server withholds it when the parent is not readable, so claiming "not a fork" would leak what that withholding protects.

Each action re-reads only repo show afterwards, so the control follows the server rather than an assumption, without reloading the tree and README to find out.