Skip to content

skillscript-runtime v0.18.7

Choose a tag to compare

@github-actions github-actions released this 06 Jun 11:38

Closes a discoverability gap noticed during a .env audit: three
operator-controllable behaviors were programmatic-only or config-only
without a .env-natural path, so operators tuning prod or test
environments had to write code (or a JSON config) to change them.
v0.18.7 surfaces all three through the standard cascade (CLI flag >
env > config > default).

Three knobs surfaced

Knob Env var Was Now
Scheduler poll interval SKILLSCRIPT_POLL_INTERVAL_SECONDS config + bootstrap + env path
Runtime absolute timeout SKILLSCRIPT_ABSOLUTE_TIMEOUT_MS programmatic-only (ctx.absoluteTimeoutMs) + config + env + bootstrap opt
Composition recursion depth ceiling SKILLSCRIPT_MAX_RECURSION_DEPTH programmatic-only (ctx.maxRecursionDepth); hardcoded 10 + config + env + bootstrap opt

absoluteTimeoutMs defaults to 300_000ms (5 minutes); maxRecursionDepth
defaults to 10 (DEFAULT_MAX_RECURSION_DEPTH); poll interval defaults
to 30 seconds. All values flow through BootstrapOptsScheduler
config → per-dispatch ExecuteContext.

Tests

10 new tests in v0.18.7-operator-knobs.test.ts:

  • Config schema accepts each new field with positive-integer validation
  • Rejects 0 / negative / non-integer / non-numeric values for both
  • All three knobs co-set in one config + omission preserves defaults
  • Scheduler accepts the two new fields and constructs cleanly

1729 tests total; typecheck clean; LOC budget holds.

Docs

  • scaffold/.env.example — new "Runtime tuning" section documenting all
    three vars with use-case framing + defaults
  • docs/configuration.md — env-var precedence table extended; field
    docstrings on SkillscriptConfig interface explain cascade

Adopter migration

None — all changes are additive and backward-compatible. Adopters
relying on the old programmatic-only paths (passing ctx.absoluteTimeoutMs
directly to execute()) continue to work; the new layers just add
operator surfaces below them. Default behavior preserved when env vars
are unset.