Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions scripts/generate-command-docs.js
Original file line number Diff line number Diff line change
Expand Up @@ -133,10 +133,10 @@ function generateDetailedCommandDocs(program) {
const commandName = command.name();
const commandAlias = command.aliases()[0] || null;
const sectionTitleBase = commandName.charAt(0).toUpperCase() + commandName.slice(1);
const aliasNote = commandAlias ? ` (alias: \`${commandAlias}\`)` : "";

const lines = [];
lines.push(`### ${sectionTitleBase} Commands${aliasNote}`);
// Use simple header text for predictable anchor slugs (e.g., "devbox-commands")
lines.push(`### ${sectionTitleBase} Commands`);
lines.push("");
lines.push("<AccordionGroup>");

Expand Down Expand Up @@ -417,16 +417,16 @@ export RUNLOOP_API_KEY=your_api_key_here
## Command Groups

<CardGroup cols={2}>
<Card title="Devbox" icon="server" href="#devbox-commands-alias-d">
<Card title="Devbox" icon="server" href="#devbox-commands">
Create, manage, and interact with devboxes
</Card>
<Card title="Snapshot" icon="camera" href="#snapshot-commands-alias-snap">
<Card title="Snapshot" icon="camera" href="#snapshot-commands">
Create and manage devbox snapshots
</Card>
<Card title="Blueprint" icon="diagram-project" href="#blueprint-commands-alias-bp">
<Card title="Blueprint" icon="diagram-project" href="#blueprint-commands">
Manage reusable devbox templates
</Card>
<Card title="Object" icon="box-archive" href="#object-commands-alias-obj">
<Card title="Object" icon="box-archive" href="#object-commands">
Upload and manage file objects
</Card>
</CardGroup>
Expand Down
7 changes: 6 additions & 1 deletion src/hooks/useExitOnCtrlC.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/**
* Hook to handle Ctrl+C (SIGINT) consistently across all screens
* Hook to handle Ctrl+C (SIGINT) and Ctrl+D (EOF) consistently across all screens
* Exits the program with proper cleanup of alternate screen buffer
*/
import { useInput } from "ink";
Expand All @@ -12,5 +12,10 @@ export function useExitOnCtrlC(): void {
exitAlternateScreenBuffer();
processUtils.exit(130); // Standard exit code for SIGINT
}
// Handle Ctrl+D (EOF) same as Ctrl+C
if (key.ctrl && input === "d") {
exitAlternateScreenBuffer();
processUtils.exit(0); // Clean exit for EOF
}
});
}
2 changes: 1 addition & 1 deletion src/screens/SSHSessionScreen.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ export function SSHSessionScreen() {
{figures.play} Connecting to {devboxName}...
</Text>
<Text color={colors.textDim} dimColor>
Press Ctrl+C or type exit to disconnect
Press Ctrl+C, Ctrl+D, or type exit to disconnect
</Text>
</Box>
<InteractiveSpawn
Expand Down
Loading