Starling v0.0.11
What's changed
- Fast catalog expansion (the main fix). Expanding a catalog with many pins
(e.g.cc-mi-2.5with 360 pins) used to spawn onestarling session show
subprocess per pin, each doing a full stat walk over every session file. Now
resolved in a singlestarling session lookup <ids...> --jsoncall with a
freshness-gated read-only index lookup: no directory walk, no index rewrite.
Measured: 360-pin catalog expand went from many seconds to ~0.7s, and
session-index.jsonis no longer rewritten on every lookup. - New
session lookup <session-ids...>subcommand (variadic,--json/--agent). session show <id>no longer rewrites the 12.9MB session index.- Index freshness gate (
isSessionIndexFresh): 60s TTL + top-level root mtime
check, no recursive walk.
Note on v0.0.10
v0.0.10 shipped a starling run startup optimization (lazy module loading via
dynamic imports) alongside this fix. It was reverted in v0.0.11: the optimization
saved ~40ms on a single subcommand while forcing tsup to code-split dist/ into
15 chunk files. Not worth the build-artifact churn. v0.0.11 returns dist/ to a
single bundled index.js. The catalog fix from v0.0.10 is retained.
Verification
npm run lintnpm test(89 tests, includes newtests/sessionIndex.lookup.test.ts)npm run build- Smoke: 360-id
session lookupresolves in 0.73s with zero index writes