Index of Beagle's open work: one topic per dir of numbered Plan-shaped tickets, cleared by the parallel Issues fix-and-land loop. Each topic lists its OPEN tickets as one-liners; per-topic detail lives in todo/<TOPIC>/README.mkd, landed history in be log. A fully-landed ticket drops from its topic; a closed topic drops from here.
BE/REVIEW.mkd); 2026-07-09 hive/context audit → BE-031..035.
- BE-031 HIGH — the hive: S1..S3 DONE 2026-07-09 uncommitted (srcRoot→<meta>/work, get seeds cells, live-smoked); open: S4 tests/prose, S5 self-hosting ruling, drop the SRC_ROOT shell export
- BE-032 HIGH — CLI drops the cwd sub-path: verbs resolve args at the wt ROOT (cd MAIN/src && be cat main.c silently empty); verified still open post-a763a86a; pager/CLI disagree
- BE-033 MED — RULED+implemented 2026-07-09 uncommitted: cached-remote dropped, scheme-less //X = worktree or NAVNONE; cached tests dropped/flipped, suite = baseline; pending land only
- BE-034 MED — be get //name FFs the NAMED wt to its branch tip; spec: checkout the rev that wt is ON, into the context wt (compounds BE-030)
- BE-035 LOW — ls/status silently drop a ?rev context; _snapBe omits authority/verb, leaks spell scope past pager reentry
- BE-037 HIGH — FIXED 2026-07-09 uncommitted: ./ canonicalized (diff/cat/why), // = topWt everywhere (memoized launchTop), NAVNONE on any miss; repro cases added, suite = baseline; pending land
- BE-030 HIGH — context-confined path resolution: get anchors write/clone on raw io.cwd() (:get in a //parent context with cwd in a submod writes the sub's wtlog); resolve() //authority-in-rel escapes the tree → unify resolve(context,base,rel) under $SRC_ROOT/<name> (continues BE-011)
- BE-010 CRIT — JS PATCH weaves the COMMIT tree as ours → clobbers dirty wt edits (native PATCH-002/JGET-004 twin)
- BE-011 HIGH — wtdir SRC_ROOT confinement is lexical; //../name escapes the root (DOG-009 twin)
- BE-012 HIGH — emitPack 256B deflate slack overflows on >4MB incompressible blobs → push aborts
- BE-013 HIGH — wire.js child/fd lifecycle: push() finally leaks stdin → reap HANGS; curl leaks
- BE-014 HIGH — DELETE ignores the Host slot → be delete //origin?feat tombstones the LOCAL branch
- BE-015 HIGH — POST #/#!/#msg! message forms unimplemented (reuse missing, forget-! dropped)
- BE-016 HIGH — pager emits file-content control bytes to the tty (ANSI/OSC injection)
- BE-017 HIGH — io.mmap-and-never-unmap leak class, 4 sites (ignore/diff/gitmodules/why); gated on JAB-006
- BE-018 MED — hunk-body tok32 end wraps at 16 MiB (log/why) → large-file views corrupt
- BE-019 MED — thin-pack buffer sizing: silent object drop + >1GB balloon on corrupt input
- BE-020 MED — verb URI-slot gaps: HEAD drops Path, pathless PUT force-pushes, host decoded 3 ways
- BE-021 MED — classify: exec bit ignored, dir/merge baseline mismatch, nested .be DIR floods unk
- BE-022 MED — be/ helper duplication sweep (~9 sites)
- BE-023 MED — view semantics: grep/spot drop args, theme bold sticks, pager escape-split leak
- BE-024 MED — robustness/doctrine: unguarded parse aborts walk, non-crash-safe _book, wrong-target rollback +4
- BE-025 LOW — perf/style: repeated full-wtlog scans, double hunk retention, redundant re-encode, whitespace
- BE-029 — verb discovery must be-climb from CWD (nested be/ shards): html/be publication verbs found while core inherits up-tree; wt done, pending land (prereq for MARK mark)
- BE-003 — uniform error line: name+verb+URI+code; needs a ruling
- BE-008 — bare be put sub-recursion still sprays PUTNONE/NONE + banner hunk (post-arm gitlink bump landed quiet)
- BE-036 LOW — pager word spells expand shell-style globs (put *.c, delete src/*); reuse Tab-completion's confined FS walk, pager multiplies raw words, verbs still resolve
- BE-038 MED — todo view verb: :todo open-ticket board, :todo TOPIC topic list, :todo TOPIC-123 one ticket; titles, ticket ids and wiki links clickable
- BE-040 MED — done verb LANDED 9dad5857; residual: [done] buttons in :todo rows staged in wt work/BE-040, pending land
- BE-041 MED — [put] buttons on pager status rows (unk/mod/new), plain byte-unchanged; DONE in wt work/BE-041, pending land
- BE-042 OPEN — formal context model: context(cwd) total — tree root //+first segment (wiki/ → //wiki), hive wt //N, sub = parent+mount; two //X rulings await gritzko
- BE-039 HIGH — pager put/delete crossing a sub mount: authorityRepo anchors the run on arg0's FULL path → repo = the SUB, raw rest args resolve in the wrong tree (delete can mis-target); repro in the ticket dirR re-execute MUTATION verbs (post ?ref bare-advance replay) + drop rest args (grep pattern lost on refresh)
- BRO-016 HIGH — follow/click resolver stale post-URI-014: relative follows drop //authority+slots; unify onto the one composer
- BRO-017 HIGH — initial view loses its address (loop.js verb:-only banner) → empty context, bare-verb re-fire on R
- BRO-018 MED — mergeUri slot edits: FILE ctx joined as DIR, RESET eats ?ref, verb!/scheme: tokens mis-peel
- BRO-019 MED — address bar: arrows erase it, Alt-q quits, typed UTF-8 dropped/pasted mojibake, multi-line paste joins
- BRO-020 MED — mouse mapping: status-row/past-EOF/bar-open clicks navigate; wide-char + diff-side column miscount
- BRO-021 LOW — G clamp strands one row; W throws w/o be.wrap; junk wrap"" key; UTF-16 truncation
- BRO-022 MED — Tab completion ignores the view's authority/dir context (launch-tree readdir, bad ./ inserts)
- BRO-023 LOW — wiki drift rulings: Nav.mkd todo_root machinery unbuilt; Bro.mkd keymap = C bro, not the JS pager
- BRO-025 OPEN — three-part O-link spells (context · verb · args), wire form = the invite line; :work update hit the landed mount instead of the row's treeMEM/MEM.mkd).PIDXScan from_off: C core landed 8df1e213; open: jab binding fromOff arg (pack.hpp hardcodes 0) + a JS tail-scan test
- PACK-002 — JS pack writer emits OFS_DELTA (offset-only); jab post feeds RAW today → non-native/bloated packs (follow-up to PACK-001)git submodule add parity
- SUBS-025 — sub GET leaks raw fetch progress to stderr, not hunks
- SUBS-027b — R1 emission, Edited + coord-mismatch axes, loud force/diverged refusal, get reapply, test matrix (be head axis landed b9c6b647)
- SUBS-032 MED — nested abc sub resolves to WRONG source: be head → no-refs HOMENOPROJ; be patch fetches official github, not the local shard
- SUBS-038 LOW — sub re-get with changed .gitmodules url basename fetches the wrong shard → child object-not-found (latent)
- SUBS-039 — submodule-path delegation: PUT arm landed 1c4a97c8; open: DELETE arm (delStage has no sub-crossing split) + shared splitter
- SUBS-040 HIGH — submodule branch tracking: I1-I3 fixed live (untagged); open: dot-branch-advance repro assert + native I4/I5
- SUBS-041 — sub nesting depth cap landed 6388c34e (MAX_SUBMODULE_DEPTH=8); open: a bounded-chain repro test
- SUBS-045 MED — descended read views: core landed 36b1aec0; open: blob:/size: still sub-blind + status/diff/ls nav-target audit100cd237).
- POST-006 — POSTCFLCT false-fires on marker strings → DIS-040be get <path>?<rev> drops the path (no per-file checkout)
- GET-032 — be get offline sub mount: ok yet no files written
- GET-034 — graf/GET.c id maps sized 4096 « GET_MAX_VERS=200000 → silent id drop
- GET-036 — be/ self-locator mis-creation: checkout+mount-classify arms landed b24446c0/f0269b27; open: repro tests, runtime basename-link recheck, jab local-script resolution
- GET-037 — be self-gitlink crash class fixed dbb828e6/064c15f5; open: legacy-160000 repro test; e2e beagle-ext clone still fails (GET-041)
- GET-038 — wt-source store-anchor redirect in-tree (resolveLocalStore) but NO ticket-coded commit; close pending hashlet + GET-041 ruling
- GET-039 — symlinks-as-blobs core landed 3026a5fb/d31b52ea (isSelfLocator gone); open: formal close under the GET-041 rulingjab get divergences from native (differential-probe batch).
- JGET-001 UMBRELLA 13 jab-get defects vs native (severity table + evidence)
- JGET-002 CRIT no FF/ancestry gate → silently clobbers committed local commits (27/28/58)
- JGET-003 CRIT be get ? trunk-switch records WRONG branch → next post rewrites that branch's history
- JGET-005 HIGH ?<branch> fetches TRUNK for non-main/master — pickWant refs/ vs refs/heads/ (case 24)
- JGET-006 HIGH pre-existing empty .be/ dir crashes jab get (hermetic-shield shape; masks many cases)
- JGET-007 HIGH sub fetch by exact pin: LOCAL sources fixed d80bdb5c (SUBS-046); WIRE sources still exact-pin-only, no branch-fetch fallback
- JGET-010 MED bareword path-vs-branch misroute: no branch-switch / bare-sha detach / ?.. (DIS-017)
- JGET-011 MED parseRemote misderives store root for bare file:<store> (case 29; the .be-FILE-mount half landed as GET-038)
- JGET-012 MED relative submodule url ../sub not resolved against parent source (case 50, SUBS-020)
- JGET-013 MED --force leaves a tracked orphan on disk (no orphan sweep; case 49, GET-016)
- JGET-014 LOW same-line weave: jab cnf/rc=1 vs native mrg/rc=0, ours/theirs swapped (case 66)diff: view.
- DIFF-007 — diff:<largefile> silently empty (outtoks overflow)
- DIFF-009 — tree diff silently drops unreadable files (exit 0); to-set guard landed untagged; open: CI verify, deletion-loop soft-skip, signature Bbe status view.
- STATUS-004 — classifier reports del for an untracked-path delete (status 1 del vs post POSTNONE); classify.js must gate del on baseline presencelog: view.
- LOG-004 — TTY jab log EMFILEs on a ~130-pack store; probable fd/mmap leak in be/ JS store reads (piped log + status fine)jab JS runtime (src/jab bindings).
- JAB-007 HIGH — Buf | 0 int32 cursors cap every io.mmap view at 2^31-1: >2GB file → silently WRONG subarray, git.pack.mmap aborts; blocks GET-044's linux-scale index/checkout
- JAB-006 MED — buf.cpp breaks API.md: Buf.feedStr silently truncates on full IDLE; io.book/close/trim documented but unimplemented (blocks BE-017) — from the 2026-07-07 be/ review