Skip to content

Commit 2a8bc2a

Browse files
committed
Stage project mounts as INPUTS by default in the Launch panel
A declared mount means the project's jobs consume that data — pre-populate every mount into the INPUTS slot (paths pre-filled, workspace auto-set to $SLURM_TMPDIR) so launches stage it to node-local NVMe without a manual drag. Chips remain removable/editable per run.
1 parent 5308104 commit 2a8bc2a

3 files changed

Lines changed: 22 additions & 1 deletion

File tree

CHANGELOG.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,14 @@ All notable changes to this project are documented here. The format is loosely
44
based on [Keep a Changelog](https://keepachangelog.com/), and the project
55
follows semantic-ish versioning while pre-1.0.
66

7+
## [0.15.4]
8+
### Changed
9+
- Project mounts are INPUTS by default in the Launch panel: declaring a mount
10+
means "this project's jobs consume that data", so every launch now stages
11+
it to node-local NVMe ($INPUT_DIR) without a manual drag — remove the chip
12+
(or trim its paths) for a run that doesn't need the data. A declared mount
13+
is never silently invisible to a job again.
14+
715
## [0.15.3]
816
### Fixed
917
- **SSH keys now survive dev-container rebuilds.** A rebuild recreates the

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "hpc-sync",
33
"displayName": "HPC Sync",
44
"description": "Sync, build, run and monitor Slurm/Apptainer HPC workloads from VS Code over a single shared SSH session, with a visual job builder and a live cluster dashboard.",
5-
"version": "0.15.3",
5+
"version": "0.15.4",
66
"publisher": "david-carciente",
77
"private": true,
88
"license": "MIT",

src/launchPanel.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -525,6 +525,19 @@ export class LaunchPanel {
525525
pipe.results.push({ uid: ++uid, storId: 'project', path: proj ? proj.base : '' });
526526
el('quickOut').value = proj ? proj.base : '';
527527
528+
// Project mounts are INPUTS by default — declaring a mount means "this
529+
// project's jobs consume that data", so every launch stages it to
530+
// node-local NVMe without a manual drag. Remove the chip (or trim the
531+
// paths on it) for a run that doesn't need the data.
532+
for (const p of init.palette) {
533+
if (p.bind && p.base) {
534+
pipe.inputs.push({ uid: ++uid, storId: p.id, paths: p.base });
535+
}
536+
}
537+
if (pipe.inputs.length && !pipe.workspace) {
538+
pipe.workspace = { uid: ++uid, storId: 'tmpdir' };
539+
}
540+
528541
renderPalette();
529542
renderPipeline();
530543

0 commit comments

Comments
 (0)