Skip to content

feat(chat): compact script calls, no composer when a conversation cannot open - #92

Merged
albanm merged 4 commits into
mainfrom
chore-code-mode-compact
Nov 9, 2026
Merged

albanm merged 4 commits into
mainfrom
chore-code-mode-compact

Conversation

@albanm

@albanm albanm commented Nov 9, 2026

Copy link
Copy Markdown
Member

A code_mode script's calls now take one line in the chat: beside the script's chip, one small tag per tool with its count (closure_stats ×3), red when any of its calls failed or was denied. They used to be one full chip per call, so a loop became a column of chips. The review page's trace panels keep one chip per call.

Found while validating it:

  • No composer when the conversation cannot be opened. A refused hello (unknown agent, refused grant, invalid anonymous token) now sends its error frame with blocking: true, also when a later prompt repeats that refusal. The chat then hides the composer and the welcome line, as it does when its history cannot be loaded. A refused turn (quota, lost connection) keeps the composer.
  • The empty state's error alert is sized to its content: v-alert's flex: 1 1 0% stretched a one-line error to the pane's height.
  • npm run dev-fixtures lists threads with the current portal-assistant id. The old personal id 404ed, which stopped the script before it seeded the autonomous agent.

Why: the script render took too much room in the chat for what it says.

Heads-up:

  • blocking is a new optional field on the server's error frame (shared/agent-session-server-frame/schema.js); clients that don't know it ignore it.
  • The chat also blocks when its initial history listing fails for any reason, a transient 500 included. The composer then stays hidden until the person reloads or switches agent.

albanm and others added 4 commits November 9, 2026 16:16
A code_mode script listed one full tool chip per call under its own chip, so a loop
became a column of chips. The chat now shows each tool once beside the script's chip,
as a small tag with its count, red when any of its calls failed or was denied. The
review page's trace panels keep one chip per call.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The chat seeding listed existing threads with agentId=personal, an id since renamed to
portal-assistant: the listing 404ed and the script stopped before seeding the
autonomous agent.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
v-alert carries flex: 1 1 0%, which in the empty state's column stretched a one-line
error to fill the pane's height. flex-0-0 keeps it to its content, and
align-self-stretch keeps it full width in the centered column.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A refused hello (an unknown agent, a refused grant, an invalid anonymous token) left
the composer and the welcome line inviting a message that could not go anywhere. The
error frame now carries blocking: true for that refusal, also when a later prompt
repeats it; the chat then hides the composer and the welcome, as it does when its
history cannot be loaded. A refused turn (a quota, a lost connection) keeps the
composer: sending again may get past it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@albanm
albanm merged commit d710195 into main Nov 9, 2026
4 checks passed
@albanm
albanm deleted the chore-code-mode-compact branch November 9, 2026 15:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant