Repository navigation
Install
New app — prompts for the project name and package:
curl -fsSL https://github.com/ThisIsSadeghi/KMPilot/releases/download/v0.2.1/install.sh | bashNon-interactive: | bash -s <MyApp> <com.acme.myapp>
Existing KMP app — run from its root (what works, what is refused):
# compatibility report + exact file plan; writes nothing
curl -fsSL https://github.com/ThisIsSadeghi/KMPilot/releases/download/v0.2.1/install.sh | bash -s -- --adopt --dry-run
# apply it
curl -fsSL https://github.com/ThisIsSadeghi/KMPilot/releases/download/v0.2.1/install.sh | bash -s -- --adoptUpdate
Important
Only if your project was installed before v0.1.2 (check
kmpilotVersion in .kmpilot.json) — this release changes update.sh
itself, and an updater that old cannot apply fixes it predates, so replace
it first. On 0.1.2 and later this happens automatically: skip this step.
curl -fsSL https://github.com/ThisIsSadeghi/KMPilot/releases/latest/download/update.sh -o update.shThen:
./update.sh # tooling only
./update.sh --core # also merge core/ (conflicts surfaced, never silent)
./update.sh --dry-run # preview; writes nothingNever touches feature/, your app modules, or your specs, and never commits.
What's changed
Fixed
- [Tooling] The updater bootstrap no longer blocks itself.
update.shis tracked, so
the documentedcurl … -o update.shstep modified the working tree — and the very next
command refused because the tree was not clean. The preflight now ignores a tree whose only
change isupdate.sh; anything else still refuses. The release notes also lead with the
precondition, since only projects installed before v0.1.2 need that step at all.
Changed
- [Tooling] Adopting no longer fails your build over code that predates KMPilot.
.kmpilot.jsongainedmanagedFeatures— the features/create-featuregenerated. A
repo that already organises code underfeature/used to get its existing, working
modules graded against all 14 rules on the firstarchTest, with nothing saying the
violations were pre-existing. Those are now reported in full but never enforced (the
--baselinetreatment), while KMPilot-generated features stay strict. The summary names
every unenforced feature, so a generated one missing from the list is visible rather than
silently exempt.