Skip to content

refactor(SOF-8040): take the Jupyter URLs as props - #11

Open
VsevolodX wants to merge 4 commits into
mainfrom
feature/SOF-8040
Open

refactor(SOF-8040): take the Jupyter URLs as props#11
VsevolodX wants to merge 4 commits into
mainfrom
feature/SOF-8040

Conversation

@VsevolodX

@VsevolodX VsevolodX commented Aug 29, 2026

Copy link
Copy Markdown
Member

Fixes the dead Notebook/Lab tabs for SOF-8040, reworked per review: the viewer no longer handles jobId or digs through job properties — it receives finished URLs.

change why
ExecutionUnitViewerjupyterNotebookUrl? / jupyterLabUrl? props The tabs use them verbatim (still gated on the unit being active). Computed upstream: jode builds them from the job's jupyter_notebook_endpoint property (mat3ra/jode#6), job-designer maps them per unit (mat3ra/job-designer#23), workflow-designer/wove thread them down (mat3ra/workflow-designer#18, mat3ra/wove#17).
utils/jupyterExecutionUnit.ts — resolver/finder/URL builders deleted Job logic, moved to @mat3ra/jode. isJupyterExecutionUnit stays: executable.name === "jupyter" is unit logic. No importers outside ave existed.
viewer's JobPropertyForMonitors becomes a local type It aliased the deleted type; only getMonitorsFromProperties (Charts) still needs the row shape. Charts' own jobId bug is a separate ticket.
tests/jupyterUtils.tests.ts URL tests moved to jode with the code; the isJupyterExecutionUnit cases remain.
package.json repin commit Unchanged from before: the wip devDependency tarballs were deleted by the cleanup cron; CI cannot npm install without the repin.

Net: +33 / −301.

…lease]

@mat3ra/ide, @mat3ra/made and @mat3ra/mode were pinned to wip release tarballs
that cleanup-wip-releases.yml has since deleted, so `npm install` 404s and CI
cannot reach the test step on any branch, main included. None of the three is
imported by ave's source. Repinned to the latest published versions.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Comment thread src/utils/jupyterExecutionUnit.ts Outdated
return jobProperties.find((p) => {
return (
p.source.info.jobId === ctx.jobId &&
(!ctx.jobId || p.source.info.jobId === ctx.jobId) &&

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we remove handling jobId here and just pass the notebookURL directly? The job logic should be in jode, jove, job-designer - one of those

The viewer no longer digs the jupyter_notebook_endpoint property out of
jobProperties: the notebook and lab URLs arrive as jupyterNotebookUrl /
jupyterLabUrl, built upstream by @mat3ra/jode's getJupyterEndpointUrls and
threaded through job-designer -> workflow-designer -> wove.

isJupyterExecutionUnit stays: which unit is a Jupyter unit is unit logic.
The resolver, finder and URL builders move to jode; their tests move with
them.
Review: two flat string props let one arrive without the other — a state the
resolver this replaced made impossible; the property row type was a third
hand-written copy of a shape esse already owns; and nothing said why the Jupyter
path takes props while Charts still digs job properties.
onOutputUpdateRequest,
jobProperties,
jobId,
jupyterUrls,

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should be convergenceTabs or some other generic param, not specific to any application

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants