Context
Deferred non-blocking follow-up from the #257 review (commit 851b0bc, item #3). Tracking it here so it isn't lost in the commit message.
run_skill_script (added in #257 / #251, forge-cli/tools/run_skill_script.go) executes a skill-relative script (sh/py/js/ts) with a hardcoded execution timeout. Long-running skill steps (installs, builds, data pulls) can legitimately exceed it, and different skills have different needs.
Proposal
Make the timeout configurable, consistent with how cli_execute already takes a timeout hint:
- Per-skill / per-tool config (align with
cli_execute's TimeoutSeconds + the skill-requirements TimeoutHint derivation already in runner.go).
- Sensible default retained when unset.
- Cap/validation so a skill can't set an unbounded timeout.
Acceptance
run_skill_script timeout is operator/skill configurable, not hardcoded
- Default preserved for skills that don't set it
- Reuses the existing
cli_execute timeout-hint plumbing where practical
Depends on #257 merging first (the code lives on that branch). Related: #251, #257
Context
Deferred non-blocking follow-up from the #257 review (commit 851b0bc, item #3). Tracking it here so it isn't lost in the commit message.
run_skill_script(added in #257 / #251,forge-cli/tools/run_skill_script.go) executes a skill-relative script (sh/py/js/ts) with a hardcoded execution timeout. Long-running skill steps (installs, builds, data pulls) can legitimately exceed it, and different skills have different needs.Proposal
Make the timeout configurable, consistent with how
cli_executealready takes a timeout hint:cli_execute'sTimeoutSeconds+ the skill-requirementsTimeoutHintderivation already inrunner.go).Acceptance
run_skill_scripttimeout is operator/skill configurable, not hardcodedcli_executetimeout-hint plumbing where practicalDepends on #257 merging first (the code lives on that branch). Related: #251, #257