Skip to content

feat: read a project on demand when a drawn bead is blocked by its bead - #187

Merged
GraemeF merged 5 commits into
mainfrom
lazy-foreign-projects
Sep 29, 2026
Merged

GraemeF merged 5 commits into
mainfrom
lazy-foreign-projects

Conversation

@GraemeF

@GraemeF GraemeF commented Sep 29, 2026 •

Copy link
Copy Markdown
Contributor

A bead named on the command line reads only its own project, so a blocker held by another configured project was drawn as not read. Where that project's config states the blocker's prefix, bdi now reads it in the same collection and draws the blocker as the bead it is, with its title and status. From then on the project is read and polled like any other, and the inbound channel accepts reports for it. The project's own trees are folded behind the focus on the named bead, like every other tree.

Only a scope the directory chose widens this way, as it already does for a root named on the command line. Under --project the blocker is still reported as held-by-unread and nothing is read. A project that states no prefix, or a blocker whose prefix no configured project states, is reported as before, and a project nothing drawn needs is never read.

The collector keeps the set of projects it has read on demand, so a reloaded config does not drop them. The loop keeps every configured project it is not reading armed, and moves one into what it polls once a collection comes back having read it.

The bd test shim now answers per tracker, keyed by the directory -C names, so one run can read two projects holding different beads.

A collection that draws a blocker held by a project the directory's scope
left out now reads that project and draws the blocker as the bead it is,
and goes on reading it in every collection after.
The loop holds each configured project it is not reading armed and
ready, and moves one into what it polls and accepts on the inbound
channel once a collection comes back having read it.
The bd shim answers per tracker, keyed by the directory -C names, so one
run can read two projects holding different beads. The docs say a
project stating a blocker's prefix is read on demand where the directory
chose the scope, and left unread under --project.
A bead named on the command line starts the forest focused on it, and the
project read on demand for that bead's blocker draws its own trees behind
the same line as everything else focus sets aside. The test compares the
named launch with an unnamed one after Shift+F on the bead.
@GraemeF
GraemeF merged commit 18b43c9 into main Sep 29, 2026
2 of 4 checks passed
@GraemeF
GraemeF deleted the lazy-foreign-projects branch September 29, 2026 07:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant