register_extension() defaults project_path to pkgdir(KaimonSlate). For a registry install (pkg> app add KaimonSlate) that's the depot package dir (~/.julia/packages/KaimonSlate/<slug>): it contains Project.toml and kaimon.toml, but no Manifest.toml, and Pkg write-protects it.
Kaimon spawns the extension with --project=<project_path>, and the boot script's Pkg.resolve() tries to repair the environment — but it can't write a manifest into the protected depot dir (SystemError: opening file ".../Project.toml": Permission denied when attempted manually), so using KaimonSlate fails to resolve the package's deps and the extension crash-loops.
This works for dev checkouts (instantiated project in place), but not for the documented app add install path.
Workaround that got me running: copy pkgdir(KaimonSlate) to a writable directory, Pkg.add("Kaimon") + Pkg.instantiate() there, and register_extension(force=true, project_path=<copy>).
Possible directions: have Kaimon materialize a managed, instantiated environment per extension (e.g. under its cache dir) with the extension package added to it, keeping kaimon.toml discovery at the package dir; or have register_extension() build such an env at registration time. Happy to contribute a PR once there's a preferred design.
Related: #61 fixes the same manifest problem for the Kaimon entry on the extension's load path.
register_extension()defaultsproject_pathtopkgdir(KaimonSlate). For a registry install (pkg> app add KaimonSlate) that's the depot package dir (~/.julia/packages/KaimonSlate/<slug>): it containsProject.tomlandkaimon.toml, but noManifest.toml, and Pkg write-protects it.Kaimon spawns the extension with
--project=<project_path>, and the boot script'sPkg.resolve()tries to repair the environment — but it can't write a manifest into the protected depot dir (SystemError: opening file ".../Project.toml": Permission deniedwhen attempted manually), sousing KaimonSlatefails to resolve the package's deps and the extension crash-loops.This works for dev checkouts (instantiated project in place), but not for the documented
app addinstall path.Workaround that got me running: copy
pkgdir(KaimonSlate)to a writable directory,Pkg.add("Kaimon")+Pkg.instantiate()there, andregister_extension(force=true, project_path=<copy>).Possible directions: have Kaimon materialize a managed, instantiated environment per extension (e.g. under its cache dir) with the extension package added to it, keeping
kaimon.tomldiscovery at the package dir; or haveregister_extension()build such an env at registration time. Happy to contribute a PR once there's a preferred design.Related: #61 fixes the same manifest problem for the Kaimon entry on the extension's load path.