Read only mode issues:

- There is a selection overlay for routes that is empty.  It should just be removed.
- When a block is selected in read-only mode, the add pins dots are visible.  They should not be.  A block in read only mode should not be editable in any way.
- In read only mode, the tools on the tool bar (except for the future comment tool and navigation tools such as enter and exit scope) should be disabled.
- Exiting scope at the top (which reparents the current block and inserts a new scope) should also be blocked in read only mode.  
- Any command palette option that requires mutability should be disabled in read only mode.
- The varios "add type" helpers should also be hidden in read only mode.
- Routes can be edited in read-only mode as well.  They should not be.

History 

- The history entries are not sufficiently descriptive.  They should include the name of the entity being manipulated (e.g., `Block <block_1> in scope <top/block_1> was resized`, or `Route from block_1 to untitiled block in scope <top/block_1> was modified`.  This is especially important for the undo/redo stack, where the user may not have any context for what they are undoing or redoing.
- The "restore this rev" button is surprising, and should be hidden behind some kind of popup menu on the history item.  Otherwise, it is too easy to click it and end up assuming we are visiting the rev instead of replacing HEAD.
- the hsitory popup menu should also have "copy" and "save" which allow you to copy a particular Rev to the clipboard, or save it to a file.  This is useful for sharing a particular rev with someone else, or for saving a rev for later use.  Both of these are probably exports of flattened documents, and not log commits.  The export of a rev should show as such in the title block (see below), e.g., if we open a new document, and paste in this rev, we should get the title block showing that this is a rev from another document, and not the current document.
- The history view should have a search/filter box to limit edits based on text searches based on the description, as well as the date and time and the editor person.
-  The "Viewing Rev" popup in the upper left corner feels strange.  Suggest instead a large text label in the background of the drawing area - as one would normally have that says "DRAFT" or "PROOF", but instead says "Viewing Rev <rev_id>".
- To return to current time, when viewing an old rev, replace the tools in the undo/redo selection overlay. Replace the Undo and Redo buttons when viewing an old rev with navigation buttons that advance or reverse by 1 revision.  And make the time travel button (first one) act as a "return to current" button.  This keeps actions/affordances related to time travel in one place on the canvas.  Those actions (undo/redo/time travel) don't make sense when viewing an old rev anyway.
- You should be able to tag a rev with a human readable name, like "Initial Draft" or "Review Round 1".  This should be visible in the history view, and also in the "Viewing Rev" label.
- I'm a little unsure about the "head" terminology - it seems relatively software-centric.  I would suggest using "current" instead of "head" in the UI, and "latest" instead of "head" in the history view.  This is more understandable to non-software people.
- Use a humanized description of the elapsed time since the edit was made, rather than a timestamp.  For example, "3 hours ago" or "2 days ago" instead of "2024-06-05 14:32:00".
- The block path currently beign viewed may not be valid or correct as the rev is changed.  I'm not sure how to handle that.  It seems like it might be helpful to capture the block path active at the time with the log commit.  It is purely advisory (like the comment description of the log), but without it, it's difficult to understand where a change was made.  This may also help with the animation layer later, since we can determine what scope was active when an edit was made instead of trying to infer it.  Alternately, if inference is straightforward (every edit takes place in some scope), then calcualte the scope instead of storing it.

Error messages

- When the document failed to load because of the asset parsing issue, the popup message blocked the toolbar, and made using the UI difficult/impossible.  It should have had a dismiss/acknowledge like an error dialog.

Document structure

- The title block of the document should be present.  It should indicate the author, current revision, and an icon to indicate if the document is read only or not (locked icon?).
- The logical place to put this is next to the block path (bottom of the screen).  


Menu structure.

- Having the file, import/export and preferences and help buttons as part of the main toolbar is now awkward.  There should be a hamburger menu in the upper left that has file, import/export, preferences and help.
- With the file/etc tools moved to the hamburger, there is now space on the toolbar for the navigation overlay functions.  So remove the navigation function overlay, and put the navigation functions onto the primary toolbar.  
- Having cleared the lower right corner of the canvas of the navigation overlay, Move the block path and title block to the lower right corner of the document.  THis is more in keeping with a standard ECAD or MCAD layout.


Startup

- Start with a blank canvas, not an existing demo.json.
- Use the docker convention of naming a new document a temporary name made up of 3 random words, like "happy-sunshine-fox".  This is more user friendly than "untitled document" or "new document".  Automatically create a container for the document in the user's document directory (whatever that may be for the platform).  Allow the user to rename the container and thus the document.
