Fetch all sources, then install
install, experimental_sync and update now clone or download every skill source first, 4 at a time by default. Then they install or check each one in the old order. Well-known lock entries now take this path too.
Each command now runs in two phases. Network: fetchSources (or fetchGlobalSource / an up-front cloneRepo in update) fetches every source through mapConcurrent. The limit comes from SKILLS_CLONE_CONCURRENCY and defaults to 4. Results keep input order, and a failed source becomes an error instead of a throw. Local: installFromSource now takes the fetched result. It filters, installs, writes skills-lock.json and removes the temp dir.
Well-known sources restored from the lock no longer go through runAdd. They are wrapped as WellKnownSourceSkill, installed with installWellKnownSkillForAgent, and locked through wellKnownLockEntry, which writes the same fields as before.
minorAll clones stay on disk until the install loop reaches them
src/add.tsL1488–1490The temp dir is now created in fetchSource and removed in installFromSource's finally. The concurrency limit caps clones in flight, not clones on disk. In update, the deletion confirm prompt can run while later clones are still on disk. The CLI has no SIGINT handler, so Ctrl+C there leaves them in tmp.
nitWell-known lock restores no longer send telemetry
src/install.tsL63–82The old runAdd path called track() for well-known installs. installFromSource has no track() call. Git sources already behaved this way.
- Files changed
- 9
- Lines
- +482 / -102
- Default concurrency
- 4