Skip to content

Releases: noneym/easylopster.com

easylopster v1.11.0

Choose a tag to compare

@github-actions github-actions released this 31 Oct 08:05

[1.11.0] - 2026-10-31

Added

  • easylopster Node for macOS: the same tray app as on Windows, as a menu-bar app (no Dock icon) for
    Apple Silicon and Intel Macs (.dmg and .zip on the release). Pairing, shared folder, shell
    commands (bash), notifications, clipboard, background jobs and full Brave control work as on
    Windows. Brave is found in /Applications or /Applications and, when missing, installed with
    Homebrew or from Brave's DMG (arm64 or Intel) into /Applications (
    /Applications without admin
    rights). "Open at login" uses a macOS login item; the menu-bar icon is a template image that
    follows light and dark mode.
  • The app is ad-hoc signed, not signed with an Apple Developer ID, so macOS cannot install updates
    by itself: the Mac app checks for new versions, notifies, and "Download" opens the release page.
    Windows keeps installing updates automatically.
  • Nodes pages: macOS downloads (Apple Silicon / Intel) next to the Windows installer, with how to
    open an unsigned app (Privacy & Security → Open Anyway, or
    xattr -dr com.apple.quarantine "/Applications/easylopster Node.app"). The node page shows the
    same install card with the pairing code filled in.
  • Release workflow builds the macOS app on macos-latest and attaches the DMGs, zips and latest-mac.yml.

Fixed

  • The install card's default gateway address (gw.easylopster.com).

easylopster v1.10.0

Choose a tag to compare

@github-actions github-actions released this 31 Oct 04:15

[1.10.0] - 2026-10-31

Added

  • Storage: connect your own S3-compatible bucket (Amazon S3, Cloudflare R2, MinIO, Backblaze B2 or
    any S3 endpoint) on the new Storage page; the connection is tested for read and write and the
    keys are stored encrypted. The page is a file browser over the bucket (folders, upload up to
    200 MB per file through the server, download links, delete, new folder) with usage figures.
  • Agents get a shared drive: storage_list, storage_read, storage_write, storage_delete,
    storage_copy (workspace ⇄ storage, binary files included) and storage_link (24-hour download
    link) work on the owner's bucket and are shared by all of the owner's agents.
  • Backups: per agent, a schedule (daily at a time, weekly, or every N hours, in the owner's time
    zone), retention (delete after N days, always keep the newest N), optional conversations and
    inbox. Archives are zips with workspace/, settings.json (model, policies, automations,
    allowlist, linked servers and nodes; never secret values) and manifest.json, written to
    backups/<agent>/ in the bucket. The Backups page lists them with download, restore (files, or
    files + settings and automations) and delete, plus "Back up now". The gateway runs due backups
    once a minute (BACKUPS_ENABLED=0 turns the scheduler off).

Changed

  • "Bots" are now "Agents" across the dashboard (menu, pages, copy) and live under
    /dashboard/agents; old /dashboard/bots links redirect. The database model keeps its name.

easylopster v1.9.1

Choose a tag to compare

@github-actions github-actions released this 31 Oct 04:00

[1.9.1] - 2026-10-31

Added

  • Import from OpenClaw: "Import API keys (agent tokens)" and "Import Telegram token" checkboxes;
    unchecked values never leave the machine. When the import ends without a usable key or without
    Telegram, a "Finish setup" panel on the same page asks for the API key + model (OpenClaw's model
    preselected when the key has it) and the Telegram token. A missing key no longer aborts the import.
  • Bots → Manage → Telegram: connect a web-only bot to Telegram, switch an existing bot to another
    BotFather token (webhook and command menu re-registered, the old webhook dropped), or disconnect
    Telegram and keep the bot in the web chat.
  • The uploader parses real openclaw.json files (JSON5: comments, trailing commas, unquoted keys).

Fixed

  • A session cookie whose session was deleted looped between /login and /dashboard.

easylopster v1.9.0

Choose a tag to compare

@github-actions github-actions released this 31 Oct 03:06

[1.9.0] - 2026-10-31

Added

  • Import from OpenClaw with one command: New bot → "Import from OpenClaw" (or a bot's Import page →
    "Run a command on the OpenClaw machine") gives a one-hour, single-use command
    (curl -fsSL https://easylopster.com/import.sh | bash -s -- TOKEN, PowerShell variant for
    Windows). On the OpenClaw machine it reads openclaw.json (bot name, Telegram token, model, API
    keys from the config, env vars or legacy auth profiles) and the workspace, creates the bot here
    with its keys, and uploads persona, memory, heartbeat, skills and scripts in batches. The page
    follows it live: step bar (command ready → connected from → uploading → done), per-category
    bars, every file with written/skipped state, what was created (bot, @username, model, keys) and
    notes on anything that needs a manual step. Served scripts: /import.sh, /import.ps1, /import.mjs.
  • Web-only bots: the Telegram token is optional when creating a bot; without one the bot lives in
    the web chat and a token can be added later. The new-bot form explains how to get a token from
    @Botfather step by step.
  • "Refresh model list" wherever a key is used: the new-key form asks the provider for its models as
    soon as a key is pasted (and on demand), the key page and bot settings reload the list from the
    provider with one click.
  • Nodes pages explain what a node is and how to install the agent: direct download of the current
    Windows tray installer, the npx one-liner and the Docker command, on the nodes list, the new-node
    page and a node's page.
  • Dashboard forms give visible feedback everywhere: spinner while saving, a "Saved" tick, a toast
    for success and errors, and a scroll to the first field error.
  • Telegram voice notes are transcribed with the platform's OPENAI_API_KEY when the account has no
    OpenAI key of its own (OPENAI_TRANSCRIBE_MODEL picks the model).
  • Landing page lists the browser, live status, background jobs, import and self-update features.

