# Issues arising from the migration to Observable 2.0

**URL:** <https://talk.observablehq.com/t/issues-arising-from-the-migration-to-observable-2-0/10835>\
**Category:** Feedback\
**Created:** [September 9, 2026, 6:59pm UTC](https://talk.observablehq.com/t/issues-arising-from-the-migration-to-observable-2-0/10835 "2026-09-09T18:59:59Z")\
**Posts on this page:** 1\
**Showing post:** 2

<div class="post-metadata">

**Author:** ![mbostock](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.observablehq.com/mbostock/32/9_2.png) [@mbostock](https://talk.observablehq.com/u/mbostock)\
**Post date:** [September 10, 2026, 4:48am UTC](https://talk.observablehq.com/t/issues-arising-from-the-migration-to-observable-2-0/10835/2 "2026-09-10T04:48:26Z")

</div>

> [@galopin](#):
>
> Would you consider reintroducing the ability to name these cell types?

Yes… the main reason we don’t do this currently is I didn’t want the cell toolbar appearing on Markdown, HTML, and other non-JavaScript cell modes. There is a cell toolbar for SQL cells (and data loaders in Desktop, which will come to the web eventually), and this cell toolbar allows you to declare an output which is equivalent to the cell name in Notebooks 1.0.

> [@galopin](#):
>
> It seems like `<style>`:only-child HTML cells used to be pinned by default, which felt a bit unnecessary since most people aren‘t CSS experts. Now, the behavior has shifted and the cells don‘t render at all, meaning you can‘t even click into them to edit.

Not sure when you wrote your feedback, but we changed this yesterday in response to similar feedback. These cells should now show `<empty>`. Are you seeing something different?

As for imports displaying `<empty>`, we’re planning on adding an automatic inspector for imports, and for all other top-level variables too. We just haven’t had a chance to implement it yet. We’re going as fast as we can! I also want to link to the imported notebook, but I haven’t figured out exactly how that should work yet (because I think imports should let you inspect the imported values, not just be redundant with the corresponding source code). Probably the module specifier should be a clickable link in the cell editor.

> [@galopin](#):
>
> `md` doesn’t seem to work the same depending on which version of Standard Library is picked (2026 or 2018).

Haha yes, that’s exactly the idea! Notebooks 1.0 (2018 standard library) uses an ancient version of Marked. Notebooks 2.0 (2026 standard library) uses the latest version of markdown-it and is CommonMark compliant. The purpose of the standard library is to let you choose which behavior you want, and to avoid breaking existing notebooks… or to reduce the number of ways they break, I should say.

> [@galopin](#):
>
> 1. On my Android handheld device where the screen estate in portrait/landscape mode is limited, I don’t see any of the controls on the far right

Yes, we’re working on improving the mobile/narrow window layout; see [this thread](https://talk.observablehq.com/t/how-long-will-the-old-observable-be-maintained/10827/4) for related feedback. I’m not sure why the notebook would load zoomed-in, sorry.

> [@galopin](#):
>
> You cannot toggle between edit and read-only mode.

I did this because I thought you’d want to decide whether to discard your tinkered edits or automatically save them, and I wasn’t sure which to do. I suppose your tinkered edits should be saved automatically? Or perhaps you want two different buttons to either save or discard?

> [@galopin](#):
>
> Likewise, the floating palette in the bottom-left corner does not display the name of the selected cell. How can you rename all instances of a specific cell in an Observable 2.0 notebook?

Cells don’t have names in Notebooks 2.0, though some cell modes (the non-JavaScript ones) can have an output as discussed above. I do want to implement something like F2 in Zed where you can rename the variable at the current caret, and it should work with both local variables and cross-cell top-level variables.

> [@galopin](#):
>
> (There is even a 404 error when you try to access the license from [old.observablehq.com](http://old.observablehq.com).)

Oops, that’s a CORS error related to the new origin. We can fix that; thank you for the report. We’d also like to have this feature on New Observable but there’s a long list of other stuff that we’ll likely need to do first. You’ll have to manually declare your desired license in the notebook body for now.

> [@galopin](#):
>
> I noticed that you reveal the number of forks a notebook has, even if those forks are _unlisted_ or _private_ (only you).

We did this because many (most!) forks are private, and yet the existence and magnitude of those forks at an aggregate level is a useful quality signal for the notebook.

> [@galopin](#):
>
> Finally, could you clarify the current process for locking comments on a 2.0 notebook? I can’t find the ‘comments locked’ mention anymore in the notebook header.

We haven’t implemented comment locking yet, but it’s on the (long) list. If someone is behaving badly, please let us know so we can enforce etiquette.

Thanks for all the excellent, detailed, thoughtful feedback!

---

_[View the full topic](https://talk.observablehq.com/t/issues-arising-from-the-migration-to-observable-2-0/10835)._
