Repository navigation
Fix pull overwriting local changes, npm run scripts and a few smaller bugs - #1352
Merged
Merged
Conversation
…king branches Pull force-checked out the merge result, so uncommitted edits were silently discarded (thebaselab#1307). It now refuses to pull when tracked files have local changes, like git does, and merges against the actual merge base instead of an empty ancestor. Unrelated histories still merge without an ancestor. Checking out a remote branch left HEAD detached (thebaselab#1240). It now creates or reuses the matching local branch with its upstream set. Also fixes the wrong error code reported by createBranch and a cache key mismatch that made the diff content cache never hit.
npm run split scripts on spaces and only understood a single node binary, so most real scripts failed with "command doesn't exist or is not supported" (thebaselab#568, thebaselab#801, thebaselab#485, thebaselab#889). Scripts are now parsed properly: - &&, || and ; with quoting and escapes - FOO=bar prefixes and cross-env, passed through to the node process - node_modules/.bin lookup walking up from the package, like npm - pre/post scripts and extra arguments after -- - pipes, redirects, globs and $VARS fall back to ios_system - scripts run from the package root, also when started in a subfolder The node exit code is now reported back to the app, so a failing step stops the chain. A node command started right after another one also waits for the extension to come back up instead of failing to connect.
… keyboard - Don't resume the shell continuation twice when the server has no TTY (thebaselab#1229) - Accept plain http:// remotes, e.g. self-hosted Forgejo on a LAN (thebaselab#1294) - Copy Relative Path is relative to the workspace, not the active editor (thebaselab#1324) - Read-only mode no longer brings up the keyboard (thebaselab#972)
Since Xcode 16 debug builds move the app code into CodeUI.debug.dylib and ios_system can no longer look up node, npm, npx, java and wasm (thebaselab#1159).
Member
|
Impressive! Please give me some time to review everything. Thank you very much for the PR. |
bummoblizard
approved these changes
Oct 29, 2026
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.
A batch of fixes for issues I kept running into. Each commit stands on its own, so happy to split this up if you prefer smaller PRs.
Git
git pulldoes when tracked files are modified, and merges against the real merge base instead of an empty ancestor (fixes UIPullOverwtites Modified Files #1307).http://remotes work for push/pull, e.g. a self-hosted Forgejo on the LAN (fixes Code.LocalGitCredentialsHelper.HelperError error 0 - selfhosted forgejo #1294). This complements Fix LocalGitCredentialsHelper parsing of IP:port Git remote URLs #1299, which normalizesip:portURLs tohttp://but the helper still rejected thehttpscheme.npm run
Scripts used to be split on spaces, so most real-world scripts failed with "command doesn't exist or is not supported" (#568, #801, #485, #889). Now:
&&,||,;, quotes and escapesFOO=barprefixes andcross-env, passed through to the node processnode_modules/.binlookup walking up from the package, pre/post scripts, args after--$VARSgo through ios_systemtsc && node dist/index.jsstops whentscfailsOther
ENABLE_DEBUG_DYLIB = NO. With the debug dylib, ios_system can't findnode,npm,npx,javaandwasm(fixes Xcode 16 broke ios_system #1159)Testing
Built with Xcode 27 beta and tested in the iPad simulator (iOS 27):
&&/||, redirects, running from a subfolder, env vars reaching node, a failing node step stopping the chain, node behind a redirectAdded unit tests for the script parser. I couldn't get XCTest to attach to the simulator on my beta setup, so those ran outside the test host. CI should cover them.