Repository navigation
Hand build mode the step you were watching - #6
Merged
Merged
Conversation
Watching a model to step thirty and pressing build put you on an empty floor at step one. The two flows share a step in the URL and build mode ignored it, reading only the saved build, so the one gesture that means "I want to do this part myself" threw away the part you had just found. Entering a build now weighs two claims about how far in you are, the saved build and the step on screen, and the further one wins. Watching thirty steps hands you step thirty-one with those thirty already in the model; scrubbing back to look at something does not quietly discard a build that had reached step two hundred. The watched step stops one short of the end, because playing a model through and then pressing build is a normal way to arrive here and a finished model with nothing left to do is a dead end. Starting at a step nobody placed by hand needs two things to follow. A BuildSession restored to a step fills in every step before it, which was already the rule per bag and is the same argument one level finer: a step cannot be left until every slot in it is filled. And a pour skips the bricks the build already holds, so beginning partway into a bag does not tip out pieces that are standing in the model; every brick still takes its turn of the random draw, so the rest land where a full pour would have put them. The parts list opens on Step in build mode and back on All in watch, since build mode asks one question and that is the panel that answers it. For it to answer correctly the step has to reach React, so entering a build reports its step upward when it differs from the URL. That also makes the resume notice precise: it now appears only when picking a build up actually moved you, rather than on every deep link into a build.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Deciding where a build begins is its own question, and folding it into a method that also creates a world, seeds a session, opens a bag and frames a camera pushed that method past the cognitive complexity the audit allows. It now returns the four things the start is: which step, which slots inside it are filled, whether there is a pile to put back, and whether any of that is worth announcing. No behaviour changes.
thebuilder
marked this pull request as ready for review
August 27, 2026 12:52
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Watching a model to step thirty and pressing Build put you on an empty floor at step one. Both flows share a
stepin the URL, and build mode ignored it and read only the saved build, so the one gesture that means "I want to do this part myself" threw away the part you had just found.The rule
Entering a build weighs two claims about how far in you are, the saved build and the step on screen, and the further one wins:
?flow=buildfrom the galleryScrubbing back to look at something never discards a build that had already reached step two hundred. The watched step stops one short of the end, because playing a model through and then pressing build is a normal way to arrive here, and a finished model with nothing left to do is a dead end.
What it took
Starting at a step nobody placed by hand needs two things to follow it:
BuildSession.restorefills in every step before the one it starts at. That was already the rule per bag; this is the same argument one level finer, since a step cannot be left until every slot in it is filled.LiveWorld.pourskips bricks the build already holds, so beginning partway into a bag does not tip out pieces that are standing in the model. Every brick still takes its turn of the random draw, so the rest land exactly where a full pour would have put them.The parts list
It opens on Step in build mode and back on All in watch. Build mode asks one question, "what am I looking for now", and that is the panel that answers it.
For it to answer correctly the step has to reach React, so entering a build reports its step upward when it differs from the URL. That also makes the resume notice precise: "Picked your build up at step N" now appears only when picking the build up actually moved you, rather than on every deep link into a build.
Verifying
Driven in a real browser rather than the in-app pane, which freezes
requestAnimationFrame:513 tests pass (
pnpm test),tsc --noEmitandultracite checkare clean, andnext buildsucceeds.