Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
105 changes: 76 additions & 29 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,16 @@ Newest first. `Unreleased` is what is on `main` and not yet tagged.

## Unreleased

**Before upgrading.** There are no migrations: the database stays at
`0083_learning_skill_approvals`. Four things change for an existing deployment:
**Before upgrading.** Two migrations run at start, and the database moves to
`0085_approval_rule_account`. `0084_brokered_accounts` creates a new, empty `brokered_accounts`
table, which fills as people open an app's page in Connections. `0085_approval_rule_account` adds
a nullable `account` column to `approval_rules`. No existing row is rewritten or backfilled,
nothing is dropped and no existing constraint changes. A person's existing connection to an app is
untouched, and calls through it run as before. Going back to 1.0.0-rc.1 or 0.3.4 after people
connect more than one account of an app is not seamless: a rule saved for one account applies to
every account of that app, and Disconnect can leave an extra account connected at Arcade, so
restore the backup taken before the upgrade instead. Four things change for an existing
deployment:
- OpenBot Desktop updates its back end to CopilotKit Intelligence 0.16.0-rc.10 at the next Start,
saying "Updating the back end to 0.16.0-rc.10. Its data stays." With it, a first back end setup
downloads all of its images through downloads.copilotkit.ai first, where its own images came
Expand All @@ -29,13 +37,45 @@ Newest first. `Unreleased` is what is on `main` and not yet tagged.
of the subtitle, and a Bot picked in setup before 0.3.3 and named "LangChain (LangGraph)" is
renamed "LangChain". A Bot whose connection you set yourself keeps its subtitle.

### Apps and connections

- **Connect more than one account of an app.** Once an app is connected, its page in Connections,
and Admin → Plugins for an admin's own account, offers **Connect another account**, on Composio
and Arcade. Pressing Connect again used to be refused with "You already have an account connected
to Gmail. Disconnect it first if you want to connect a different one." With several accounts the
page lists each by its address, with **Make default** and a Disconnect that ends only that
account. An app whose team account is shared still has one account.
- **A Bot can use the account a request is about.** It is told the addresses of your accounts at
that app; with none named it uses your default, the first you connected until you pick another.
A name that isn't one of your accounts is refused, and nothing is sent.
- **An approval names the account** ("Research Bot wants to send email from … on Gmail"), and Always
allow here saves the rule for that account only, shown as "from" and the address under the rule.
Once you connect a second account of an app, your own rules that let Bots act on that app without
asking stop applying, so Bots ask again for each account. Rules that ask or hand off, and team
rules, still cover every account.
- **Apps that need a key say so before you connect** (on Composio). In Browse apps, an app you
connect with a key reads "Needs a key from 1Password", and apps you sign in to are listed first,
where the list was by name alone. Its Connections tile says the same until it is connected, and
its page says "Needs a key from 1Password. Connect shows where to get one.", where it said the app
"connects with a key you already have".
- **The key form says where the key comes from.** Above the boxes, Connect says "1Password doesn't
offer a sign-in here, so it connects with a key from your 1Password account.", what to do at the
app, and **Get a key from 1Password**, which opens the app's own page, for 33 of the most-used key
apps and any app whose listing publishes a link. Box labels read in plain words ("Access token"
for "Bearer Token", "Web address" for "Base URL"), and help text that named Composio says
OpenBot.

### OpenBot Desktop