Fixed

  • Settings page hydration mismatch from time-zone offsets rendered on the server.

easylopster v1.8.0

Choose a tag to compare

@github-actions github-actions released this 29 Oct 20:55

[1.8.0] - 2026-10-29

Added

  • Live activity status in every chat: while a reply is being worked on, Telegram shows one status
    message (edited in place, deleted when the answer arrives) listing the tool calls of the run with
    a short argument summary (URL, command, path), finished steps with their duration, the running step
    with a ticking elapsed time and a thinking/writing line. It is shown in all streaming modes, not
    only "progress", so a long browser or exec step is never silent. The web chat shows the same step
    list with elapsed times.

Changed

  • Tool progress events carry the tool-call id, an argument preview, duration and success flag
    (failed tool calls are marked ⚠️).

easylopster v1.7.0

Choose a tag to compare

@github-actions github-actions released this 29 Oct 00:39

[1.7.0] - 2026-10-29

Added

  • Windows tray app auto-update: the packaged app checks GitHub releases 30s after start and every
    6 hours, downloads the new installer in the background and installs it on the next restart
    (tray menu "Restart to update", "Check for updates"; the Settings window shows the state). The
    release workflow now publishes latest.yml and the blockmap next to the installer.
  • Automatic Brave installation: when browser control is enabled (or a bot first uses a browser
    tool) and brave.exe is missing, the tray app installs Brave by itself, with winget when present
    and otherwise with Brave's installer run silently. A browser tool called meanwhile returns
    "installing, try again in a minute"; the Settings window has an "Install Brave" button too.

easylopster v1.6.0

Choose a tag to compare

@github-actions github-actions released this 26 Oct 03:38

[1.6.0] - 2026-10-26

Added

  • Browser network capture (browser.network): every tab records the requests the page makes
    (method, URL, type, status, size, timing); the tool lists them with URL/type filters, returns one
    response body by id (JSON APIs, HTML fragments, up to 200k chars) or clears the log. Reading a
    page's own API calls is usually easier than scraping its DOM.
  • Multiple Brave profiles (browser.profiles): list / create / close / delete named profiles, each
    with its own cookies and logins; every browser tool takes profile=<name> (default = the existing
    profile). Deleting a profile needs approval.
  • Drag and drop (browser_drag on browser.interact): mouse drag from one element to another or
    to coordinates; HTML5 drags are intercepted and completed with dragEnter/dragOver/drop so sortable
    lists, kanban boards and drop zones work.
  • Clipboard (system.clipboard, tray app): read the PC clipboard text (needs approval) or write to it.
  • Background jobs survive node restarts: the job list is kept in jobs/index.json; after a restart
    a still-running process is picked up again and a finished one is reported with an unknown exit code.

easylopster v1.5.1

Choose a tag to compare

@github-actions github-actions released this 26 Oct 03:10

[1.5.1] - 2026-10-26

Added

  • Background jobs on nodes: exec with background=true starts a detached process that survives
    the command timeout, writes its output to jobs/<id>.log in the shared folder and returns a job
    id; the new jobs tool (capability exec.jobs) lists, checks, tails and kills them. The exec
    description now tells the model to use it for downloads, installs and builds.
  • Browser cookies: browser.cookies lists the current site's cookies (no values unless asked),
    exports a Netscape cookies.txt into the shared folder (cookies/.txt, ready for yt-dlp or
    curl), imports one, or clears cookies; export/import/clear need approval.
  • Browser file upload (browser.upload: attach files from the shared folder to a file input) and
    downloads (browser.downloads: the controlled Brave now saves downloads into the shared folder's
    downloads/ and the tool lists them). JavaScript dialogs (alert/confirm/prompt) are auto-accepted
    and logged instead of blocking the page.
  • The controlled Brave profile keeps its logins between sessions: the tray app now closes Brave
    gracefully (Browser.close, then waits for it to exit) so cookies and site data are flushed to the
    persistent profile instead of being lost on a hard kill, and the "restore pages" bubble is hidden.

Fixed

  • Background jobs on Windows: Windows PowerShell does not run as a detached (console-less) process,
    so the job produced no output; jobs are now started as hidden children instead.

easylopster v1.5.0

Choose a tag to compare

@github-actions github-actions released this 26 Oct 02:19

