Repository navigation
[3/3] feat(gallery): bidsvue-ingest, BIDSvue's import without the window - #14
Merged
Merged
Conversation
… the window A script tool over the app-cli adapter: app_cli.mjs runs `bun run scripts/neuroflow-ingest.ts --neuroflow-session <dir>` in the BIDSvue checkout, which runs the same import pipeline as the window and writes the BIDS dataset, handoff and provenance. Its settings (importer, subject, session, anonymize, shift_dates, save_derivatives) come from the step inputs, so it runs non-interactively, including over MCP. The BIDSvue NeuroFlow support lands on niivue/BIDSvue main, so the bidsvue and bidsvue-ingest tools and the docs now name `main` instead of the old `neuroflow-aware` branch. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ndow-ingest BIDSvue's NeuroFlow work is now one PR (niivue/BIDSvue#18), the headless ingest that bidsvue-ingest runs; it is headed for main. The window's NeuroFlow mode, which the bidsvue tool and the crlab-ingest demo need, stays on the neuroflow/window-ingest branch for now. That branch carries both. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…he checkout as the runtime does
The Environment panel could mark bidsvue-ingest ready while BIDSvue had no
usable dcm2niix. neuroflow/app-cli now takes an optional probe that the app
defines (BIDSvue: neuroflow-ingest --check, which prints { ready, problems[] }),
run in the checkout by both app_cli.mjs and check_tool.mjs through a shared
resolveAppCli. runProbe is shared with cli_tool.mjs.
The JS checkout lookup now matches registry.rs default_checkout: a bad
override falls through to the sibling, and the walk starts at the registry
root. A sibling only counts when it holds the entry file, so BIDSvue's
$TMPDIR/bidsui cache is skipped, and the message names such directories.
bidsvue-ingest declares branch neuroflow/window-ingest (main once
BIDSvue#18 merges), its probe, and a description that matches its args.
app_cli.mjs also checks that inputs exist.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The online-license session check reads the process list; in a sandbox that forbids ps it cannot see sessions, and these three tests failed on main too. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…t response Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
BIDSvue#18's review made `neuroflow-ingest` run `svelte-kit sync` before the script, so `$lib` resolves in a fresh clone. bidsvue-ingest's job and probe now call `bun run neuroflow-ingest` instead of the script file, so they get that step. The probe now also fails (exit 127, needsSetup with the `bun install` advice) when the checkout has no node_modules. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Oct 16, 2026
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.
Stack
What
gallery/tools/bidsvue-ingest.tool.json: BIDSvue's DICOM to BIDS import as a non-interactive step over the app-cli adapter (#13). It runsbun run neuroflow-ingest --neuroflow-session <dir>in the BIDSvue checkout, the same import the BIDSvue app runs. That is BIDSvue's package script, which runssvelte-kit syncfirst, so the checkout needsbun install; the probe reports needsSetup when it hasn't been run.dicom_dir,importer(defaultdcm2niix-reproin),subject,session,anonymize,shift_dates,save_derivatives.bids_dir.maxWaitMs15 min.BIDSvue branches, replacing the old
neuroflow-aware:bidsvue-ingestnamesneuroflow/window-ingestfor now, since that branch has the CLI. Switch it tomainonce feat(neuroflow): headless DICOM ingest CLI niivue/BIDSvue#18 merges.bidsvue(the interactive window tool) namesneuroflow/window-ingest. The window's NeuroFlow mode isn't going tomainfor now, and that branch carries both the window mode and the CLI. Thecrlab-ingestdemo, which uses the window, names it too.NeuroVue's branch is unchanged.
Readiness probe and checkout lookup (audit fixes)
neuroflow/app-clitakes an optionalprobe, a readiness check the app defines.bidsvue-ingestruns BIDSvue'sneuroflow-ingest --check(added in Neurodesk wiring: name-aware auto-binding and a WASM validator with tools #18), which checks dcm2niix. The probe runs in the checkout.check_tool(the Environment panel) andapp_cli.mjs(before a run) both use one helper,resolveAppCli. When the check fails, they show the app's ownproblemsand the tool's advice. Before this, the panel could show the tool as ready even with no usable dcm2niix.default_checkout.app_cli.mjschecks that its inputs exist.ps -Aisn't available. They failed onmaintoo.audit_response.mdhas the full audit response, the deferred items and the merge order.Merge order
Merge after niivue/BIDSvue#18, which adds
scripts/neuroflow-ingest.ts. Until then the tool needs a BIDSvue checkout ofneuroflow/window-ingest. On any other branch,check_toolreports "has no scripts/neuroflow-ingest.ts; check out neuroflow/window-ingest there".Test
npm run validate:gallery(19 documents conform).npm run test:gallery: 68 pass, 0 fail, 1 skipped. New tests cover the sibling lookup, the override fallthrough, a missing runner and the probe.npm run test:uiandcargo test -p neuroflow-mcppass too.check_tool --tools-dir gallery/tools:bidsvue-ingestisready(adapterapp-cli, dcm2niix v1.0.20260724 from the probe) against a BIDSvue checkout ofneuroflow/window-ingest. WithDCM2NIIX=/nonexistentit reportsneedsSetupwith BIDSvue's message.neuroflow_run: about 55 s, a valid BIDS dataset, and a handoff plus provenance line.🤖 Generated with Claude Code