Skip to content

fix: papercuts for 0.4.1 - #215

Merged
peter-gy merged 31 commits into
mainfrom
pgy/fix-release-papercuts
Oct 20, 2026
Merged

peter-gy merged 31 commits into
mainfrom
pgy/fix-release-papercuts

Conversation

@peter-gy

Copy link
Copy Markdown
Collaborator

Fixes for 0.4.1. Each commit is one fix with its test or doc change.

Code mode on marimo 0.25.2

  • View.show() and preview_url() resolve the session that marimo pair names by its stable ID.
  • Runtime inspection from the kernel compiles the notebook outside the kernel's runtime context, so it settles.
  • The agent skill passes --session to marimo pair execute, and each snippet runs as its own execution.

Lens

  • A selection on a Typst or LaTeX region stays attached when its value recomputes.
  • The Lens guide, skill, HTML starter, and examples group hidden value hosts in a hidden container, so a selection names the host it was made on.

Renders, builds, and the CLI

  • SVG cell outputs appear in rendered PDFs.
  • A live render without the provider's extra reports provider-unavailable with the install action.
  • React and Reveal.js starters accept accept on <marimo-output>.
  • view inspect returns the repair record for a malformed view.toml.
  • starters --target and doctor --target report invalid notebook metadata.
  • status in a pixi workspace suggests pixi run.
  • view create writes [tool.marimo-studio.cells] only when the notebook has aliases.
  • CLI help fits an 80-column terminal, and runtime timeouts must be positive everywhere.

Workspace

  • The New view dialog fits a phone screen.

Docs

  • Getting started covers naming a cell in the editor and stopping the editor before marimo run.
  • The results guide defines every value its examples place.
  • The marimohub, provider, and Lens guides match current behavior, and repeated passages are cut.

Copilot AI balanced review requested due to automatic review settings October 20, 2026 09:00

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@cubic-dev-ai cubic-dev-ai Bot left a comment •

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

All reported issues were addressed across 64 files

Reply with feedback, questions, or to request a fix.

Re-trigger cubic