[1.5.0] - 2026-10-26

Added

  • Full browser control on Windows nodes: browser.eval (run JavaScript in the page, awaited
    result as JSON), browser.interact (press keys with modifiers, scroll, hover, choose options, back/forward/reload, wait for an element or text), browser.html (raw markup of the page or an element) and browser.pdf (print to PDF into the workspace inbox). Eval, key presses, selects and history navigation go through the chat approval (or "Always allow"); scroll, hover, wait, HTML and PDF are free. Enable the new capabilities on the node page after updating the tray app. Tray app development runs (electron .) use their own data folder and single-instance lock, so they can run next to the installed app; the default browser tab skips stray about:blank tabs.

easylopster v1.4.0

Choose a tag to compare

@github-actions github-actions released this 25 Oct 21:19

[1.4.0] - 2026-10-26

Added

  • Admin panel (/dashboard/admin, "Admin" in the sidebar for role=admin accounts): user list with
    search (email, name, created, verified, role, bots/nodes/MCP counts, today's messages, effective
    limits) and a per-user page. Accounts listed in ADMIN_EMAILS become admins when they sign in.
    Per-user quota overrides (User.limitBots/limitNodes/limitMcp/limitMessagesPerDay, null = global
    BETA_MAX_* default) are edited there and honored by the dashboard, the chat setup tools and the
    gateway's daily message quota (limitsFor(user) in @easylopster/shared/limits). "Sign in as this
    user" opens the member's dashboard with a persistent "Viewing as — Back to admin" banner;
    the admin's own session is parked in the el_admin_session cookie and restored on return (logged
    on the server). Every registration (email or Google) emails ADMIN_NOTIFY_EMAIL with the new
    user's details and a link to their admin page; mail failures never block sign-up.

  • Context-window awareness: the key test stores each model's context size when the provider lists
    it (OpenAI-compatible endpoints, OpenRouter, Google); other models come from a built-in table
    (default 128k). History and compaction budgets now scale with the window (about 55% of it for
    history, compaction at ~70% of that), a context-length error triggers an automatic compaction
    and one retry, and a gauge shows usage: web chat footer ("context 42% · 108k / 256k", with a
    nudge past 80%), Telegram /status, and the model picker lists sizes next to ids.

  • MCP OAuth: remote servers that only sign in with OAuth (Notion, Evernote, Linear, Sentry and any
    server answering 401 with resource metadata) can now be added from the dashboard. The flow follows
    the MCP authorization spec (OAuth 2.1 + PKCE, dynamic client registration via the MCP SDK):
    "Sign in with " registers a client, sends you to the vendor's consent page and the
    callback (/api/mcp/oauth/callback) exchanges the code, lists the tools and marks the server
    connected. Tokens, the client registration and discovery data live encrypted in McpServer.encOAuth;
    the gateway sends the bearer token, refreshes it with the refresh token before expiry or on 401
    and persists the new tokens. When a refresh fails the server shows "Sign in again" with a
    re-authorize button. The generic add form detects a 401 on "Test connection" and offers the
    sign-in; static-header servers work as before. Catalog: Notion and Evernote are usable, Linear
    (mcp.linear.app) and Sentry (mcp.sentry.dev) added.

  • Telegram streaming modes "Block" and "Progress" now do what their labels say: Block sends each
    completed paragraph as its own message while the reply is still being written (code fences are
    never split); Progress shows one silent status message (thinking / running / writing…)
    and replaces it with the final answer as a fresh, notifying message. Partial and Off are unchanged.

  • MCP catalog on the MCP servers page: Cloudflare (API, Docs, Browser Rendering), GitHub, Context7,
    DeepWiki, Hugging Face, Exa, Tavily, Firecrawl, Stripe, Zapier and Composio (the last two are the
    route to Gmail, Google Calendar, Drive, Sheets and thousands of other apps). "Use" opens the add
    form prefilled with the URL, transport and header template plus where to get the credential.

  • NameSilo bridge: mcp.namesilo.com speaks plain JSON-RPC rather than MCP, so a built-in namesilo
    tool (domains, DNS, name servers, email forwarding, balance; 80+ methods from the server's
    manifest) appears for bots that have the Secret NAMESILO_API_KEY; the catalog card links to the
    Secrets page with the name prefilled.

Changed

  • Workspace file browser is a real tree: folders collapse and expand (memory/ and skills/ open by default), files sit inside their folders; the filter still searches flat.

Fixed

  • A development gateway sharing the production database ran everyone's automations and dreaming
    on the developer's machine (wrong workspace, no nodes) and messaged the owners; GATEWAY_ACCOUNT_EMAILS
    now scopes polling, the automation scheduler and dreaming to the listed accounts.
  • Automation replies that are just a status marker (NO_NEW_POST, NOTHING_NEW, ... on one line) are
    logged as silent instead of being sent to the owner; the wake message now spells out the NO_REPLY rule.
  • A reply ending in a NO_REPLY line is delivered without that line; a reply that is only NO_REPLY
    (with or without punctuation) stays silent.