index/subs.js:82-101 wraps the tree read in a bare catch (e) { return []; },
so a corrupt tree, an unreadable pack or a missing commit is indistinguishable
from a repo without submodules: view/wtstat.js and stage.js quietly show and
stage nothing. status.stageOf already carries a note for the same case.
Found in the 2026-09-18 index review.
Return {mounts, err} and let the view say so, the way stageOf does.
mounts() -> { mounts, err }; err is the WHOLE sentence
the view prints, as status.js stageOf carries its note.err
""); only an ODB that could not answer speaks up.subs.js itself: submodulePaths
spells an unreadable tree and a repo with no .gitmodules
the very same way.add/rm REFUSE on err rather than sweeping the parent
alone; bee wts puts the words after both frames, so no
column moves (be's CI-004).sync.js (commit, merge follow) and done.js took the
new shape mechanically only: those writers still read an ODB
failure as "no mounts". Whether they should refuse is
gritzko's call, not this ticket's.