lobu-v24.0.0

2 hours ago

Lobu 24 is out. The biggest change is for views. A view's key, name, attachments and actions now live in one place, the defineView call inside its own module. That is a breaking change, so the server and the CLI upgrade together. First, though, a lot is new in chat.

Ask about this presentation

Chapters

  1. 0:00Lobu 24
  2. 0:18Starters and follow-up chips
  3. 0:40Chat linking in one step
  4. 1:00Connectors
  5. 1:18Public workspace limits
  6. 1:40Fixes
  7. 2:00What breaks
  8. 2:03defineView is the only declaration
  9. 2:25Attach entries name a page
  10. 2:46Upgrade
Show transcript

Lobu 24

Lobu 24.0.0Release

Lobu 24 declares every view in its own module

Also new: follow-up chips, conversation starters, and joining a workspace and linking chat in one step.

Lobu 24 is out. The biggest change is for views. A view's key, name, attachments and actions now live in one place, the defineView call inside its own module. That is a breaking change, so the server and the CLI upgrade together. First, though, a lot is new in chat.

Starters and follow-up chips

Lobu 24.0.0New in chat

Agents suggest what to say, before and after a reply

BEFORE THE FIRST MESSAGE
Conversation starters
// on an agent in your config starters?: Array<{ title: string; message: string; }>
Up to 3 per agent, on an empty web chat and as Slack assistant thread prompts.
AFTER EACH REPLY
Follow-up chips
goodShow me the diff
badI can show you the diff
The model is asked for up to 3 chips, each titled in 20 characters or fewer; the message is sent as the user.

Agents can now suggest what to say. Each agent can carry up to three conversation starters, shown on an empty web chat and as Slack assistant thread prompts. And after each reply to a person, the same model proposes up to three follow-up chips. An offer in the reply becomes a chip, and tapping it sends that message as the user.

Chat linking in one step

Lobu 24.0.0New in chat

Join a workspace and link chat in one step

1
An unlinked sender writes to the agent
2
They get one linking notice
3
They sign in with that chat platform's own login, where one exists
4
The chat confirms the link
Reddit sign-in X sign-in links that account's DMs Join a public workspace and link at once

Linking a chat account got shorter. A sender without a linked account gets one notice, signs in with that chat platform's own login where one exists, and the chat confirms the link. Reddit sign-in is on, signing in with X also links its direct messages, and joining a public workspace links the account in the same step.

Connectors

Lobu 24.0.0Connectors

Connectors read more of your feeds and chats

Reddit
Reads the connected user's home feed.
WhatsApp
Reads one chat's newest messages.
chat:<jid>
LinkedIn
Group posts in the home feed now get their own IDs. Page admins writing as themselves get answers.

Connectors can read more. Reddit reads the connected user's home feed. WhatsApp can read one chat's newest messages, addressed by that chat's ID. And LinkedIn now gives group posts in the home feed their own IDs, and answers a page admin who writes to the page as themselves.

Public workspace limits

Lobu 24.0.0Access

Reads of public workspaces are now rate limited

ANONYMOUS
Limited per IP addressNeeds the production proxy hop count
SIGNED-IN NON-MEMBER
Reads like an anonymous visitorWith its own per-account limit
PUBLIC PAGES
Operational trail kept offA rate-limited render is a 503, never a cached 404
AUDIT LOG
Records who changes visibility, name or slug

Public workspaces now have read limits. Anonymous reads are limited per IP address, which needs the production proxy hop count set. Signed-in non-members read like anonymous visitors, with a per-account limit. Public pages keep the operational trail off, and the audit log records who changes a workspace's visibility, name or slug.

Fixes

Lobu 24.0.0Fixed

A closed Postgres connection no longer crashes the server

Queries on it are rejected instead.

OAUTH
A dead grant is suspended until the user reconnects
CHAT
Reset clears the conversation history
CLI
--only memory keeps provider keys out

A query on a closed Postgres connection is now rejected instead of crashing the server. Token refresh suspends a dead OAuth grant until the user reconnects, instead of retrying forever. Resetting a chat clears its conversation history. And lobu apply for memory only no longer pushes provider keys.

What breaks

Lobu 24.0.0Breaking

What changes for views

Now the change that needs work on your side.

defineView is the only declaration

Lobu 24.0.0Breaking

A view is declared once, in defineView

import { defineView } from "@lobu/views"; export const view = defineView({ key: "pipeline", name: "Pipeline", attach: [{ collection: "deal" }], }); export default function Pipeline() { … }
WRITTEN AS A LITERAL
The server reads it without running the module.
defineView.attach[0].collection must be written out as a literal
manage_views set
Takes the source. Passing key, name, attach, params or actions returns 400.

The server now reads a view's key, name, attachments, params and actions from the module's defineView call. It reads that call without running the module, so the argument must be a literal. A variable or a spread is rejected, and the error names the field. And manage views set takes the source alone. The old arguments get a 400.

Attach entries name a page

Lobu 24.0.0Breaking

Each attach entry names the page a view shows on

{ type: "deal", surface: "collection" }→{ collection: "deal" }tab on the list page
{ type: "deal", surface: "record" }→{ record: "deal" }card on the record page
{ entity: 7 }→{ record: "deal", id: 7 }one record only
{ event_kind: "deal.won" }→{ event: "deal.won" }the event's page

Stored attachments are migrated. A view source with the old entries fails validation on its next save until you edit it.

Attach entries changed shape too. Each one names a page: a record, a collection, the workspace, or an event. Placement is gone, and a record view is a card on the record page that opens fullscreen. Stored attachments are migrated for you, but a source file with old entries fails validation on its next save, so edit those.

Upgrade

Lobu 24.0.0Upgrade

Upgrade the CLI with the server

@lobu/cli 24.0.0lobu chart 24.0.0

lobu apply from CLI 23.0.0 or older fails against a 24 server.

Views declared once in defineView. Chats that suggest the next message.
github.com/lobu-ai/lobu/releases/tag/lobu-v24.0.0
Lobu

Move the server and the CLI to 24 together. Lobu apply from CLI 23 or older fails against an upgraded server, so if a pipeline can't update its CLI yet, hold the server back. After that, views are declared once in defineView, and chats suggest the next message.

What happened in AI today, in your inbox

One short email each evening. Read it and you’re caught up.

Built in New York with ❤️