Invite collaborators straight into a project, and shorter links to everything in the app
Invite a collaborator straight into a project
Bring someone into a project with just their email address — a partner at a supplier, a consultant, a colleague who has never signed in here. They do not need to be in your organization first, and they do not need an account at all.One step does the whole thing: an unregistered address is sent a sign-up invitation, anyone outside your organization is added to it at the least-privileged level, and they land in the project with exactly the role you picked. Someone already in your organization keeps the role they hold, so inviting a fellow Admin into a project can never change their standing elsewhere. Inviting by email grants organization membership, so it sits with organization Admins; Project Admins continue to add existing members to their own projects.The app now lives at the site root
Links to everything in the app are shorter. A project is/projects/<id>,
your account is /account, organization settings is /organization-settings —
the /dashboard segment is gone from every page. It said nothing (everything
you see while signed in sat under it) and it was carried by every link you
paste into a message, every documentation URL, and every link the Python SDK
mints.Everything you have already shared keeps working. Any /dashboard link
redirects to the same page at its new address, query string and anchor intact —
bookmarks, links in notification emails sent months ago, and links produced by
older SDK builds all land where they should.Studio
Studio
Improvements
- The material detail page shows who created it. Creation has been recorded all along; there was no name to display until now. Materials created before the field existed simply omit the row rather than showing a blank.
- Rate-ladder specific capacity is exported. Discharge and charge specific capacity now flow out alongside their absolute counterparts for the rate-capability sections. A cell whose active mass is unknown emits the absolute figures as before.
- Analysis plots open on something worth looking at. A plot used to default to the first two numeric columns, which on a section table meant drawing the row’s own index against a second way of counting the same rows. Axes are now chosen by what the columns mean — a cycling analysis opens on capacity against cycle, a pulse section on internal resistance against cycle. Both dropdowns still offer every numeric column.
- Faster pipeline pages, and bulk actions that no longer move megabytes. Reading a pipeline’s elements, and cancelling or resubmitting them in bulk, were each carrying the full configuration and results of every row they touched, none of which was read. Cancelling a large selection is the most noticeable.
- Formation cycles are grouped by their opening charge. A formation is the one case where a cell arrives empty, so its cycle is led by the charge rather than the discharge. Grouping the other way left out the opening charge — the large, irreversible one that formation exists to measure — which distorted first-cycle coulombic efficiency.
- A constant-voltage hold counts toward its cycle. The taper that finishes a CC-CV charge starts and ends at the ceiling, so it was not joined to the cycle and charge capacity covered only the constant-current leg. On a C/20 taper that is roughly 9% of the charge. The hold, and the rest that follows it, now belong to their cycle.
- Rate ladders keep their fastest rungs. A ladder made of charges was judged by where the cell had relaxed to during the preceding rest rather than where the load began, so faster rungs were the ones dropped. A seven-rung ladder now reports seven, and the capacity retention computed against them follows. Existing analyses do not recompute on their own; new and re-run records carry the corrected numbers.
- A pipeline can build on an earlier fit. An entry naming where its starting parameters come from — a completed pipeline, or a JSON file — now submits. The reference is resolved to real values as you submit, against your own permissions, so an unreachable one is an immediate, explanatory error on the request.
- The right-hand y-axis on a measurement plot can be cleared again. Once a series was chosen there was no way back to an empty right axis — the “None” option disappeared and the last series could not be removed. Every right-axis series now has a remove control, labelled “Clear right axis” when it is the last one.
- Single-point plots render. A trace with exactly one point was drawn as a zero-length line, which is invisible; it now shows as a marker, with the axes framed proportionally around it.
- The account page no longer claims you belong to no organizations while it is still loading them, or if the request fails. That message now appears only when it is actually true.
- The project members panel no longer hangs on “Loading members…” when there is no organization context; it says so instead.
- An experiment with no description falls back to its protocol name rather than the literal text “Description not available”.
- A Project Viewer no longer sees an empty, unlabelled actions column on the parameterized-model lists. The menu items were already hidden; the column itself is now omitted when none of its actions are available.
- Stored degradation-model parameters are cleaned more thoroughly, including ones a model only reveals while it is being built, and the result is verified against a fresh model before it is saved.
Python API
Python API
Improvements
- A value that cannot be sent to the server now fails where you wrote it, naming the field. A live model object, a callback, or a logger placed in a configuration field used to survive locally, arrive as its text representation, and fail server-side far from the cause. Parameter mappings are unaffected — functions and array data in a parameter set are converted as they always were.