lobu-v24.0.0

3 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
  1. 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.

    Slide text
    Lobu 24.0.0 Release

    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.

  2. 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.

    Slide text
    Lobu 24.0.0 New 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
    good Show me the diff
    bad I 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.
  3. 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.

    Slide text
    Lobu 24.0.0 New 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
  4. 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.

    Slide text
    Lobu 24.0.0 Connectors

    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.
  5. 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.

    Slide text
    Lobu 24.0.0 Access

    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
  6. 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.

    Slide text
    Lobu 24.0.0 Fixed

    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
  7. Now the change that needs work on your side.

    Slide text
    Lobu 24.0.0 Breaking

    What changes for views

  8. 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.

    Slide text
    Lobu 24.0.0 Breaking

    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.
  9. 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.

    Slide text
    Lobu 24.0.0 Breaking

    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.

  10. 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.

    Slide text
    Lobu 24.0.0 Upgrade

    Upgrade the CLI with the server

    @lobu/cli 24.0.0 lobu 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

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 ❤️