GET-039: store symlinks as git blobs and NEVER follow them — adopt git's model so the be self-locator is just a 120000 leaf, dropping ALL self-locator special-casing

The JS extension special-cases the be self-locator everywhere it meets the submodule graph (a path=="be" branch in get.js mountGitlink/recurseSubMounts, a refusal in submount.mount, a be -> . materialiser — GET-036/GET-037). All of it papers over ONE root mistake: a symlink (be -> .) stored/treated as a 160000 gitlink instead of a 120000 blob. Adopt git's model — a symlink IS a blob whose bytes are the link target verbatim, tree mode 120000, hashed via lstat+readlink, NEVER followed during a walk and never a submodule — and be -> . becomes an ordinary leaf so every special-case dissolves. Scope: be/ JS (classify/post/get/checkout). See GET-036, GET-037, SUBS-041; method Issues.

Input

Context

Goals

Constraints

WIP

Design decisions

TODOs

Blockers and bummers

Outcome