Skip to content

Starling v0.0.11

Choose a tag to compare

@huang-sh huang-sh released this 15 Jun 11:02

What's changed

  • Fast catalog expansion (the main fix). Expanding a catalog with many pins
    (e.g. cc-mi-2.5 with 360 pins) used to spawn one starling session show
    subprocess per pin, each doing a full stat walk over every session file. Now
    resolved in a single starling session lookup <ids...> --json call 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.json is 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 lint
  • npm test (89 tests, includes new tests/sessionIndex.lookup.test.ts)
  • npm run build
  • Smoke: 360-id session lookup resolves in 0.73s with zero index writes