Releases: CleanSlice/runtime
v0.19.6
Full Changelog: v0.19.5...v0.19.6
v0.19.5
Full Changelog: v0.19.4...v0.19.5
v0.19.4
What's new since v0.19.0
Features
- Host-agnostic session provider. The runtime core no longer knows about Ranch — the
session_*tools andbrowser_playdepend only on theISessionGatewayport. Ranch is one swappable adapter; thelocaladapter runs the runtime standalone with cookies as JSON files in<agentDir>/sessions/. Selected viaSESSION_PROVIDER(defaults toranchwhen a host URL is set, elselocal). - Renamed the
integration_*tools →session_*(session_list,session_request_login,session_secrets). - New
ranch-sessionsskill — one skill covering X, Instagram, Facebook and TikTok, with reliable post-reading recipes (og-meta instead of rotating selectors). browser_play:--disable-gpuChromium flag — cuts a class of renderer crashes on heavy SPAs like instagram.com.- Session reviews now flush on
/clearand on graceful shutdown, so short conversations still get a self-improvement pass into MEMORY.md.
Fixes
- Resolved 13 pre-existing TypeScript errors (drift from earlier refactors — stale imports and types).
tsc --noEmitis now clean.
Chore
- Added a standalone browser-state integration test script.
All 32 tests pass; type-check clean.
v0.19.0 — structured logging + browser_play fix
Fixes
browser_play no longer bricks itself
The 90s watchdog only wrapped the action loop — a hang in launch() /
newContext() (common under the memory pressure the concurrency mutex
fights) left browserPlayBusy locked forever, so every later
browser_play failed with "Another browser_play call is already running"
until a pod restart.
- One hard 100s deadline is now armed before any work and races the
whole operation (ensurePlaywright,launch,newContext, action
loop). The lock release infinallyalways runs. - A stale lock (held past the deadline + margin) is steamrolled — a
wedged call can no longer permanently brick the tool. - A browser launched a beat after the deadline fired is now closed
instead of leaking.
Features
Structured logging
- New
setup/loggerslice —createLogger(context)with built-in secret
redaction. Codebase-wide migration off rawconsole.*.
Integration tools simplified
integration_list,integration_secrets,integration_request_login
and thebrowser_playcookie-state fallback no longer sendctx.from.
Integrations are instance-global; the API resolves them.
Deploy note: the integration tool changes pair with the ranch API
"instance-global integrations" endpoints — deploy that ranch API
alongside this runtime.
v0.16.4 — browser_play reliability
Fixes
browser_play reliability
Three failure modes the agent hit in production:
- Selector timeout floored at 15s.
waitForSelectorpreviously honoured the LLM's too-short timeout (commonly5000ms, copied from a recipe). On a cold pod the page hasn't painted yet and it failed spuriously. Now clamped to a 15s minimum. - Deadline-hit hang fixed. On the internal 90s deadline, the catch path still called
persistState()→context.storageState()on a force-closing context, which hung ~30s and pushed the tool past the runtime's 120s abandon timeout.persistState()is now skipped on a deadline hit, andbrowser.close()is capped at 5s —execute()returns by ~95s. - Concurrent-Chromium OOM eliminated. A heartbeat task and a chat task could run
browser_playsimultaneously; two headless Chromium processes OOM-kill the pod. A process-wide mutex now serializes calls — the second caller fails fast with a clear retry instruction instead of launching a doomed browser.
Silent reply
isSilentReply/isSilentReplyPrefixnow tolerate markdown-wrapped sentinels (`NO_REPLY`,**NO_REPLY**), so a formatted sentinel still suppresses the turn and a streamed leading backtick no longer leaks.
Eval
- Added the
soul-propose-options-dont-askpaddock scenario.
v0.16.3 — integrations: extension-driven login, no VNC
Runtime support for the Ranch integrations feature — agents act on
connected external services (Instagram, X, Facebook, TikTok, OpenAI,
GitHub, Stripe) using the user's own session, no VNC.
New tools
integration_list— discover the user's connected integrations.
Returns the exactbrowser_playprofile (<service>:<accountKey>) so
agents stop guessing"default"/"x".integration_request_login— when a browser integration's cookies
are missing/expired, returns a help URL + instructions the agent
forwards to the user. The user logs in on the real site and pushes
cookies via the Ranch Cookies extension. Replaces the old
browser_login/ VNC flow.integration_secrets— resolves secret-mechanism integrations
(OpenAI/GitHub/Stripe API keys) into an env map at tool-call time.
browser_play hardening
- Per-user browser-state fallback — a single cookie import covers every
agent the user owns. - Hard 90s internal deadline raced against the action loop — guarantees
execute()returns a real{ok:false}result before the runtime's
120s abandon-timeout, killing the synthetic-interrupted-result
retry storm. - Dropped the blanket
pkill chromium(it tore down a concurrent
browser_play's live browser). - Key-name normalization for
press(Return→Enter,Cmd→Meta, …).
Removed
browser_login/browser_login_done— the noVNC/browser-pool login
path. Superseded byintegration_request_login+ the extension.
Skills
runtime-tools(always-on) now documents the integration tools and
theintegration_list → browser_play → request_loginflow.
v0.6.4
Full Changelog: v0.6.3...v0.6.4
v0.6.3
Full Changelog: v0.6.1...v0.6.3
v0.6.1
Full Changelog: v0.6.0...v0.6.1
v0.6.0
Full Changelog: v0.5.0...v0.6.0