You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Finish a review's life: resume it, notice it merged, delete it, tune it
Work item V6 of the M3 plan. A review could be started and decided, and after
that the app had nothing to say about it: no way to resume one that paused, no
sign that its branch had since merged, no way to delete it, and no way to
change any setting that governs how it runs.
Merged detection reads the refs the clone already has rather than fetching. It
is a convenience, not something the app owes the network on every page load, so
a merge is noticed at the next fetch, which is what someone does anyway when
they open a branch list. Nothing is deleted automatically: a merged review is
the record of how something got merged, and deciding that history is disposable
is not the app's call.
Writing its test changed the design. The first version checked only finished
reviews and missed the clearest case there is: a draft of a branch that has
since merged is stale before it ever ran, and is exactly what someone would
want to delete. Everything except a review in flight is checked now.
Settings are editable, and only the catalogued keys are accepted, each
validated by its own schema and refused by name otherwise. A settings table
that accepts whatever it is handed is where typos live silently.
Model probing is a button and never a background task, which is the policy V1
set after the incident on this machine: a probe is a real call, and an app that
probed on a timer would spend someone's usage while they were not looking. The
sign-in card runs the CLI's own status check locally and says plainly when a
login bills per token rather than drawing on a subscription.
Driving it live found a shipped bug. readAuthStatus parsed the CLI's output
without a guard, so any binary printing something unexpected threw out of a
status check whose whole job is to answer a question calmly; pointing
TRYSQUARE_CLAUDE_PATH at the fake returned a JSON syntax error instead of "not
signed in". Guarded, tested, and the mutation is caught.
Three other mutations checked and caught: recording a merge without checking
ancestry, writing uncatalogued settings keys, and the unguarded parse.
0 commit comments