The beagle tree splits into subprojects; js/ — jabc, the JavaScriptCore runtime building the jab binary — becomes a separate project consuming libabc and libdog (DOG-007) as submodules. JAB-001 already divorced jab from be (standalone runner, upward be/-scan), so the runtime has no build-time ties to the beagle dogs: jab links ${JSC_LIB} dog abc-core ${sodium} and nothing else. What remains is repo mechanics plus untangling the test references that reach outside js/. Blocked on DOG-007. Method: Issues.
js/CMakeLists.txt compiles ../abc/{POL,NET,TCP,UDP}.c straight into jab (they are stripped from abc-core), so jabc needs the abc SOURCES — the libabc submodule provides them; only the ../abc spelling changes to the in-repo path.js/CMakeLists.txt reaches outside the dir twice: ${CMAKE_SOURCE_DIR}/test/js/get/zip.js (beagle top-level test/js/) and ${CMAKE_SOURCE_DIR}/../be/test/{ulog,store}.js (the sibling beagle-ext checkout) — the latter already breaks configure when be/ is absent, filed as JS-095; JS-061 is the umbrella for sorting JS tests to their owning repo.option(WITH_JS) + add_subdirectory(js); no other beagle module links against anything in js/.jab binary; after the split, beagle-side e2e runs need a jab built from the new repo (PATH or a pinned submodule — see the T2 ruling).js/ content at the root, abc + dog submodule pins, project() + JSC discovery; builds jab and runs the full JABC* ctest suite green with no sibling checkouts.WITH_JS + add_subdirectory(js); the full beagle ctest stays green, with jab-dependent tests moved out or pointed at an external jab.add_test and set_tests_properties.jab for its e2e tests, or fully detach and take jab from PATH / -DJAB=?jabc (binary stays jab) — confirm before creating.git subtree split --prefix=js off the exported beagle main (e5071f32) → /home/gritzko/src/jabc, 96 commits, split head 14b6d109. Repo name jabc confirmed by the user 2026-07-06.46f87bcd) mounts jabc at js/ (WITH_JS + add_subdirectory(js) unchanged), pinning a known-good jab for beagle's e2e tests.91fd5f14 drops the js (and abc) gitlinks — beagle keeps only dog/ (libdog); no WITH_JS, no add_subdirectory(js); jab comes from -DJAB_BIN=/$JAB_BIN/PATH (be/CMakeLists.txt).jab, NOT jabc: github.com/gritzko/jab, history reforked (dd11f07 "fork off the parent repo" adds abc+dog submodules; b58be37 adds GitHub CI + folds abc INTO libdog, ABC_DIR=dog/abc).project(jabc C CXX) dual-mode block (ABC_DIR for the stripped abc/{POL,NET,TCP,UDP}.c, guarded add_subdirectory(abc)/(dog), existence-gated JABCzip); abc server-sync 83d20aa + dog 0ff3eb7 pins; jabc main 3857f64; ctest 94/95 (RONtest only; _Alignof/_Thread_local → C23 keywords fixed in abc for the C++ TUs)./home/gritzko/src/jabc, origin wired.main = 14b6d109 (96 commits).46f87bcd: js/ is the jabc submodule; WITH_JS + tests unchanged; beagle ctest 386/389 (all 3 reds pre-existing/known).main b58be37 (fork dd11f07 + CI, pushed); be resolves jab via -DJAB_BIN=/$JAB_BIN/PATH (be/CMakeLists.txt); the abc pin is moot — abc rides inside libdog. (3857f64 superseded by the refork.)dog/ submodule (46f87bcd, 91fd5f14, b0fb0ce4).46f87bcd (dog/+js/ become submodules) → a2cbbe00 (repin subs) → 91fd5f14 (js/abc gitlinks dropped, full detach, libdog-only) → b0fb0ce4 (bump libdog); abc c89bb1af (C23 keywords for the C++ TUs).main b58be37 (subtree-split history through 14b6d10, then dd11f07 fork + b58be37 GitHub CI); only submodule dog (libdog), abc sources via ABC_DIR=dog/abc.jab from PATH/-DJAB_BIN=); the jabc repo name (it is jab); pre-refork heads 3857f64/14b6d109 as published mains.b0fb0ce4 has no js/ tree entry, .gitmodules lists only dog; jab main tracks origin/main with no unpushed commits; console et al. verified working via ~/bin/jab.