The test files were COPIED across both sides — every test now exists in the binding tree AND the be/ script tree. An agent must sort each file by what it tests and DELETE the copy on the wrong side: JABC binding tests keep their copy in beagle/{js/test,test/js} and lose the be-side copy; be/-script tests (verbs, views, core units, parity/, lib/) keep their copy in be/test (beagle-ext submodule) and lose the beagle-side copy. No moving, no SCM patch dance — the copies already exist; this is classify + rm the redundant one, then rewire the build. In the src/journal layout (a git repo of submodules), replacing old beagle-journal/. Issues.
+ deletes. Do NOT treat it as one accidental collision — ALL are dupes.
be→beagle-ext (JS scripts), beagle→core
C/C++ + JABC bindings, html→site. be <name>/jab runs the be/ shard.
beagle/test/CMakeLists.txt GLOBs test/js/{get,post,put,delete}/*/run.sh
into be-js-<verb>-<case> ctest targets (if(WITH_JS)) — these drive be/ verb scripts, so they are be-side and their beagle copy must go.
the wrong side is rm'd.
beagle/test/js + beagle/js/test (JABC surface only).be/-script tests → be/test (in the beagle-ext submodule).count) after the sort; deleting a dupe must not delete the only home.
rm; a wrong delete loses the test.
home is beagle; a test exercising a be/{core,shared,verbs,views,view} script → be-script, home is be/test. Keep that copy, rm the other.
beagle/test/js: be-script (→ be/test, rm from
beagle) = verb dirs get/put/post/delete/patch, views bro/diff/ls/regex/spot, core units loop/emit/resolve/barrier/store/ulog, parity/, lib/. Binding units already in beagle/js/test stay; ulog.js has a copy on each side — keep the binding one in js/test, the be/shared one in be/test.
BE_BIN/JABC) exported by the
parent build; the be shard carries no C build.
exist between beagle/js/test and beagle/test/js (only name ulog.js collides — two genuinely DIFFERENT tests). be/test did not exist. So the task is MOVE+rewire (single-copy files), not delete-dupe; nothing to rm.
be/test/ and ported lib/assert.js + the two LIVE, wired,
portable be-shard unit tests ulog.js (shared/ulog) + store.js (shared/store) — both run on jab via the upward be/-scan, both green.
home in be/test + rewiring): beagle/test/js/ulog.js, beagle/test/js/store.js.
${CMAKE_SOURCE_DIR}/../be/test/{ulog,store}.js, guarded if(EXISTS ...). (Did NOT touch the be-js-* GLOB in beagle/test/CMakeLists.txt — see below.)
regex/spot/ls/parity + *case.sh) — UNBLOCKED and MOVED by the later JAB-001/ TEST-003 work: e542b67e "jab: main.js bootstrapping scheme; move be tests out" re-homed it to be/test/ (own CMakeLists, be-js-<verb>-<case> glob, _BE_WILL_FAIL xfails), and d80bdb5c de-nativified the cases. The former beagle test/js glob block is GONE (beagle/test/CMakeLists.txt:223-224).
to be/test/{barrier,emit,loop,resolve}.js with the move (no longer in beagle/test/js).
(the 10 fails are pre-existing JS diff/regex/spot view stubs, unrelated).
e542b67e + d80bdb5c; js/ itself became a submodule, JAB-005 46f87bcd.)
JAB-001/JAB-005 restructure docs; board delisted 2026-07-07.
every rm. Verify the correct side is populated before deleting the dupe.
BE_BIN/JABC contract before relying on be/test for the green count.
be/test + parent gitlink bump areseparate posts; serialize them (one shard at a time).
in beagle/test/js and be/test was absent. So this was a sort+move, not a delete-the-dupe.
be/test/ with lib/assert.js, ulog.js, store.js (the two
live, wired, portable be-shard unit tests). Deleted the now-redundant beagle/test/js/{ulog,store}.js. Rewired the js CMakeLists (JABCulogLib/JABCstore → ../be/test/*.js, guarded — JS-063 0c2063ee).
e542b67e
("move be tests out", 2026-06-25) + d80bdb5c ("js tests pass, no native use", TEST-003) — the whole be-js-* suite (verbs/views/parity/case libs + the JSQUE repros) now lives in be/test/ with its own CMakeLists; binding tests live in the jab runtime repo test/ (js/ became a submodule, JAB-005 46f87bcd). beagle/test/js keeps only the beagle-owned binding fixtures get/{zip,delta}.js + lib/assert.js (EXISTS-gated from the js CMake) — every test has exactly ONE home; the JS-061 goal holds in the new layout.
file (current loc) class home action ---------------------------------- --------- ---------- ------------------- beagle/js/test/*.js (ansi codec binding beagle KEEP (already home) git hash heap hit hunk index mmap net pack packidx pol require sha stat tok tty uri weave) + jabc_test.cpp + run-015/054/055.sh + ulog.js(abc) beagle/test/js/get/zip.js binding beagle KEEP (tests zip) beagle/test/js/get/delta.js binding beagle KEEP (tests git.delta) beagle/test/js/ulog.js (shared) be-script be/test MOVED → be/test/ulog.js beagle/test/js/store.js (shared) be-script be/test MOVED → be/test/store.js beagle/test/js/lib/assert.js helper both COPIED → be/test/lib
(kept on beagle: still sourced)
beagle/test/js/{get,put,post, be-script be/test LEFT (harness rewrite delete,patch}/*/run.sh + needed — deferred) lib/{get,put,post,patch}case.sh beagle/test/js/{bro,diff,ls,regex, be-script be/test LEFT (deferred, as above) spot}//run.sh + /lib/case.sh beagle/test/js/parity/* be-script be/test LEFT (deferred, as above) beagle/test/js/{barrier,emit, be-script (?) LEFT (stale repro, flagged) loop,resolve}.js (repro) beagle/test/js/lib/{parity,reanchor be-script be/test LEFT (harness deps, deferred) } + put/{dumprows,mtimeinv, parentsha,tipsha}.js + parity/dumprows.js