Ettore Di Giacinto
ad39954af1
feat(addons): let a chat enable several connections of a credentialed add-on
...
A chat now enables a set of connections for an add-on whose tools run with
a credential, and the model names one of them in each call. This applies to
every add-on that declares a credential in its manifest.
- The Tools menu row of the add-on lists the connections with a checkbox
each. The saved agent names a set too (an empty set means each chat
chooses). A chat that a connector binding started keeps that binding
alone. With one connection, it is the set. With none enabled, the tools
are not offered.
- With one connection enabled the tools are unchanged. With two or more,
the host adds a required `connection` argument to every tool of the
add-on in the definitions it gives the model: an enum of the connection
names (the display name folded to lower case, digits and hyphens; the
description keeps the display name). The add-on never sees the argument.
- The name is checked against the set the chat has now, not against all the
connections of the person. A missing or unknown name returns a sentence
that lists the allowed names, and nothing is sent. A write tool never runs
without the name. Text in a tool result cannot widen the set, and the
owner checks the chosen binding against the set again.
- The resource list of the named connection is the only one that applies.
Results, the approval card and the text for a pending change name the
connection; the audit line has the binding ID.
- A connection name must be unique per person and add-on among the
credential-only connections, compared by name fold. Older duplicates get
a numeric suffix in the model's list.
- The stored chat, draft and agent values move from one binding ID per
add-on to a list of IDs. A single string is read as a set of one in the
stores and in every request, so older data and clients keep working.
PUT /api/chats/{id}/connections takes `connections`; the older
`connection` field still works.
Assisted-by: Claude:claude-sonnet-5-5 go gofmt ginkgo node eslint playwright swag
2026-11-03 22:33:28 +00:00
..
2026-11-03 22:33:28 +00:00
2026-11-03 19:38:55 +00:00
2026-11-03 20:53:02 +00:00
2026-11-03 22:02:30 +00:00
2026-11-03 22:33:28 +00:00
2026-11-03 13:57:28 +00:00
2026-11-03 16:56:49 +00:00
2026-11-03 10:58:46 +00:00
2026-11-02 23:50:40 +00:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-03 19:10:39 +00:00
2026-11-01 12:08:23 +01:00
2026-11-03 10:43:37 +00:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-03 19:23:01 +00:00
2026-11-01 18:30:08 +01:00
2026-11-01 18:30:08 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-03 14:56:42 +00:00
2026-11-01 12:08:23 +01:00
2026-11-03 16:56:49 +00:00
2026-11-03 08:39:12 +00:00
2026-11-03 22:33:28 +00:00
2026-11-01 12:08:23 +01:00
2026-11-03 19:10:39 +00:00
2026-11-03 22:33:28 +00:00
2026-11-03 14:56:42 +00:00
2026-11-01 12:08:23 +01:00
2026-11-03 19:12:29 +00:00
2026-11-01 12:08:23 +01:00
2026-11-03 14:33:05 +00:00
2026-11-01 12:08:23 +01:00
2026-11-03 20:53:02 +00:00
2026-11-03 19:10:39 +00:00
2026-11-03 19:12:29 +00:00
2026-11-01 18:30:08 +01:00
2026-11-01 18:30:08 +01:00
2026-11-03 13:57:28 +00:00
2026-11-03 14:45:43 +00:00
2026-11-03 14:45:43 +00:00
2026-11-03 22:33:28 +00:00
2026-11-03 22:33:28 +00:00
2026-11-01 12:08:23 +01:00
2026-11-03 14:33:05 +00:00
2026-11-01 18:30:08 +01:00
2026-11-03 14:33:05 +00:00
2026-11-03 14:33:05 +00:00
2026-11-03 14:33:05 +00:00
2026-11-03 14:33:05 +00:00
2026-11-03 14:33:05 +00:00
2026-11-03 14:33:05 +00:00
2026-11-03 08:30:08 +00:00
2026-11-01 12:08:23 +01:00
2026-11-03 19:10:39 +00:00
2026-11-03 19:10:39 +00:00
2026-11-03 22:02:30 +00:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-03 16:57:04 +00:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-03 14:45:43 +00:00
2026-11-03 14:45:43 +00:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-03 19:38:55 +00:00
2026-11-03 14:00:45 +00:00
2026-11-03 14:33:05 +00:00
2026-11-01 12:08:23 +01:00
2026-11-03 19:10:39 +00:00
2026-11-03 14:56:42 +00:00
2026-11-03 14:56:42 +00:00
2026-11-03 14:56:42 +00:00
2026-11-01 12:08:23 +01:00
2026-11-03 08:38:53 +00:00
2026-11-03 22:02:30 +00:00
2026-11-01 18:30:08 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 18:30:08 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-03 14:32:01 +00:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-03 10:43:37 +00:00
2026-11-01 18:30:08 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 18:30:08 +01:00
2026-11-03 22:33:28 +00:00
2026-11-03 22:33:28 +00:00
2026-11-03 22:33:28 +00:00
2026-11-03 21:29:29 +00:00
2026-11-03 21:29:29 +00:00
2026-11-03 14:32:01 +00:00
2026-11-03 21:17:39 +00:00
2026-11-03 21:17:39 +00:00
2026-11-03 21:17:39 +00:00
2026-11-03 14:59:30 +00:00
2026-11-03 22:02:30 +00:00
2026-11-03 22:33:28 +00:00
2026-11-03 16:57:04 +00:00
2026-11-03 21:29:29 +00:00
2026-11-03 15:41:45 +00:00
2026-11-03 21:29:29 +00:00
2026-11-03 16:57:04 +00:00
2026-11-03 16:57:04 +00:00
2026-11-03 16:57:04 +00:00
2026-11-02 01:16:55 +00:00
2026-11-03 14:00:31 +00:00
2026-11-03 21:29:29 +00:00
2026-11-03 14:00:31 +00:00
2026-11-03 21:29:29 +00:00
2026-11-03 22:02:30 +00:00
2026-11-03 16:57:04 +00:00
2026-11-03 15:41:45 +00:00
2026-11-03 16:57:04 +00:00
2026-11-03 21:28:48 +00:00
2026-11-03 16:57:04 +00:00
2026-11-03 16:57:04 +00:00
2026-11-03 14:32:01 +00:00
2026-11-03 16:57:04 +00:00
2026-11-03 16:57:04 +00:00
2026-11-03 11:54:33 +00:00
2026-11-01 12:08:23 +01:00
2026-11-03 16:57:04 +00:00
2026-11-03 21:29:29 +00:00
2026-11-03 16:56:49 +00:00
2026-11-03 14:42:21 +00:00
2026-11-03 22:33:28 +00:00
2026-11-03 15:41:45 +00:00
2026-11-03 11:30:11 +00:00
2026-11-03 11:54:33 +00:00
2026-11-03 14:59:30 +00:00
2026-11-03 14:00:31 +00:00
2026-11-03 16:57:04 +00:00
2026-11-03 16:57:04 +00:00
2026-11-03 16:57:04 +00:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-03 13:57:28 +00:00
2026-11-03 14:56:42 +00:00
2026-11-03 13:57:28 +00:00
2026-11-01 12:08:23 +01:00
2026-11-03 14:00:45 +00:00
2026-11-03 22:33:28 +00:00
2026-11-03 10:58:46 +00:00
2026-11-03 10:58:46 +00:00
2026-11-03 10:58:46 +00:00
2026-11-03 10:58:46 +00:00
2026-11-02 18:48:39 +01:00
2026-11-03 10:43:37 +00:00
2026-11-03 10:43:37 +00:00
2026-11-03 10:58:46 +00:00
2026-11-03 10:58:46 +00:00
2026-11-03 11:31:36 +00:00
2026-11-03 11:31:37 +00:00
2026-11-02 23:50:40 +00:00
2026-11-02 23:50:40 +00:00
2026-11-01 12:08:23 +01:00
2026-11-03 16:57:04 +00:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-03 14:56:42 +00:00
2026-11-03 14:56:42 +00:00
2026-11-03 14:56:42 +00:00
2026-11-03 15:02:03 +00:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-03 08:39:12 +00:00
2026-11-03 14:56:42 +00:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 18:30:08 +01:00
2026-11-03 19:10:39 +00:00
2026-11-03 11:31:36 +00:00
2026-11-03 08:38:53 +00:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-03 17:23:29 +00:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-03 19:12:29 +00:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-03 14:45:43 +00:00
2026-11-03 10:58:46 +00:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-03 14:00:31 +00:00
2026-11-03 14:33:05 +00:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 18:30:08 +01:00
2026-11-01 18:30:08 +01:00
2026-11-03 19:12:29 +00:00
2026-11-03 11:31:36 +00:00
2026-11-01 18:30:08 +01:00
2026-11-01 18:30:08 +01:00
2026-11-01 12:08:23 +01:00
2026-11-03 08:30:08 +00:00
2026-11-03 22:33:28 +00:00
2026-11-02 18:48:39 +01:00
2026-11-01 12:08:23 +01:00
2026-11-03 10:07:46 +00:00
2026-11-03 10:07:46 +00:00
2026-11-03 14:56:42 +00:00
2026-11-02 18:48:39 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-02 21:03:50 +01:00
2026-11-01 12:08:23 +01:00
2026-11-03 19:10:39 +00:00
2026-11-03 08:38:53 +00:00
2026-11-03 22:33:28 +00:00
2026-11-03 22:33:28 +00:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-02 21:03:50 +01:00
2026-11-03 14:42:21 +00:00
2026-11-03 14:33:05 +00:00
2026-11-01 12:08:23 +01:00
2026-11-03 14:33:05 +00:00
2026-11-02 23:50:40 +00:00
2026-11-03 14:45:43 +00:00
2026-11-03 20:53:02 +00:00
2026-11-03 20:53:02 +00:00
2026-11-03 20:53:02 +00:00
2026-11-01 12:08:23 +01:00
2026-11-03 19:12:29 +00:00
2026-11-03 14:42:21 +00:00
2026-11-03 14:59:30 +00:00
2026-11-03 14:59:30 +00:00
2026-11-03 20:53:02 +00:00
2026-11-03 19:12:29 +00:00
2026-11-03 20:53:02 +00:00
2026-11-02 23:50:40 +00:00
2026-11-03 19:12:29 +00:00
2026-11-03 22:02:30 +00:00
2026-11-01 12:08:23 +01:00
2026-11-03 20:53:02 +00:00
2026-11-03 14:49:34 +00:00
2026-11-03 14:56:42 +00:00
2026-11-01 12:08:23 +01:00
2026-11-01 12:08:23 +01:00
2026-11-01 18:30:08 +01:00
2026-11-01 12:08:23 +01:00