Ryuk

Product changelog

Every release, fix, and product milestone in one place.

This page mirrors the work logged in our internal changelog and presents it in a cleaner public format. Browse the latest ship, scan summaries fast, or drill into each web and server change.

Mar 23, 2026
report editor power-ups and pdf export
spent the day making the report editor actually powerful. you can now search through chat history and pin important messages. added a connection picker directly in the chat sidebar so switching databases mid-conversation is instant. on the report side — table blocks, live sql blocks that execute queries inline, drag-and-drop block reordering, full version history with diffs and restore, and pdf export with proper chart rendering. the report editor went from basic to legitimately useful today.

chat search and message bookmarks

full-text search across chat messages within a conversation. bookmark/pin individual messages for quick reference later.

report table and sql blocks

two new block types for reports — table blocks for embedding static data, and live sql blocks with a connection picker that execute queries and display results inline when viewing the report.

document version history

every save creates a snapshot. full version history with the ability to view any previous version, see what changed, and restore it. snapshots store the complete block state so restores are lossless.

pdf export with chart rendering

server-side pdf generation using playwright. spins up a headless browser, renders the report including all charts and tables, and returns a clean pdf. had to add chromium dependencies to the dockerfile for this one.

chat search, connection picker, and message pins

search bar in chat sidebar, inline connection picker to switch databases without leaving the conversation, and pin/bookmark toggle on individual messages.

drag-and-drop block reordering

report blocks can now be reordered by dragging. uses dnd-kit for smooth drag interactions with visual drop indicators.

version history ui

version history panel in the report editor showing all snapshots with timestamps. click any version to preview it, see a diff against the current state, or restore it with one click.

pdf export button

export button on both the editor and public report view. hits the server-side renderer and downloads a pdf. works with all block types including live charts.

Mar 22, 2026
tables, query history, and file attachments
feature sprint. the chat agent now renders tabular results as proper interactive tables with sorting and pagination — no more dumping raw json. added query history so every sql query ever executed is logged and browsable, which is great for auditing and re-running past queries. also integrated file attachments into chat — you can upload csvs or images and the agent will reference them in context.

table output from chat agent

new tool call type for the agent that returns structured tabular data. the agent decides between chart and table based on the nature of the query — aggregate data gets charts, row-level data gets tables.

query history

every sql query executed through any endpoint is now logged with the connection, execution time, row count, and timestamp. paginated history endpoint with search.

file attachment support

upload files to chat messages. files are stored and their content is extracted and injected into the agent's context window so it can reference uploaded data in its responses.

interactive tables in chat

tabular results render as sortable, paginated tables inline in the conversation. column headers, row striping, and overflow scrolling for wide datasets.

query history page

browsable list of all past queries with timestamps, execution times, and the ability to re-run any query against its original connection.

file attachments in chat

drag-and-drop or click-to-upload file attachments on chat messages. shows file previews and attachment indicators on messages.

Mar 21, 2026
reports, publishing, and libsql support
big day. built the entire report system — a block-based document editor where you can write narrative text, embed saved metrics as live charts, and publish the whole thing as a shareable public page. the chat agent can also generate reports from conversations now, which is surprisingly useful for turning ad-hoc analysis into something presentable. also added libsql/turso as a supported database type for the edge database crowd.

report and document system

full document model with ordered blocks — text (tiptap), chart (embedded metrics), and heading blocks. supports draft and published states. published reports get a public url with no auth required.

ai report generation from chat

new chat agent tool that takes a conversation's context and generates a structured report. it picks the most interesting metrics, writes narrative sections, and arranges everything into a coherent document.

libsql/turso support

added libsql as a connection type. handles both local file-based libsql and remote turso databases with auth tokens. uses the libsql python client under the hood.

report editor and public view

block-based editor built on tiptap with slash commands for inserting blocks. metric embeds render as live charts. public report view is clean and minimal — just the content, no chrome.

public report metric rendering