- **A back end setup that stops says why.** OpenBot's log now records how every back end setup,
start, update and stop ended: how long it took, its exit code, what its report says went wrong
and the end of its error output. A setup that stopped used to leave nothing in the log. The card
says whether the back end stopped with an error partway, quit without saying why, or could not
be run, where all three said "The back end could not start."
- When OpenBot Desktop is signed in with a model Learning can't use, Learn now in Settings →
Learning says "Learning can't run on the model you signed in with. To use it, sign OpenBot in with
an OpenAI or Anthropic API key, or a Claude or ChatGPT plan.", where it told you to give the back
end's Learning agent a model and key.
- **The first notification after OpenBot Desktop starts is raised**, for a Bot that needs you or
replies while OpenBot is minimised or behind another window. The first one after each launch used
to raise nothing, because the app was still checking that notifications were on. OpenBot's log
Expand All @@ -46,6 +86,12 @@ Newest first. `Unreleased` is what is on `main` and not yet tagged.
step says "Setting up your apps" while they connect, where it flashed "Sign in to CopilotKit".
Opening OpenBot after a restart says "Starting the engine machine." while it starts OpenBot's
Podman machine, and Start's steps say "OpenBot's services" where they said "Containers".
- **Install's bar is full only when it is done.** Once every byte has arrived and the last items are
still unpacking, the bar keeps moving without filling and the line says "1.1 GB downloaded ·
Unpacking the last item", where it showed a full bar beside "1.1 GB of 1.1 GB · 1 of 5 items
remaining".
- The screen shown while OpenBot runs opens on "OpenBot is running", with its Updates section under
Show OpenBot and Stop OpenBot, as on the stopped screen, where it sat above the heading.
- **App updates download from downloads.copilotkit.ai.** The update feed there names
downloads.copilotkit.ai for the Windows installer and the Mac update archives, where they came
from GitHub, and every signature is unchanged. If that download fails, OpenBot Desktop reads
Expand All @@ -55,13 +101,17 @@ Newest first. `Unreleased` is what is on `main` and not yet tagged.
Bot has no folders it can read right now. Folder access ends when you stop OpenBot. To give it a
folder, use Choose folder in Settings → Computer." It said "No host folders are granted to this
Bot."
- **Install's bar is full only when it is done.** Once every byte has arrived and the last items
are still unpacking, the bar moves without filling and the line says "1.1 GB downloaded ·
Unpacking the last item". It showed a full bar beside "1.1 GB of 1.1 GB · 1 of 5 items
remaining".

### Teach a Bot

- **Teach a Bot says what happens after a recording saves**: "OpenBot learns a skill from it, and
you'll find it in Settings, Learning. Once it's learned, ask any Bot to do it." A row under the
recording follows it through Learning: **Learn now** before a run, "Learning from your
recordings" during one, "Ready to review" with **Review**, and "Skill learned" with **Try it**,
which opens Home with the task in the message box, not sent. A failed run, Learning with no
model, or a refused Learn now says why, and **See your skills** opens Settings → Learning. With
the page in the background and notifications allowed, a notification says when the skill
arrives. It used to say only that the recording was saved to your Learning space.
- **Teach a Bot is one page.** Its title and one line on how sit above the browser, and Your
recordings sits under it at the same width and scrolls on its own, so a long list no longer makes
the browser smaller. The page was headed "Browser". Where the browser opens as a window on your
Expand All @@ -73,10 +123,9 @@ Newest first. `Unreleased` is what is on `main` and not yet tagged.
name, the Narration switch (its (i) says what narration is for) and **Start recording**, where the
name field, the switch and Record sat in a bar above the browser. The narration line shows under
the browser only while recording, or to say "No microphone found. Narration is off." on a
computer with none, which keeps your narration choice for when there is one.
computer with none. There, Record no longer asks "Narrate while you record?": it records without
narration and asks the first time you record with a microphone.
- Your recordings links to Settings → Learning ("See what your Bots learned").
- On a computer with no microphone, Record no longer asks "Narrate while you record?". It records
without narration and asks the first time you record with a microphone.

### Conversations

