To diagnose a hanging or long-running command in a SolidJS project, Atlas leverages its `bash` tool to execute commands like `pnpm test` or `pnpm build` with a timeout, providing explicit feedback on whether the process is blocked on interactive input or simply slow. This allows SolidJS developers to quickly identify and resolve issues, ensuring their `vitest (@solidjs/testing-library)` tests, `prettier` formatting, or `pnpm` scripts complete efficiently.
How Atlas Diagnoses Hanging SolidJS Commands
Atlas diagnoses hanging SolidJS commands by wrapping their execution with its `bash` tool, which races every command against a default or specified timeout. In 2026, this mechanism provides immediate feedback, distinguishing between a command that is genuinely slow and one that is silently blocked on interactive input, a common issue in CI/CD pipelines or automated scripts.
When you execute a SolidJS-related command, such as `pnpm install` or `pnpm run dev`, through Atlas's `bash` tool, Atlas monitors its execution. If the command exceeds its timeout, Atlas terminates it and provides a detailed `shell_metadata` block in the output. This metadata explicitly states whether the command was killed due to a timeout because it was genuinely slow, or if it was waiting for interactive input. For instance, if `pnpm` attempts to prompt for a configuration choice, Atlas will identify this as a blocked-on-stdin scenario, which is crucial for debugging non-interactive environments.
Identifying Blocked Input in SolidJS Toolchain Commands
Identifying if a SolidJS command is blocked on input is straightforward with Atlas, which explicitly calls out the interactive-input case in its `shell_metadata` output. This is particularly useful for commands like `pnpm install` or `pnpm run build` that might unexpectedly prompt for user confirmation, preventing automated scripts from completing in 2026.
When Atlas's `bash` tool reports that a SolidJS command was killed because it was waiting for interactive input, it means the command attempted to prompt the user for a response. This often happens with package managers like `pnpm` or certain build tools if they encounter unexpected conditions or require confirmation. For example, if `pnpm install` tries to ask about peer dependency resolution, Atlas will flag it. To resolve this, you would re-run the command with non-interactive flags. For `pnpm`, this might involve `pnpm install --no-input` or ensuring your `vite.config.ts` or other build configurations are set up for non-interactive environments, such as CI mode.
Handling Genuinely Slow SolidJS Builds and Tests
For SolidJS builds or `vitest (@solidjs/testing-library)` test runs that are genuinely slow, Atlas's `bash` tool provides clear instructions to retry with a larger timeout value. In 2026, a complex SolidJS application with many components or extensive tests might naturally take several minutes to build or run, requiring an adjusted timeout to prevent premature termination.
If Atlas's `shell_metadata` indicates that a SolidJS command, such as `pnpm build` or `pnpm test`, was terminated because it exceeded the timeout and was not waiting for interactive input, it signifies a genuine performance bottleneck. This could be due to a large codebase, complex `createSignal` graphs, or extensive test suites using `@solidjs/testing-library`. Atlas's output will suggest retrying the command with an increased timeout, specified in milliseconds. For example, if `pnpm build` takes longer than the default, you might re-run it as `atlas bash --timeout 120000 "pnpm build"` to allow for a 2-minute execution window, giving your SolidJS project ample time to compile.
Reviewing and Approving Atlas's Actions for SolidJS
Atlas ensures safety and transparency when diagnosing or resolving SolidJS command issues through its permission-gated tool calls and unified diff review process. Every action, from running `pnpm prettier --write .` to modifying a `vite.config.ts` file, requires explicit approval from the developer in 2026, preventing unintended changes.
Before Atlas executes any command that could alter your SolidJS project, such as applying a fix or re-running a script with new flags, it drafts a plan in a read-only plan agent and asks for your permission. If the plan involves modifying files, like adjusting a `vite.config.ts` to optimize build times or formatting `.tsx` files with `prettier`, Atlas computes a unified diff for every proposed edit. This diff is surfaced for your approval, allowing you to review exactly what changes will be made to your SolidJS codebase before they are written. This granular control ensures that any diagnostic or corrective actions taken by Atlas align with your intentions and maintain the integrity of your SolidJS application.
Step by step
- 01Run your SolidJS command through Atlas's `bash` tool with a default timeout, for example: `atlas bash "pnpm test"` to execute your `vitest (@solidjs/testing-library)` suite.
- 02Examine the `shell_metadata` block in Atlas's output when the command is killed. Atlas will explicitly state if the `pnpm` or `vitest` command was blocked on interactive input or genuinely slow.
- 03If the SolidJS command was blocked on input, re-run it with appropriate non-interactive flags. For `pnpm install`, this might be `atlas bash "pnpm install --no-input"` to prevent prompts.
- 04If the SolidJS command was genuinely slow, retry it with a larger timeout value. For a `pnpm build` that takes 3 minutes, use `atlas bash --timeout 180000 "pnpm build"`.
- 05If you manually aborted the command, Atlas's `shell_metadata` will confirm 'User aborted the command', distinguishing it from a timeout or block.
- 06Review any proposed file changes, such as modifications to `vite.config.ts` or `.tsx` files, through Atlas's unified diff before approving them.
Frequently asked questions
- How do I know if my `pnpm build` is hanging or just slow in SolidJS?
- Run `atlas bash "pnpm build"`. Atlas's `shell_metadata` output will explicitly tell you if the command was killed because it was waiting for interactive input or if it genuinely exceeded the timeout due to being slow. This distinction is key for SolidJS projects.
- What if `vitest (@solidjs/testing-library)` tests are blocked on input?
- If Atlas reports your `vitest` command is blocked on input, it means the test runner or a dependency is prompting for user interaction. Re-run the command with non-interactive flags, if available, or ensure your test setup in `vite.config.ts` is configured for headless execution.
- Can Atlas help with slow `prettier` formatting in SolidJS `.tsx` files?
- Yes, if `pnpm prettier --write .` is taking too long, run it via `atlas bash "pnpm prettier --write ."`. If it times out, Atlas will suggest increasing the timeout. You can then retry with `atlas bash --timeout 60000 "pnpm prettier --write ."` for a 1-minute window.
- How does Atlas prevent accidental changes to my SolidJS codebase?
- Atlas operates with a strong emphasis on safety. Every tool call is permission-gated, and any proposed file modifications, such as to `src/App.tsx` or `vite.config.ts`, are presented as a unified diff for your explicit approval before being written to disk.
- What if I manually stop a SolidJS command run by Atlas?
- If you interrupt a SolidJS command executed via `atlas bash`, the `shell_metadata` block will clearly state 'User aborted the command'. This helps you differentiate your intentional stops from timeouts or input blocks.
- Does Atlas understand SolidJS-specific reactivity like `createSignal`?
- Yes, Atlas indexes code by AST declarations using tree-sitter and can read your `createSignal`, `createMemo`, and `createEffect` graph. This deep understanding helps it diagnose issues specific to SolidJS's reactivity model, even when debugging command execution.
- Can Atlas diagnose issues in `vite.config.ts` for SolidJS builds?
- While Atlas's `bash` tool diagnoses command execution, its ability to read and index your `vite.config.ts` and `vite-plugin-solid` setup means it can understand the context of your build. If a build command hangs, Atlas can then suggest relevant configuration adjustments.
Try Atlas in your terminal
The terminal-native AI coding agent. Free core, single binary.
Install AtlasRelated guides
Diagnose a Hanging or Long-Running Command with Atlas in 2026
How to diagnose a hanging command with Atlas in 2026: the bash tool races every command against a timeout and tells you whether it is slow or blocked on input.
Atlas for SolidJS: A Terminal-Native AI Coding Agent Built on Solid, for Solid, in 2026
Atlas is a terminal-native AI coding agent for SolidJS in 2026. It reads your createSignal and createMemo graph, fixes destructured props that break reactivity, and runs vitest.
Refactor a Legacy SolidJS Module with Atlas in 2026
Streamline your SolidJS codebase in 2026 by refactoring legacy modules with Atlas. Maintain behavior, prevent breaking changes, and leverage your existing pnpm, vitest, and prettier toolchain.
Locate where a behavior is implemented in SolidJS with Atlas in 2026
In 2026, SolidJS developers use Atlas to pinpoint exact file and symbol implementations. Leverage semantic search, grep, and LSP for `createSignal` and component behaviors.
Upgrade a Dependency and Fix Breakage in SolidJS with Atlas in 2026
SolidJS developers in 2026 can use Atlas to efficiently upgrade major dependencies, automatically fixing compile and test failures. Atlas integrates with pnpm, vitest, and prettier to streamline your workflow.
Self-review your working diff before committing in SolidJS with Atlas in 2026
Catch your own mistakes in SolidJS before they reach review or CI. Atlas helps SolidJS developers in 2026 self-review uncommitted diffs, run vitest, prettier, and manage changes.
Add a regression test for a bug fix in SolidJS with Atlas in 2026
Lock in SolidJS bug fixes with Atlas. Add regression tests using `vitest (@solidjs/testing-library)` that fail before and pass after, leveraging `pnpm` and `prettier` for a robust workflow in 2026.
Document a SolidJS Module with a README in 2026 using Atlas
In 2026, Atlas helps SolidJS developers generate accurate READMEs for modules by analyzing live code, ensuring documentation reflects current implementation, not outdated plans. It integrates with your existing SolidJS