Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
1169dcd
fix(ux): hide inspector and replace new bot sparkle icon
samjulien Oct 27, 2026
1bb3f73
fix(ux): simplify new bot details and visibility copy
samjulien Oct 27, 2026
9c194f3
fix(copy): use complete actionable descriptions across OpenBot
samjulien Oct 27, 2026
c5d077c
feat(ux): personalize profile on first run and in settings
samjulien Oct 27, 2026
5ab2854
feat(ux): simplify bot creation and polish welcome prompt
samjulien Oct 27, 2026
fa1aeef
feat(ux): add new bot action to conversation picker
samjulien Oct 27, 2026
4bff7f7
fix(ux): align bot header and move hosting choice last
samjulien Oct 27, 2026
2043af5
fix(ux): use default orb for new bot picker action
samjulien Oct 27, 2026
fab2ccb
fix(ux): advance when choosing a custom agent framework
samjulien Oct 27, 2026
046a7fa
fix(ux): describe new bot action in recipient picker
samjulien Oct 27, 2026
60b72b8
fix(ux): use consistent instructions label for all bots
samjulien Oct 27, 2026
a276f3f
fix(copy): remove period from new bot picker preview
samjulien Oct 27, 2026
a5ee8ce
fix(ux): show existing agent connection first
samjulien Oct 27, 2026
d7b2c77
fix(ux): advance custom agent choice after name validation
samjulien Oct 27, 2026
17fac0a
feat(ux): add restrained name personalization to conversations
samjulien Oct 27, 2026
8c5ea31
fix(copy): use a comma in the personalized greeting
samjulien Oct 27, 2026
3d4e04e
fix(ux): preserve refreshed names and deliver restraint guidance
samjulien Oct 27, 2026
a8ee519
test(ux): align IME regression with details-first bot flow
samjulien Oct 27, 2026
86a36ab
test(ag2): accept SDK bearer API key authentication
samjulien Oct 27, 2026
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
5 changes: 4 additions & 1 deletion .claude/skills/openbot-copy/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,8 @@ because the admin is the one who sets them. A page anybody can open may not.

1. **Say what happened, then what to do.** "Gmail isn't connected. Connect it to let Bots read your
mail." Not why the screen is built the way it is.
2. **One idea per sentence. Short sentences.** A description is one or two sentences, about 20 words.
2. **Use complete sentences for explanations.** Page descriptions, helper text, notices, and empty-state bodies need a subject and a verb, or a direct instruction ("Connect your accounts"). Avoid fragments such as "The apps your Bots use" or "What this Bot can do." Headings, labels, buttons, and short status labels may be fragments.
**Keep only useful explanation.** State the action, outcome, or constraint the person needs. Remove copy that merely repeats the heading. Use natural sentence lengths; do not chop prose into fragments to meet a word count.
3. **Plain words.** "use", not "hold a grant on". "can't", not "is unable to". Contractions are fine.
4. **No "rather than", no em dashes, no "which is why", no "so that nothing … that may be wrong".**
These are the marks of text that is explaining itself. Cut the clause or make it its own sentence.
Expand All @@ -59,6 +60,7 @@ because the admin is the one who sets them. A page anybody can open may not.

| Before | After |
|---|---|
| The apps and accounts your Bots use as you. Open one to connect it or change it. | Connect your accounts so Bots can use apps on your behalf. |
| Your connected accounts could not be loaded, so nothing is listed here rather than a list that may be wrong. Reload the page, and tell an administrator if it persists. | Couldn't load your connections. Reload the page, or ask an admin if it keeps happening. |
| Sent to the coworker it is for. Type @ to choose one yourself. | OpenBot picks the right Bot. Type @ to choose one. |
| Gmail is a Composio app, and this deployment has no Composio key. (to a non-admin) | Gmail isn't set up yet. An admin has to turn it on. |
Expand All @@ -73,5 +75,6 @@ because the admin is the one who sets them. A page anybody can open may not.
| "this deployment" on a page anybody can open | OpenBot, or say what is missing |
| A sentence over ~25 words | Split it, or cut the clause that justifies the screen |
| "rather than", an em dash, "which is" in UI text | Rewrite as two short sentences |
| A description beginning "The apps…", "What…", "Who…", or "Where…" without a main verb | State the action or behavior in a complete sentence; remove redundant explanation |
| An env var, OAuth, Composio or "grant" outside Admin | Say what the person sees |
| A test asserting long explanatory copy | Assert the short sentence, or the role and the key words |
10 changes: 8 additions & 2 deletions agent-ag2/tests/test_main.py
Original file line number Diff line number Diff line change
Expand Up @@ -190,7 +190,13 @@ def test_an_anthropic_key_uses_the_official_endpoint_when_compose_sets_a_blank_u

async def respond(transport, request):
body = json.loads(request.content)
seen.append((str(request.url), request.headers.get("x-api-key"), body["model"]))
# Anthropic 2.3 sends API keys as Bearer tokens; older SDKs use x-api-key.
# Assert the actual credential in either supported header, not just its presence.
assert (
request.headers.get("x-api-key") == "test-key"
or request.headers.get("authorization") == "Bearer test-key"
)
seen.append((str(request.url), body["model"]))
return httpx2.Response(
200,
request=request,
Expand Down Expand Up @@ -224,7 +230,7 @@ async def respond(transport, request):
"/", json=RUN, headers={"x-openbot-agent-token": TOKEN}
)

assert seen == [("https://api.anthropic.com/v1/messages", "test-key", "claude-sonnet-4-5")]
assert seen == [("https://api.anthropic.com/v1/messages", "claude-sonnet-4-5")]
assert response.status_code == 200
assert '"RUN_FINISHED"' in response.text
assert '"RUN_ERROR"' not in response.text
Expand Down
2 changes: 1 addition & 1 deletion app/src/components/agents/handoff-panel.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ export function HandoffPanel({ agentId }: { agentId: string }) {
</span>
) : null
}
description="The Bots this one can ask for help. This doesn't change who can ask it. Their answers come back into the same conversation, under their name."
description="Choose which Bots this Bot can ask for help. Their answers appear in the same conversation under their own names. This does not change who can ask this Bot for help."
title="Bots it can ask"
>
{/* Facts about the deployment rather than rows to act on, so said as sentences. */}
Expand Down
Loading
Loading