GIT-015 JS: jab post ref-target resolution — ?/project funny ref + no-? retargets umbrella main

Two defects on jab's POST push-target resolution, one theme (the URI ref/path slot picks the wrong remote ref). *A.* jab post ssh://host/path?/project builds a receive-pack update for refs/heads//project — a doubled slash git rejects as a "funny refname" (refusing to update funny ref 'refs/heads//beagle' remotely); per URI ?/project is the absolute project trunk and the trunk is named as the project, so it must resolve to refs/heads/project, but jab splices the raw post-? text /project (absolute-marker / and all) into refs/heads/<X>, leaking the /. *B.* Dropping ? (jab post ssh://host/path/project) puts project in the path, leaves the ref unspecified, and jab silently retargets the *umbrella* refs/heads/main (an unrelated history) instead of the path's project or a clear refusal — a cross-project footgun the FF gate masks only by accident. Fix: resolve ?/project to the trunk branch, never emit an empty ref segment, and never silently push cur onto an unrelated main. Push path is GIT-013; wire alias documented at keeper/REFADV.c §"Wire mapping". Method: Issues.

Input

Context

Goals

Constraints

WIP

Design decisions

TODOs

Blockers and bummers

Outcome