tula v0.1.1 - #13
Merged
Merged
tula v0.1.1#13
Conversation
The install line pasted a second time — which is how most people fix a PATH problem — downloaded and re-verified the whole 21 MB archive to arrive at the file it already had. It recognises the version under `~/.tula/versions` now and goes straight to relinking: 2.7s to 0.3s on a warm link, and from minutes to under a second on a cold one. The short cut needs the launcher symlink to be there already, not merely the directory. A directory is something anyone able to write under the install tree can put there before tula is ever installed, and a first install used to download over whatever it found — where adopting it would link an unread binary and say "already installed". `TULA_FORCE=1` fetches and checks again regardless, and `install-test.sh` plants a version directory to prove the fast path declines it. `-s` silenced curl's meter on every fetch, including the one that takes minutes, so a single `downloading` line stood unchanged for the whole transfer: 152 seconds of silence in one capture, between the first line and the next. The archive keeps the meter; the 386-byte checksum file does not. The download is GitHub's and is not faster — it is visibly moving. A transfer under 1 KB/s for 30 seconds is ended rather than waited on, which is the difference between a slow link and a dead one. The banner carries a `v` before the version, as the tag and every `git` and `npm` line about the build already do, and the directory the shell was opened in. tula reads nothing from that directory; it is what tells two terminals apart. It is stripped of control characters and capped like any other text tula did not write — every byte but `/` and NUL is legal in a directory name, so a cloned repository can carry one named to repaint whatever draws it, and Ink writes text verbatim. Paths in the installer's report are written from home for the same reason the banner's is: the absolute form is mostly the reader's own username, and the part they would redact before pasting a screenshot. `release.yml` skips npm packages already published rather than dying on the first one under `set -e`, which is what made v0.1.0's recovery uncertain after a token that could not bypass 2FA failed the job part-way through. AGENTS.md says which token types actually bypass it, since the claim that a token always does was disproved, and the pre-release table gains the `release` environment — naming it in the workflow does nothing until it exists. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
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.
The install line pasted a second time — which is how most people fix a PATH problem — downloaded and re-verified the whole 21 MB archive to arrive at the file it already had. It recognises the version under
~/.tula/versionsnow and goes straight to relinking: 2.7s to 0.3s on a warm link, and from minutes to under a second on a cold one. The short cut needs the launcher symlink to be there already, not merely the directory. A directory is something anyone able to write under the install tree can put there before tula is ever installed, and a first install used to download over whatever it found — where adopting it would link an unread binary and say "already installed".TULA_FORCE=1fetches and checks again regardless, andinstall-test.shplants a version directory to prove the fast path declines it.-ssilenced curl's meter on every fetch, including the one that takes minutes, so a singledownloadingline stood unchanged for the whole transfer: 152 seconds of silence in one capture, between the first line and the next. The archive keeps the meter; the 386-byte checksum file does not. The download is GitHub's and is not faster — it is visibly moving. A transfer under 1 KB/s for 30 seconds is ended rather than waited on, which is the difference between a slow link and a dead one.The banner carries a
vbefore the version, as the tag and everygitandnpmline about the build already do, and the directory the shell was opened in. tula reads nothing from that directory; it is what tells two terminals apart. It is stripped of control characters and capped like any other text tula did not write — every byte but/and NUL is legal in a directory name, so a cloned repository can carry one named to repaint whatever draws it, and Ink writes text verbatim. Paths in the installer's report are written from home for the same reason the banner's is: the absolute form is mostly the reader's own username, and the part they would redact before pasting a screenshot.release.ymlskips npm packages already published rather than dying on the first one underset -e, which is what made v0.1.0's recovery uncertain after a token that could not bypass 2FA failed the job part-way through. AGENTS.md says which token types actually bypass it, since the claim that a token always does was disproved, and the pre-release table gains thereleaseenvironment — naming it in the workflow does nothing until it exists.