- Stay on your own branch - Do not take, cherry-pick, merge, or copy code from other
people's or other agents' branches unless the source branch belongs to a repository
maintainer and the user explicitly asks you to integrate it. Only work from your branch
and its base (e.g.
main) otherwise. Never integrate branches owned by non-maintainers or other agents yourself; tell the user and let them decide how to proceed.
~/.local/bin/jcodeis the launcher symlink used fromPATH.~/.jcode/builds/current/jcodeis the active local/source-build channel; self-dev builds andscripts/install_release.shpoint the launcher here.~/.jcode/builds/stable/jcodeis the stable release channel;scripts/install.shinstalls this and points the launcher here.~/.jcode/builds/versions/<version>/jcodestores immutable binaries.~/.jcode/builds/canary/jcodestill exists for canary/testing flows, but it is not the primary self-dev install path.- On Windows, the equivalents are
%LOCALAPPDATA%\\jcode\\bin\\jcode.exefor the launcher,%LOCALAPPDATA%\\jcode\\builds\\stable\\jcode.exefor stable, and%LOCALAPPDATA%\\jcode\\builds\\versions\\<version>\\jcode.exefor immutable installs;scripts/install.ps1currently installs the stable channel. - Ensure
~/.local/binis before~/.cargo/bininPATH.
cargo build alone proves nothing about behavior. jcode run and interactive
sessions are served by the long-lived daemon at
~/.jcode/builds/shared-server/jcode, which is a symlink into
~/.jcode/builds/versions/<version>/. Until that symlink is repointed and the
daemon restarted (jcode self-dev --build), a freshly built binary is inert and
every runtime check silently measures the old code.
To test a change without disturbing the shared daemon or the caller's session, run your build against its own socket:
cargo build --profile selfdev
./target/selfdev/jcode run --no-update --socket /run/user/1000/jcode-mytest.sock '<prompt>'Two things that waste time otherwise:
crate::logging::infowrites to a log file, not stderr, so instrumenting a code path with it produces no visible output under--trace. Useeprintln!for throwaway diagnostics and delete it before committing.- Confirm which binary you are actually inspecting.
stringsonbuilds/shared-server/jcodereads a 70-byte symlink, not a program; resolve it withreadlink -ffirst.