THE WRITE-AHEAD BLOG

Changelog 0.18

I've been out of the proverbial office for a couple weeks, and we're (way) overdue for a changelog. Expect the weekly cadence to pick back up from here.

If you haven't logged into the Membrane IDE in the last few weeks, you'll notice many changes! Namely, you'll find Brane, our LLM assistant, changes to system programs, and our experimental dashboard.


Brane

Thomas has been leading the charge on Brane, our LLM assistant.

From Thomas:

I've introduced tools to Membrane's assistant Brane (the name we've landed on - let us know if you like it). I've added initial tools like retrieve_schema and add_connection that enable Brane to directly interact with your programs and explore your graph structure. The plan is to add many more tools that let Brane manipulate programs and help automate common workflows. These tools will enable Brane to access data and take actions on behalf of users, making it a more powerful development partner. In the future, we envision Brane automating repetitive tasks, orchestrating complex workflows across multiple programs, designing views for your data, and running background tasks for you. Brane will become increasingly capable as an agent that can work alongside you, handling routine operations while you focus on creative problem-solving and building your unique solutions.

-Thomas

Brane will soon have access to tools for invoking actions, creating new programs and files, reading program logs, setting up timers and cron jobs, and even generating UI for your Membrane dashboard. If you have any feedback as an early adopter, please do send us your thoughts over email or on Discord!

And if you haven't tried it yet, Brane is waiting...

New Brane chat UI

sys programs

Here's what Romet had to say about sys-db and exposing other system programs:

Last update I gave a first look into sys-db, our new system program for database connectivity. While sys-db is getting ready for prime time, I've been making broader changes in how Membrane users can interact with our system programs in general.

Previously you could already manually add system programs as connections in memconfig.json, but they were mostly tucked away in wrapper programs (email, sms, http). It didn't make sense for sys-db to get a wrapper program of its own, leading us to re-evaluate having them in the first place. Instead, you'll now see these system programs show up in your program list, so that you can explore their functionality and invoke their actions directly.

We'll be following this up with removing wrapper programs entirely. Your existing workspaces will be unaffected, of course, as your wrapper programs are your personal copies and they will continue to work as they used to. They'll just be gone from the new user experience in favor of using system programs directly, and the docs will change to reflect this.

Oh, and sys-http now has a more general request action that lets you specify the request method instead of having to use separate actions. fetch also defaults to using request from the http connection when available.

-Romet

Following Romet's work, I removed sys wrapper programs (although you can continue to use yours, as Romet noted). New users will see only hello-world and sys-* programs, docs have been updated accordingly, and all packages published under membrane/* use system programs as connections.

Welcome tour

We recently released a product tour that orients new users in the Membrane IDE upon signup. I'm working on making that tour more interactive, with more granular guidance on the hello-world program. If you've already signed up, you can open hello-world/index.ts and visit ide.membrane.io?tour=true to try the tour. Here's a glimpse:

We want programmers seeing Membrane for the first time to get to aha moments faster. We've been calling that Time To Aha (TTA) internally.

Membrane themes

Juan and I have also been working on custom Membrane Light and Dark themes for the IDE. Membrane Light has a newspaper-ish aesthetic to match the design of membrane.io (including this blog). Membrane Dark is a fairly standard dark theme. Both themes make spare use of syntax highlighting, save for a splash of orange.

Membrane Light theme

We now also auto-detect your OS preference when the IDE loads to default to your light/dark preference.

Membrane Dark theme

The dashboard

Juan is heads down working on the Membrane dashboard, a visual control panel for your program graph. It's available experimentally right now, but we'll be sharing more soon!

Other updates

And finally, a laundry list of features and bug fixes:

  • - Romet is working on code completions in the editor (separate from Brane)
  • - Jhonny is adding file version history in the IDE
  • - Pete recorded a video, Slack + GitHub issue watcher in 10m
  • - Juan refreshed the design of our editor watermark, loading state, and iconography
  • - Jhonny added deployment status to the PROGRAM details tab
  • - Thomas added format info to our timer menu UI and in docs
  • - Romet added a program filter in the explorer sidebar
  • - Pete updated the API and website new program templates to use Hono
  • - Juan improved the action params editor in the graph explorer
  • - Romet added nice gref views in the state explorer
  • - Juan improved type inference for exported actions like endpoint
  • - Romet renamed db.query to db.execute
  • - Pete updated the membrane.io landing page
  • - Juan added copy button to state explorer values
  • - Romet added support for JSON type hints in memconfig
  • - Juan added cmd+enter shortcut for publishing packages
  • - Thomas enabled text selection for rendered markdown
  • - Romet fixed a bug with pinned programs in the explorer sidebar
  • - Pete fixed a bug with dragging editor tabs
  • - Jhonny fixed a bug with npm package installation
  • - Pete fixed a bug with the editor settings input cursor
  • - Juan fixed a bug with the displayed version in the package publisher
  • - Juan fixed a bug with auto-scroll when collapsing programs in the explorer

- Pete Millspaugh (pete@membrane.io)

© 2024 Programmability, Inc.