v0.6.10
libretto@0.6.10 generate-changelog /home/runner/work/libretto/libretto/packages/libretto
tsx scripts/generate-changelog.ts v0.6.10
What's New in v0.6.10
Features
-
Unified browser daemon IPC: All session commands (
exec,readonly-exec,pages,snapshot) now route through a persistent browser daemon process over a Unix domain socket. This preserves Playwright's page state — including aria-ref selectors — across consecutiveexeccalls in the same session, and ensuresconsole.logoutput from user code is always captured and printed even when errors occur. -
Hosted platform auth commands: New
libretto experimental authcommand group for the Libretto Cloud hosted platform, includingsignup,login,logout,invite,accept-invite,whoami, andapi-key issue/list/revoke. -
Hosted platform billing commands: New
libretto experimental billing portalandlibretto experimental billing statuscommands let organization owners open the Libretto plans page and inspect current plan, usage, and period-end date. -
--auth-profileoption onopen: Thelibretto opencommand now accepts--auth-profile <domain>to load a saved auth profile from a different domain than the target URL (e.g. use thelogin.example.comprofile when openingapp.example.com). -
create-librettoinitializes a Git repository: Projects scaffolded withnpm create libretto@latestnow automatically get agit initwhen created outside of an existing Git repository. Next-step instructions are also printed after scaffolding.
Fixes
-
.envloaded before CLI command dispatch: Environment variables from the workspace.envfile are now loaded at the CLI entrypoint before any command runs. Previously, commands likeopen --provider browserbasecould fail with missing-credential errors when keys were only defined in.env. -
CDP fallback for daemonless failed-run sessions:
execnow falls back to a direct CDP connection when a session has no daemon socket (e.g. sessions created by a failedrunbefore the daemon was introduced), preserving the ability to inspect failed workflow sessions. -
page.evaluatecallbacks no longer throw__name is not defined: tsx/esbuild injects__name()wrappers into compiled TypeScript functions. A no-op__namepolyfill is now installed into every browser page viaaddInitScript, preventingReferenceErrorwhen those callbacks are serialized into the browser context. -
Fixed file descriptor leak in
libretto open: The file descriptor opened for the child process log was not closed in the parent process after spawning the browser daemon. This is now correctly closed withcloseSync. -
Removed false-positive obfuscation detection in DOM snapshots: A regex that matched short CSS class names like
h2,p2, andd3as obfuscated was incorrectly stripping legitimate class names from snapshot analysis. The overly broad heuristic has been removed. -
create-librettotemplate export fixed: The examplestar-repo.tsworkflow was re-exported incorrectly as a named binding. The template now usesexport { default as starRepo }so the export resolves correctly in generated projects.
Improvements
docs/directory now included in the npm package: Thedocs/folder ships alongsidesrc/anddist/in the published package, making documentation accessible directly fromnode_modules/libretto/docs/.