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
Give a project a page: its branches, its dependencies, and a way out
Work item V3 of the M3 plan. The projects list linked to /projects/[id], which
was an empty directory, so V1 removed the link rather than leave a 404. This
builds the page and puts the link back.
The branch table is the point of it. Everything needed to decide which branch
is worth reviewing sits in the row: how far it has moved from the default
branch either way, what its last commit said, and a Review action that carries
the branch to the new-review screen already chosen. Arriving at a form that has
forgotten the choice just made is the kind of friction that makes a tool feel
like paperwork.
Dependency links get their own panel, because a link is what makes a review of
two repositories possible: it names the package the primary consumes, so a
changed exported type can be traced to the consumer that never migrated. The
form offers only projects that could actually be linked, excluding itself and
anything already linked, so it cannot present a choice the repository would
refuse. Where the repository does refuse, its own message is shown rather than
restated in different words.
Deleting is a two-step confirm, refused while any review still refers to the
project, and it takes the clone with it. The row and the clone must not outlive
each other in either direction: a clone with no row is disk nobody can account
for, and a row with no clone is a project every screen offers and nothing can
use.
Driving the live server found what the test had missed. Delete removed the bare
repo but left the project's directory behind, empty, one per deleted project,
forever. The test asserted on the clone path, which was genuinely gone, so it
passed. It now asserts the parent directory is gone too, and the route removes
it. Verified against a fresh server: zero directories left after a delete.
Two mutations checked and both caught: leaving the clone on disk, and offering
already-linked projects as link candidates.
0 commit comments