The Explore tab is a file tree on the left and a code editor in the centre. Every file you can open is a real file in the repository. Every save writes back to the path you opened. The editor is not a store the platform keeps for you. It is a text box attached to your working copy.
#Opening a file
The tree lists six groups: Automations, Targets, Framework, Runtime, Robot and Config. Only three extensions appear,
.ts, .mjs and .json. The directory walk stops one level down so a large folder cannot flood the list. Click a
file and the Studio reads it from disk with GET /api/file, then shows it in the editor. The first automation in
automations/ opens on its own when the Studio loads, so you are never staring at an empty pane.
The server refuses to read or write anything outside those six roots, or with any other extension. That guard runs on every read and every write. It is not something the page can widen.
#The editor and saving
The editor is Monaco, the same component that backs Visual Studio Code. The language comes from the file name: .js
and .mjs are JavaScript, .json is JSON, everything else is TypeScript. The tab above the editor shows the file
name, a dot when there are unsaved changes and a "saving" label while a write is in flight.
Saving is automatic. When you stop typing for roughly a second the Studio sends the whole file to PUT /api/file and
the server writes it to disk with the content you see. There is no Save button because there is no separate state to
save. On the way back the server runs a small locator policy check over automations and returns any warnings, which
appear in a banner above the editor.
That check flags four patterns, each with a line number and a short reason:
- a positional
nth()index, - a raw CSS or XPath selector string passed to
page.locator, - a legacy
xpath=selector, getByTestIdused in automation code instead of the Target Repository.
The warnings are advisory. The file is saved either way.
#The diagram beside the code
When you open an automation the Studio also asks the runtime to derive a workflow model from it. The right panel draws the result: the framework steps, your ordered process steps and the two exception lanes. Any node that has a source line is a button. Click it and the editor scrolls to that line and puts the cursor on it. Because the model is derived from the file you are looking at, there is no diagram file to update and none to forget. After a save the Studio re-derives it, so the picture keeps up with your edit.
#Things that catch people out
- The editor saves on a short delay. If you close the tab in the middle of a burst of typing, the last change may not have been written yet. Wait for the dirty dot to clear.
- Monaco is loaded from a public CDN in this version, so the editor needs a network connection the first time it opens. Serving it from the local build is on the list but is not built yet.
- The lint banner is about locator policy, not syntax. A file with warnings still saves and still runs.
- Only automations get the lint check and the diagram. A target or config file opens, edits and saves like any other text file, but there is no derived diagram for it.