✨ Point the site at a local effectionx checkout - #1242
Merged
Merged
Conversation
commit: |
taras
added a commit
that referenced
this pull request
Sep 20, 2026
Contributor
|
🚀 Deploy Preview Ready!
|
Open
9 of 20 tasks
cowboyd
approved these changes
Sep 25, 2026
cowboyd
left a comment
Member
There was a problem hiding this comment.
I'm going to go ahead and approve this with the proviso that we should 100% be using configliere for argument parsing and variable binding precisely for this use case.
The site clones thefrontside/effectionx into build/clones and reads its
packages from main, so there was no way to see a package you were working
on until it was pushed and merged.
`initClones` now takes checkouts, a map of `owner/repo` to a directory to
use in place of a clone, and main wires the `effectionxDir` parameter to
it:
EFFECTIONX_DIR=../effectionx deno task dev
deno task dev --effectionx-dir ../effectionx
A mapped repository is never cloned, fetched or reset, so the site reads
the branch and the uncommitted work that are there and cannot disturb a
checkout you are working in. Paths are resolved before the clone
directory is emptied, so a path that is not there fails at startup rather
than on the first request that needs the repository.
taras
force-pushed
the
tm/local-effectionx-checkout
branch
from
September 27, 2026 17:09
c9e005f to
7ba3c74
Compare
taras
enabled auto-merge (squash)
September 27, 2026 17:11
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.
Motivation
The site clones thefrontside/effectionx into
build/clonesand reads its packages frommain, so there is no way to see a package you are working on — a new package, a renamed one, an edited description — until the work is pushed and merged. Everything that renders/x, the header, andllms.txtgoes throughuseClone(), which only knows how to clone andgit reset --hard.Approach
initClonestakes acheckoutsoption, a map ofowner/repoto a directory to use in place of a clone, andmain.tsxwiresEFFECTIONX_DIRtothefrontside/effectionx:A mapped repository never reaches
cloneOrRefresh, so it is never cloned, fetched or reset — the site reads whatever branch and uncommitted work are on disk, and cannot disturb a checkout you are working in. Paths are resolved and checked before the clones directory is emptied, so a path that is not there fails at startup withcannot use /path as a local checkout of thefrontside/effectionx: no such directoryrather than on the first request that needs the repository. Each mapping is logged at startup.Verified against a real checkout on a feature branch:
/xlisted its 26 packages,/x/task-bufferrendered v1.4.0, the version on that branch, whereorigin/mainhas 1.3.3 — so the page is reading the working tree, not a clone.build/clones/stayed empty, and the checkout came through with the same HEAD and a byte-identicalgit status, untracked files included. PointingEFFECTIONX_DIRat a throwaway two-package directory showed only that directory's package inllms.txtand on/x.www/deno.json's test task gets--allow-env, because importinglib/clones.tspulls in the process helpers, which readOSTYPEat module load. That is the same one-line change as #1241; whichever merges second merges cleanly, since both make the line identical. Worth knowing for anything added towwwlater: the rootdeno task testthat CI runs picks up thewwwworkspace, and it grants--allow-envbut not--allow-write, so the test here sticks to pure resolution and touches no files. Both entrypoints pass —deno task testinwww, and the root one at 39 passed.