//name:anchor is a link — an authority needs no path, //localhost:8080 includedRuled 2026-09-18 (gritzko): //localhost:8080 is not a practical URI, parse it as a link. DOG-050 made an authority demand a path, to keep that text prose, and the splitter then leaked: tok.link("//localhost:8080") gives authority localhost beside target //localhost (QJAB-015). Drop the guard instead of patching the leak: an authority may carry its anchor directly. The useful by-product is a whole-repo query, //libdog:'ok64'.
tok/LINK.rl: authority = "//" seg "/", authed = authority (relanch | authsym | scope); the slash and a path are mandatory.tok/LINK.c.rl a_auth fires its end action before the : kills the branch, and LINKSpanDrop only clears half-set spans.test/TOK01.c:1428:yd (PPSPL) and :1484; in quickjab test/link.js:127 and :186.localhost:8080 and example.com:443 fuse nothing, an anchor is evidence only past a slash.dslash guard keeps a scheme:// run prose, so http://localhost:8080/x opens no authority either way.authed = "//" seg ("/" (relanch | authsym | scope) | anchor | sym): //localhost:8080, //libdog:'ok64', //bee:main fuse.localhost, an EMPTY target, kind line, line 8080; a search or symbol anchor sets scope.http://localhost:8080/x, https://foo.io/bar.c, a bare //, //repo/x.c and //repo alone stay as DOG-050 pinned them.//localhost:8080 are amended here; no test older than DOG-050 is edited.dog/build, and that agent takes the dog suite as its baseline.test/link.js:127 and :186, bee's handling of an empty target.//repo:30) means nothing; it fuses all the same and the resolver says so in words.//localhost:8080, //libdog:'ok64', //bee:main red in the lexers and the splitterauthed, the header spec; LINK.c.rl authority span set on the accepted parse onlytest/link.js and bee's empty-target handling handed to their tickets