Let’s talk about Observable Suggestions

Top-notch feedback. Thank you, Philippe!

I have just commented on then closed (without merging) a suggestion I received from @severo; I have no idea if he received my comment (in which I explained why I was closing w/o merging). (Fortunately we have a back channel so, no harm done).

Yes, I received two mails: “Fil commented…” and “Fil (@fil) has closed a suggestion…”. But I understand the problem is that you didn’t have that feedback in the interface.

I generally like the idea. (Great work folks!)

It seems to work well for typo fixes, minor suggestions, etc., which is probably the primary goal.

I do wonder a bit though about how future-accessible the comment discussions will be. Seems like it might still be best to handle more major feedback/collaboration out of band (e.g. on this forum or email).

I don’t see how I can reply to a suggestion? Someone has suggested changed to my notebook, but I actually forked someone else’s notebook and I and to communicate this to the suggester. I don’t see how to do this.

The easiest way would be to comment on the suggestion directly, like so (before closing it):

Does that help?

Yes, it does. thanks

Still getting bitten (or almost bitten) by this UI issue: the “resolve” button is just under the mouse and makes an irreversible action of disappearing the thread. I wish we had something more fool-proof (or @fil-proof :tired_face:).


I’d like the option to add a comment directly to a notebook. Right now, in order to only comment on a notebook I have to attach that comment to an arbitrary cell, even if the comment has no relation to the cell’s content.

1 Like

We’re going to revisit the commenting and suggesting workflow, but I don’t have a specific timeline I can share yet.

We agree that it should be easier to comment directly on anyone’s notebook. Not to make excuses, but the reason for the current design is that we wanted to provide a private space for discussion (so that the author could reply privately, and multiple comments be made simultaneously, hence a fork), and the ability for a comment to be turned into a code suggestion without losing the previous discussion. But I suspect we can find a way to support those cases while still having a lightweight way to comment.


I do like the private space for discussion aspect.

One problem though is needing to make an explicit fork; most of the time I don’t want these “polluting” my list of notebooks, just to make a one-line comment. As a result I am tempted to delete the fork after the author has seen my comment, which ends up eliminating the discussion.


I feel like I’m missing something, but is there a way to reply to someone’s suggestion without either merging or closing it? I’ve received a suggestion that will take a little bit of time for me to review, and I want to acknowledge the person’s contribution and explain why I’m not dealing with it right away. I’ve commented on the first changed cell in their fork, but I don’t know if the comment was actually sent, or if it’s just sitting there waiting until I merge or close the suggestion.

Comments in suggestions are sent as soon as you click the Comment button (along with an email notification), assuming you are the recipient (or author) of the suggestion, so no need to merge or close if you just want to send a comment.

Thanks! That was my initial assumption (the Google Docs mental model) but then I second-guessed myself after reading this thread :slight_smile:

Quick question on Observable suggestions: does it implement a proper 3 way merge algorithm like Git? Or does the merging the latest suggestion clobber changes from previously accepted suggestions? The latter seems to be true, but I may be missing something.

Also, to work around the lack of a 3 way merge, I was hoping one could merge upstream changes from the forked notebook into a fork, but I noticed that doing so will clobber the fresh changes in the fork.

So the ultimate question is, does the Suggestion feature allow for two diverging sets of changes to be merged back together, like Git merging does? Or is this kind of workflow fundamentally not supported? Thanks!

Example workflow:

  • Person A creates notebook 1A.
  • Person B forks notebook 1A to create notebook 1B, makes some changes there, and submits a suggestion to notebook 1A.
  • Person C forks notebook 1A to create notebook 1C, makes some changes there, and submits a suggestion to notebook 1A.
  • Person A merges the suggestion from Person B (all good).
  • Person A merges the suggestion from Person C - then notices that doing so undid all the changes merged from person B.
1 Like

I kind of wish they just directly made every notebook a git repo behind the scenes and used pull requests for forking / merging notebooks. Or have they done that already? Not sure what system is backing the notebooks for versioning…

1 Like

When processing the suggestion there is an option for each cell to select either the parent document or the forked document.

I think Person A would merge 1B. Person Cs 1C changes might be able to be merged without conflict depending on the cells that changed.
I don’t know if there is a way for Person C to update their fork of the notebook to the latest A(b) before sending a suggestion to Person A

The example is also like what happens when you get a suggestion for a notebook that you have updated but not republished. The merge becomes difficult as it wants to revert to the previous version.

Totally want to see some videos covering the basics and these common use cases.
(btw got all my suggestion merging skills from watching @enjalot on live streams. ty)

1 Like

I accidentally lost a helpful comment by hitting “Resolve.” I wanted to merge it. I don’t know why I hit that button, maybe because it was first? Fortunately I was able to reproduce the code change from memory.

So, it might be nice to have a way to see resolved comments. (Looks like that was thought about in 2019 but didn’t happen?)

Edit: looks like the best way is to check your email.

Hi @Skybrian - glad you sorted the issue. And yes - the suggestions are available as part of notebook history, and the email link to the suggestion is indeed the way that I find them if ever I wish to revisit.

… but please allow me to ask a question about ‘resolve’ and ‘comments’. Are you referring to a suggestion for code change, or a comment on a cell from another user? resolved comments can be re-opened by looking for the comment icon to the left of the cell.

You can show resolved comments by clicking the comment icon to the left of a cell, or by selecting “Show … comments” from the cell menu.

But if the cell that the comment was attached to has been deleted, the comment will no longer be accessible via the UI (even when viewing an older version that still has that cell). However, there’s a crude workaround:

  1. Open your browser’s dev tools
  2. In the JS console, paste the following and hit return:
  3. In the line below you’ll see the raw comment data which you can expand.

It’s not pretty, but it’s a last resort. You may want to give Add a comments pane · Issue #367 · observablehq/feedback · GitHub a thumbs up, which asks for pane to access orphaned comments.