fixed an issue where metric content was being double-serialized as json strings inside json. public reports were showing raw json instead of chart data.

Mar 20, 2026
system health, ci pipeline, and metrics
operational stuff today. added a system status page that shows service health for the api, database, redis, and inngest. set up the ci pipeline with github actions and got the dockerfile production-ready. also fixed a bunch of issues with the chat agent — metric saving was broken in certain edge cases, and the prompts needed tuning to produce more reliable sql.

system status endpoint

health check endpoint that pings all dependencies — database, redis, inngest — and returns individual status for each. the frontend polls this to show a live status indicator.

ci and dockerfile

github actions workflow for linting, type checking, and building the docker image. multi-stage dockerfile with proper caching to keep image size reasonable.

system status page

clean status page showing uptime for each service with colored indicators. accessible from the sidebar.

chat agent metric save and prompt fixes

fixed a bug where saving metrics from chat would silently fail when the agent's sql contained certain edge cases. also rewrote parts of the system prompt to reduce hallucinated column names.

Mar 19, 2026
delegate access and chart rendering
two separate but important things today. first — delegate access. you can now invite team members to your account, and they get scoped access to your connections and chats. switching between accounts works seamlessly. second — the chat agent can now generate charts. ask it to visualize something, and it returns a chart config that the frontend renders with recharts. bar charts, line charts, pie charts, area charts — it picks the right type based on the data shape.

delegate access implementation

invite users to your account with granular permissions. delegation model tracks who has access to what. middleware resolves the active account context so all downstream queries are scoped correctly.

delegation ui and account switching

invite flow, pending invitations list, and a seamless account switcher in the sidebar. switching accounts re-scopes everything — connections, chats, metrics — without a page reload.

chart rendering in chat

when the agent returns chart data, the frontend renders interactive recharts components inline in the conversation. supports bar, line, pie, and area charts with tooltips and legends.

collections

organize chats and saved items into collections. simple folder-like structure to keep things tidy as you accumulate conversations.

Mar 18, 2026
schema intelligence and the chat agent
the interesting part begins. built a schema analyzer that introspects connected databases — pulls every table, column, type, relationship, and generates ai descriptions for all of it. this powers the chat agent, which is the core of ryuk. you ask questions in plain english, it writes sql, runs it against your database, and streams the response back via sse. also wired up redis for session management and chat title generation.

schema generation and data modeling

automated schema introspection for connected databases. extracts tables, columns, types, constraints, and relationships. ai generates human-readable descriptions for every table and column — this context gets injected into chat agent prompts so the llm actually understands your data.

chat agent with sse streaming

the main feature. users chat in natural language, the agent writes sql, executes it against the selected connection, and streams results back in real-time via server-sent events. supports multi-turn conversations with full context.

redis integration

redis for sse event pub/sub, chat session caching, and async title generation. titles are generated in the background after the first message so there's no latency hit on the main response.

chat interface

full chat ui with streaming message display, markdown rendering, and syntax-highlighted sql blocks. messages appear token by token as the agent thinks.

Mar 17, 2026
day zero. project scaffolding and auth
started ryuk from scratch today. set up the monorepo — a fastapi backend (ryuk-server) and a next.js frontend (ryuk-web). got authentication working end-to-end with middleware, cors sorted out, and the basic database schema designed. also built out the full connections crud so users can plug in their postgres, mysql, or sqlite databases. nothing fancy yet, but the foundation feels solid.

project init and auth middleware

fastapi project with async sqlalchemy, alembic migrations, clerk-based auth middleware. every route is protected by default.

database connections crud

users can add, test, edit, and delete database connections. supports postgres, mysql, and sqlite out of the box. credentials are encrypted at rest.

app shell and connections ui

sidebar navigation, connection management page with add/edit forms, and a sample database page for new users to play with.

cors and connection tests

cleaned up cors config for local dev and fixed a flaky connection test that was timing out on slow networks.