Expand Down Expand Up @@ -109,16 +158,16 @@ Newest first. `Unreleased` is what is on `main` and not yet tagged.
card, Needs you and a task's waiting line say "Save a file todo.txt in share", "Read a file" and
"Run a command", where they said "Write file on todo.txt in share". A file on the Bot's own
computer is named by its path, and its save step reads "Saved a file".
- **A Bot's Activity names an action waiting for your approval the way its card does**, "Click
the link “Python” on en.wikipedia.org" or "Send email on Gmail", where it read "Approve
computer_click" with "write" beside it. Approval cards list what an action would send as
labelled lines, where they showed raw JSON, and a click shows none. In Slack and Microsoft Teams
the card says it the same way ("Research Bot wants to click the link “Python” on
en.wikipedia.org"). A saved rule is titled "Click" or "Send email on Gmail" instead of its tool
id, and the line under it reads "changes in share for Shop", where it read "write on
host-grant-15407-… for shopper-bot".
- An opened "Looked for a tool" step lists the tools the Bot found by name ("Send email on Gmail"),
where it showed their ids and the descriptions the search returned to the Bot.
- A browser action waiting for your approval is named the way its card names it. A Bot's Activity
row read "Approve computer_click" with "write" beside it, and now reads "Click the link “Python”
on en.wikipedia.org". The Needs you card names the link too and lists what the action would send
by label, without the page handles a click carried as raw JSON. An approval in Slack says it the
same way ("Research Bot wants to click the link “Python” on en.wikipedia.org"), and a saved rule
is titled "Click" or "Send email on Gmail" instead of its tool id. The line under it names the
folder and the Bot by name and the kind of action in words ("changes in share for Shop"), where
it read "write on host-grant-15407-… for shopper-bot".

### Personal edition

Expand All @@ -136,11 +185,6 @@ Newest first. `Unreleased` is what is on `main` and not yet tagged.

### Smaller changes

- Settings > Activity and Admin > Audit reach past the newest 50 events: "Show older events" under
the last row loads the next page, and the count says "Newest 50 events" until nothing is older.
- "OpenBot is running" opens on its heading again. Its Updates disclosure, and the line above it,
sit under Show OpenBot and Stop OpenBot, as on the stopped screen, instead of at the top of the
card with nothing above the line.
- The sidebar floats as frosted glass over the colours of OpenBot's orb, the orb sits beside
OpenBot's name, and the app is set in Atkinson Hyperlegible Next. The glass turns off with the
system's reduce transparency or increase contrast setting, and a skin keeps its own look.
Expand Down Expand Up @@ -169,16 +213,19 @@ Newest first. `Unreleased` is what is on `main` and not yet tagged.
is read out by screen readers.
- **New Bot** lists the frameworks a custom agent can run on under **Connect a custom agent** on its
first screen, below the form, one line each with its logo, Claude Agent SDK, LangChain, Google ADK
and AWS Strands first. Choosing one goes straight to its address, and Back returns to the list.
They were behind a Connect a custom agent button.
- In an 800px-tall window, OpenBot Desktop's usual height on a Mac, New Bot's first screen shows all
four of those frameworks above Cancel and Create Bot before you scroll, where only Claude Agent
SDK did.
and AWS Strands first, all four above Cancel and Create Bot in OpenBot Desktop's default window,
800px tall. Choosing one goes straight to its address, and Back returns to the list. They were
behind a Connect a custom agent button.
- LangChain is called **LangChain**, with LangChain's own mark, where it said "LangChain
(LangGraph)": in New Bot, a Bot's "Powered by" subtitle and its Runs on row, and OpenBot Desktop's
note under a ChatGPT plan.
- Onboarding's Welcome says "Give work to Bots in plain words.", where it said "Hand work to
Bots".
- Settings → Activity and Admin → Audit reach past the newest 50 events. **Show older events** under
the last row loads the next page, and the count reads "Newest 50 events", growing as more load,
until nothing older is left. They stopped at the newest 50 and counted them as if that were
everything.
- Apps the broker lists in lowercase are named with capitals in Browse apps and when added, such as
"1Password" where it said "1password". An app added before the upgrade keeps its name.
- Onboarding's Welcome says "Give work to Bots in plain words.", where it said "Hand work to Bots".

## 0.3.4

Expand Down
2 changes: 1 addition & 1 deletion charts/openbot/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ type: application
version: 0.2.0
# The OpenBot release this chart's default image tag points at. Kept equal to package.json's version
# (the last version published) by the release workflow, and CI refuses a tree where they have drifted.
appVersion: "1.0.0-rc.1"
appVersion: "1.0.0-rc.2"
home: https://github.com/CopilotKit/OpenBot
sources:
- https://github.com/CopilotKit/OpenBot
Expand Down
2 changes: 1 addition & 1 deletion desktop/src-tauri/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion desktop/src-tauri/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "openbot-desktop"
version = "1.0.0-rc.1"
version = "1.0.0-rc.2"
description = "OpenBot Desktop"
edition = "2021"
rust-version = "1.90"
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "openbot",
"version": "1.0.0-rc.1",
"version": "1.0.0-rc.2",
"license": "MIT",
"private": true,
"packageManager": "bun@1.4.3",
Expand Down
4 changes: 2 additions & 2 deletions release-policy.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"$schema": "./shared/release-policy.schema.json",
"version": "v1.0.0-rc.1",
"version": "v1.0.0-rc.2",
"compatibility": {
"launcherApi": 1,
"configSchema": 1,
Expand All @@ -11,7 +11,7 @@
"0082_routine_goal",
"0077_channel_opening"
],
"to": "0083_learning_skill_approvals",
"to": "0085_approval_rule_account",
"rollbackCompatible": false
},
"intelligenceCapabilities": []
Expand Down
Loading