Conversation
The wip tarballs for ade, mode, prode, standata and utils were deleted by the cleanup cron, so npm install 404s on any fresh checkout. eslint and its config were never declared at all and only ever resolved transitively, so the pre-commit hook cannot run either. Pins match job-designer's.
Builds the notebook and lab URLs for a unit from the job's jupyter_notebook_endpoint property. Moves the URL construction out of ave (mat3ra/ave#11): the viewer receives finished URLs instead of digging through job properties.
This was referenced Sep 2, 2026
Merged
Review found the move dropped a match key: the resolver this replaced matched job, unit, repetition and property name, so a unit inside a map subworkflow — one run and one token per branch — would have served branch 0's token to every branch. Also from review: derive the property type from esse's PropertyHolderSchema instead of hand-writing it, export the property-name constant so the test stops retyping the literal, return the whole map in one pass instead of re-scanning per unit, and document the /jupyter/<jobId>/<unitId>/ prefix as the three-repo contract it is.
Review on ave#11: the viewer's prop should be generic, not named after an application. The tab is what the consumer actually needs, so build it here — the `jupyter_notebook_endpoint` row is itself what identifies a Jupyter unit, so nothing downstream has to inspect `executable.name` or name an application. getJupyterEndpointUrlsByUnitFlowchartId -> getExtraUnitTabsByFlowchartId, returning ExtraUnitTab[] per unit and repetition. The URL-path contract shared with rupy and the web-app proxy is unchanged and still documented here. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
| * An endpoint a unit publishes while it runs, in the form its consumer needs: a label and where | ||
| * it goes. What it looks like is not decided here. | ||
| */ | ||
| export type ExtraTab = { |
Member
There was a problem hiding this comment.
Maybe we should move this to JoVe? This is UI related
Review on jode#6: "Maybe we should move this to JoVe? This is UI related."
The objection is right about the vocabulary and, I think, wrong about the
location. What this builds is a job-domain fact — which units serve an
endpoint while they run, and at what URL — read out of the job's own
properties. The `/jupyter/<jobId>/<unitId>/` path is a contract shared with
rupy, which serves it, and the web-app proxy, which parses it back by
position; that belongs with the job domain, not in a React component library
that ave, wove and workflow-designer do not depend on. Moving it to jove
would also have to move the whole function, since jove peer-depends on jode
and a type-only move is a cycle.
What was genuinely wrong is that the type borrowed cove's view vocabulary:
ExtraTab { id, itemName, href } -> UnitEndpoint { id, label, url }
getExtraTabsByUnitFlowchartId -> getUnitEndpointsByFlowchartId
jode now says what a unit serves; ave decides that it is shown as a tab.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…code Kept only what is not evident from the code: the /jupyter path contract with rupy and the proxy, and that url is platform-relative. Dropped per-property docblocks and the review rationale. Also gitignores agents/, an agent scratch dir that is not part of the package. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
VsevolodX
force-pushed
the
feature/SOF-8040
branch
from
September 9, 2026 22:33
6d450bb to
0a66423
Compare
It named an application, which nothing else in this package does; its only caller is job-designer, so it lives there now. What remains here is the dependency repin this branch also carried.
Member
Author
|
Not needed — the endpoint builder moved to job-designer, where its only caller is. The dead wip pins on main are a real but separate problem. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
npm install404s on a fresh clone ofmain: five@mat3ra/*devDependencies are pinned to wip tarballs that the cleanup cron has since deleted (ade,mode,prode,standata,utils). Repinned to published versions.eslintand@exabyte-io/eslint-configwere never declared either — only ever resolved transitively — sonpm run lintand thelint-stagedpre-commit hook could not run on a clean checkout. Added on the same pins job-designer uses..gitignore:.eslintcacheand theagents/scratch dir.No functional change. This started as part of SOF-8040 and briefly carried the Jupyter endpoint builder; that moved to job-designer, where its only caller lives, since nothing else in this package names an application.