skillscript-runtime v0.25.1
Upgrade impact: none (additive). A lint rule now catches a case it previously missed; no behavior change to valid skills.
secret-use-onlysource-level backstop (adopter finding). The rule walked the parsed op AST, so a{{secret.NAME}}marker in a line the parser dropped — e.g. a malformedemit {{secret.X}}written without parentheses (the valid form isemit(text="...")) — slipped through as zero findings, even though the rule's own remediation listsemit. (Never a leak: the runtime gate already refuses to resolve a marker outside a sink, so the value never surfaced — this was a missing compile-time warning, not an exposure.) The rule now also compares every{{secret.…}}in the raw source against the markers the AST scan accounted for; any surplus (a marker in a dropped/unrecognized position) is flagged tier-1. Validemit(text=...)/$set/sink placements are unchanged — no double-firing.