Skip to content

chore: replace dead wip tarball pins with published versions - #6

Closed
VsevolodX wants to merge 11 commits into
mainfrom
feature/SOF-8040
Closed

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

Conversation

@VsevolodX

@VsevolodX VsevolodX commented Sep 2, 2026

Copy link
Copy Markdown
Member

npm install 404s on a fresh clone of main: five @mat3ra/* devDependencies are pinned to wip tarballs that the cleanup cron has since deleted (ade, mode, prode, standata, utils). Repinned to published versions.

eslint and @exabyte-io/eslint-config were never declared either — only ever resolved transitively — so npm run lint and the lint-staged pre-commit hook could not run on a clean checkout. Added on the same pins job-designer uses.

.gitignore: .eslintcache and the agents/ 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.

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.
VsevolodX and others added 4 commits September 2, 2026 18:49
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>
@VsevolodX VsevolodX changed the title feat(SOF-8040): getJupyterEndpointUrls feat(SOF-8040): build extra unit tabs from the endpoint property Sep 8, 2026
Comment thread src/js/jupyter.ts Outdated
* 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 = {

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.

Maybe we should move this to JoVe? This is UI related

VsevolodX and others added 4 commits September 9, 2026 11:39
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>
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.
@VsevolodX VsevolodX changed the title feat(SOF-8040): build extra unit tabs from the endpoint property chore: replace dead wip tarball pins with published versions Sep 10, 2026
@VsevolodX

Copy link
Copy Markdown
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.

@VsevolodX VsevolodX closed this Sep 10, 2026
@VsevolodX
VsevolodX deleted the feature/SOF-8040 branch September 10, 2026 03:37
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