Comment thread packages/marimo-studio/src/marimo_studio/_compat/code_mode.py
Comment thread packages/presentation/tests/render-host.test.ts Outdated
Comment thread skills/marimo-studio/SKILL.md Outdated
Comment thread packages/presentation/src/static.ts Outdated
Comment thread packages/marimo-studio/src/marimo_studio/_projections/runtime_records.py Outdated
Comment thread docs/how-studio-works.md
Comment thread packages/marimo-studio/src/marimo_studio/_cli/commands/view_publication.py Outdated
Comment thread packages/marimo-studio/tests/cli/test_workspace_commands.py
Comment thread docs/guide/marimohub.md
Comment thread packages/marimo-studio/src/marimo_studio/_cli/output.py Outdated
Click cut every command summary at 45 characters and rewrapped the
marimo edit command across two lines, so the copied command broke.
Creating a view added an empty [tool.marimo-studio.cells] table to the
notebook header even when every displayed cell already had a name.
Lens selects the parent of a hidden mo-value host and ranks it above
every host inside it. The Lens guide, the skill, the HTML starter, and
three example views placed hidden hosts directly in #app-shell, so any
selection on those pages resolved to the whole page. Group hosts that
only feed page code in a hidden container instead.
Each render replaced its region boxes with fresh elements, so a
selection on a Typst or LaTeX region reported its target unavailable as
soon as the notebook recomputed a value it reads. Regions now carry an
ID derived from the file part, reads, producers, label, and source line
they show, and Lens finds the recomputed region by that ID.
A server started without marimo-studio[typst] still serves a report an
earlier CLI build published. Its first render then failed with "Fix
main.typ", although the source was valid. A failed render now checks
the provider's availability and reports provider-unavailable with the
install action, as builds already do.
A selection of authored text names the view page unless the region sets
data-marimo-lens-render-source, and a stable id reconnects feedback only
while the page updates in place. A page with its own scripts reloads
when its markup changes.
The provider guide said Deno denies network access and files outside
the build. Rollup's native binding and esbuild, which the example
grants, run with the Studio process's authority.
The example provider titled each page with the view name instead of
the title the user entered, and the guide said create() runs once per
view. Studio calls it again after adding configuration or aliases to
the notebook.
The CLI resolved provider requirements from every view manifest before
inspecting, so a malformed view.toml failed with a configuration error
instead of the view-manifest-invalid repair record the Python API
returns.
Human inspect output showed view.toml:None:None for a diagnostic that
names a file but no line.
The CLI rejected --runtime-timeout 0 while the Python API accepted a
zero deadline that no runtime inspection can meet, and limits.md said
0 through 300 seconds. Both now accept greater than 0 up to 300.
The provider API repeated the render region contract that its own
section defines, compatibility explained the filesystem calls behind
atomic publication, and limits quoted one machine's load time.
The React and Reveal.js starters declared <marimo-output> with only a
value, so the documented accept attribute failed the starter's type
check and the view did not build.
marimo keeps an object's _repr_svg_ output as the SVG markup, but the
render decoder only accepted base64 data URLs, so a Typst or LaTeX view
showed the cell's default instead of the figure. Renders that accept a
text media type now take the text itself.
With --target, both commands read the notebook's pixi tools but treated
metadata that failed to parse as absent, so they reported a missing
tool such as tectonic. They now fail with the parse error, as view
create does.
status always suggested uvx marimo-studio view create, which Studio
then refused because the notebook belongs to a pixi workspace.
The form's implicit grid column grew to the footer's widest content, so
with a long notebook name the dialog laid out at 429 px inside a 372 px
frame and clipped the Close and Create view buttons.
An exported page whose runtime failed to start told the reader to
rebuild the export, even when every file existed and the server had
reset the module requests. The hint now asks for a reload, then names
the server and the export as the next checks.
The output and value examples placed selected_roster and summary.rooms,
which no notebook on the reader's path defines, and summary collided
with the getting-started cell. Each example now shows the cell it reads.
The guide skipped how to name a cell in the editor, offered the terminal
create command after the view already existed, ran marimo run while the
editor still held the terminal, showed runtime settings without the file
they live in, and routed newcomers through two concept pages first.
The hub keeps __marimo__ build state within its capture budget, keeps a
folder import's whole workspace in source mode, and runs the marimo of
its sandbox image. View.preview_url() also requires a runtime.
The guide said to rename the view from the Studio session, but the
browser workspace has no rename action. Code mode renames it, and the
view menu removes it.
pixi installs the notebook's environment successfully. The build fails
when marimo installs its own version into it, and only marimo 0.25.1
and earlier depend on loro.
How Studio works repeated the runtime table that What is Studio and Run
or export a view already give, and What is Studio restated the notebook
and view split right after its table.
marimo 0.25.2's pair execute names the session by its stable ID instead
of Marimo-Session-Id, so View.show() and preview_url() failed with "The
Marimo session identifier is unavailable" and a folder server could not
find the notebook. Studio now maps the stable ID to the runtime session.
Inside the kernel, marimo prefixes the cell IDs of every app it
compiles, so the snapshot asked the runtime worker for cells it never
reported and inspection timed out. The snapshot now compiles outside
the kernel's runtime context.
marimo 0.25.2 replaced marimo pair execute --file with --session, which
takes a session's session_id from marimo pair notebook list, so every
execution the skill showed exited with a usage error.
The Typst instructions offered @app.cell(name=...), which marimo does
not save as the cell's name, so the cell stayed unnamed and
marimo_cell() could not find it.
The skill runs every Python example as one marimo pair execution, which
starts a fresh scratchpad, but several examples used the workspace or
view from an earlier one and raised NameError.
The core repeated the provider tool requirements that gotchas covers
and carried the marimohub sandbox and view rename procedures before the
first build. Those now live in the setup and authoring references, with
a pointer from the core.
Every new HTML view's AGENTS.md listed six import URLs after the
versioned import example it already shows.
@peter-gy
peter-gy force-pushed the pgy/fix-release-papercuts branch from 05fcc65 to bdb587c Compare October 20, 2026 09:10
@peter-gy peter-gy changed the title fix: code mode on marimo 0.25.2, Lens targets, render and CLI diagnostics, and docs accuracy fix: papercuts for 0.4.1 Oct 20, 2026
@peter-gy
peter-gy enabled auto-merge (squash) October 20, 2026 09:13
@peter-gy
peter-gy merged commit bf56cf8 into main Oct 20, 2026
65 of 67 checks passed
@peter-gy
peter-gy deleted the pgy/fix-release-papercuts branch October 20, 2026 09:28
@github-actions

Copy link
Copy Markdown

marimo-studio 0.4.1.dev6 from this pull request is available as a preview build:

uv tool install "marimo-studio @ https://github.com/marimo-team/marimo-studio/releases/download/preview/marimo_studio-0.4.1.dev6-py3-none-any.whl"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants