Skip to content

Conversation

@manzt
Copy link
Contributor

@manzt manzt commented Dec 10, 2025

These changes introduce a new "Session" panel that combines what were previously separate "Variables" and "Data Sources" panels into a single view with collapsible accordion sections. Data Sources appears first and is collapsed by default, showing a badge with the count when collapsed. Variables is expanded by default. This reduces sidebar icon count while keeping both features easily accessible.

@manzt manzt requested a review from Light2Dark as a code owner December 10, 2025 22:32
@vercel
Copy link

vercel bot commented Dec 10, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Review Updated (UTC)
marimo-docs Ready Ready Preview, Comment Dec 29, 2025 5:42pm
@Light2Dark
Copy link
Contributor

Light2Dark commented Dec 11, 2025

My only thought is for users who refer to data sources constantly, keeping it closed every time the panel is opened wouldn't be great. We could store it's state in local storage?

const variables = useVariables();
const cellIds = useCellIds();
const datasets = useDatasets();
const [openSections, setOpenSections] = useState<string[]>(["variables"]);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1 to store this in localstorage. i (n=1) use datasources much more than the variables

Icon: DatabaseIcon,
tooltip: "Explore data sources",
Icon: VariableIcon,
tooltip: "Explore session",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this will make using the command palette much harder (since you cannot search variables or datasources to find this panel)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is Explore variables and datasources too verbose?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok to have a follow up PR for the commandn palette? I updated the tooltip to "Explore variables and datasources"

The footer now has a single button to toggle the developer panel. It
shows a terminal icon normally, or an error icon with count when there
are errors. Either way, clicking toggles the panel.

The developer panel's Errors tab shows a red dot indicator when there
are errors, even when viewing other tabs.

Add spacing to developer button
The kernel health indicator has moved from the footer into the developer
panel header, next to the tabs. This keeps the footer minimal while
still making health status accessible when debugging.
These changes introduce a new "Session" panel that combines what were
previously separate "Variables" and "Data Sources" panels into a single
view with collapsible accordion sections. Data Sources appears first and
is collapsed by default, showing a badge with the count when collapsed.
Variables is expanded by default. This reduces sidebar icon count while
keeping both features easily accessible.
akshayka
akshayka previously approved these changes Dec 26, 2025
import { useVariables } from "@/core/variables/state";
import { jotaiJsonStorage } from "@/utils/storage/jotai";

const openSectionsAtom = atomWithStorage<string[]>(
Copy link
Contributor

@mscolnick mscolnick Dec 26, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maybe this could be typesafe strings


const { isFetching, error, data, refetch } = useAsyncData(async () => {
if (connection !== WebSocketState.OPEN) {
store.set(connectionStatusAtom, "disconnected");
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

rather than gabbing the store, could we use useSetAtom?

const sidebarRef = React.useRef<ImperativePanelHandle>(null);
const terminalRef = React.useRef<ImperativePanelHandle>(null);
const { aiPanelTab, setAiPanelTab } = useAiPanelTab();
const errorCount = useAtomValue(cellErrorCount);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not sure if its possible to push this down, but errors will create re-renders here (but they are really cheap)

Persist open/closed section state in localStorage so users don't need to
re-open data sources each time. Update tooltip to "Explore variables and
data sources" for command palette discoverability.
@manzt manzt force-pushed the manzt/combine-variables-and-data-sources branch from ebd354a to da5f272 Compare December 29, 2025 17:40
@manzt manzt changed the title Combine "Variables" & "Data Sources" panels into "Sesson" panel Dec 30, 2025
@manzt manzt merged commit f8e5ec9 into main Dec 30, 2025
26 checks passed
@manzt manzt deleted the manzt/combine-variables-and-data-sources branch December 30, 2025 21:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

5 participants