Skip to content

add ink#95

Merged
Kitenite merged 4 commits intomainfrom
ink
Nov 18, 2025
Merged

add ink#95
Kitenite merged 4 commits intomainfrom
ink

Conversation

@Kitenite
Copy link
Copy Markdown
Collaborator

@Kitenite Kitenite commented Nov 17, 2025

Summary by CodeRabbit

  • New Features

    • Added an interactive CLI with a live runtime counter, text input, and a --name option for personalized greetings
  • Tests

    • Added automated tests validating CLI behavior and output
  • Documentation

    • Added a README with install and usage instructions
  • Chores

    • Project setup: package manifest, build/dev scripts, formatting and editor configs, gitignore, gitattributes, and a development watch utility

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Nov 17, 2025

Caution

Review failed

The pull request is closed.

Walkthrough

Adds a new CLI application under apps/cli/ including configuration, package manifest, TypeScript source (CLI entry + Ink React app), tests, a watcher utility, and documentation.

Changes

Cohort / File(s) Summary
Config & ignores
apps/cli/.editorconfig, apps/cli/.gitattributes, apps/cli/.gitignore, apps/cli/.prettierignore
New editor/git/prettier rules: root editorconfig, LF normalization, ignore node_modules and dist, exclude dist from Prettier.
Package manifest
apps/cli/package.json
New ESM package.json for CLI: bin -> dist/cli.js, scripts (build/dev/start/test/lint/etc.), runtime deps (ink, meow, react), many devDeps, XO/Ava/Prettier configs.
TypeScript config
apps/cli/tsconfig.json
New tsconfig extending @sindresorhus/tsconfig, outDir dist, includes source files.
Source: CLI & App
apps/cli/source/cli.tsx, apps/cli/source/app.tsx
New CLI entry (cli.tsx) parses --name (meow) and renders Ink App; app.tsx is an Ink React component with counter (1s), input handling (ESC/Ctrl+C exit, Enter clears, Backspace deletes), and bordered UI.
Dev utility: watcher
apps/cli/watch.ts
New watcher that spawns node dist/cli.js, restarts on dist/**/* changes via chokidar, handles SIGINT and logs status.
Tests
apps/cli/test.js
New AVA tests using ink-testing-library asserting default greeting "Stranger" and custom name "Jane".
Docs
apps/cli/readme.md
New README with install, usage, --name option and example output.

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant CLI as cli.tsx
    participant Meow
    participant Ink
    participant App as app.tsx
    participant TTY as Terminal

    User->>CLI: run `cli --name Jane`
    CLI->>Meow: parse args
    Meow-->>CLI: flags.name = "Jane"
    CLI->>Ink: render(<App name="Jane" />)
    Ink->>App: mount with props
    App->>App: init state (counter=0, input='')
    App->>App: start 1s timer -> increment counter
    App->>TTY: render boxed greeting + counter + input
    User->>App: type keys / press Enter / ESC
    App->>App: update input or handle special keys (Enter clears, ESC/Ctrl+C exit)
    App->>Ink: exit (on exit keys)
    Ink->>CLI: process ends
Loading

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

  • Areas to check:
    • Input/key handling and cleanup in apps/cli/source/app.tsx
    • Child-process lifecycle and signal handling in apps/cli/watch.ts
    • package.json scripts, bin path, and devDependency compatibility

Possibly related PRs

  • add ink #95 — Appears to add the same apps/cli package (CLI, Ink app, watch utility, tests, and config), likely directly related.

Poem

🐰 A tiny CLI hops into view,
Ink boxes glowing, counters anew,
Keys tap and whisper, timers hum on,
Watchers restart till the daylight is gone,
Hop, little CLI — your journey's begun! ✨

Pre-merge checks and finishing touches

❌ Failed checks (2 warnings, 1 inconclusive)
Check name Status Explanation Resolution
Description check ⚠️ Warning No pull request description was provided; all required template sections are missing. Add a comprehensive description following the template, including purpose, related issues, type of change, testing details, and any additional context.
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
Title check ❓ Inconclusive The title 'add ink' is vague and generic, referring only to a dependency name without describing the actual feature or component being added. Use a more descriptive title that explains what was added, such as 'Add interactive CLI application with Ink React framework' or similar.

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 3020ec5 and 83bc5ea.

📒 Files selected for processing (3)
  • apps/cli/package.json (1 hunks)
  • apps/cli/source/cli.tsx (1 hunks)
  • apps/cli/test.js (1 hunks)

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 5

🧹 Nitpick comments (2)
apps/cli/readme.md (1)

13-25: Consider specifying a language for the fenced code block.

The code block starting at line 13 lacks a language identifier. Adding one (e.g., console or text) improves syntax highlighting and addresses the markdownlint warning.

Apply this diff:

-```
+```console
 $ cli --help
apps/cli/package.json (1)

53-57: Verify Babel presets support Node 16+ target.

The Babel configuration specifies only @babel/preset-react but omits @babel/preset-env, which is typically needed to transpile modern JavaScript syntax (e.g., optional chaining, nullish coalescing) to Node 16-compatible code. Since the package targets Node >=16, confirm whether modern syntax in the CLI source code requires additional transpilation.

If transpilation of modern syntax is needed for Node 16 compatibility, consider adding @babel/preset-env with an appropriate Node target:

 "babel": {
   "presets": [
+    ["@babel/preset-env", { "targets": { "node": "16" } }],
     "@babel/preset-react"
   ]
 }

Also add the dependency to devDependencies:

 "devDependencies": {
+  "@babel/preset-env": "^7.21.0",
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between f59d7e8 and fd3cce5.

⛔ Files ignored due to path filters (1)
  • bun.lock is excluded by !**/*.lock
📒 Files selected for processing (9)
  • apps/cli/.editorconfig (1 hunks)
  • apps/cli/.gitattributes (1 hunks)
  • apps/cli/.gitignore (1 hunks)
  • apps/cli/.prettierignore (1 hunks)
  • apps/cli/package.json (1 hunks)
  • apps/cli/readme.md (1 hunks)
  • apps/cli/source/app.js (1 hunks)
  • apps/cli/source/cli.js (1 hunks)
  • apps/cli/test.js (1 hunks)
🧰 Additional context used
🧬 Code graph analysis (2)
apps/cli/test.js (1)
apps/cli/source/app.js (1)
  • App (4-10)
apps/cli/source/cli.js (2)
apps/cli/test.js (2)
  • render (8-8)
  • render (14-14)
apps/cli/source/app.js (1)
  • App (4-10)
🪛 GitHub Actions: CI
apps/cli/.prettierignore

[error] 1-1: Command failed with exit code 1: prettier --check . && xo && ava

apps/cli/.editorconfig

[error] 1-1: Command failed with exit code 1: prettier --check . && xo && ava

apps/cli/source/app.js

[error] 1-1: lint/correctness/noUnusedImports: Unused import 'React'.


[warning] 1-1: Formatter would reformat imports (organize imports).

apps/cli/package.json

[warning] 56-58: Formatter would have printed different content for this file. Run the formatter to apply changes.


[warning] CI: Formatting/lint checks detected issues across the repository. Many fixes are auto-fixable.

apps/cli/.gitattributes

[error] 1-1: Command failed with exit code 1: prettier --check . && xo && ava

apps/cli/.gitignore

[error] 1-1: Command failed with exit code 1: prettier --check . && xo && ava

apps/cli/test.js

[error] 1-1: lint/correctness/noUnusedImports: Unused import 'React'.


[warning] 1-6: Formatter would reformat imports and code style in this test file.

apps/cli/readme.md

[error] 1-1: Command failed with exit code 1: prettier --check . && xo && ava

apps/cli/source/cli.js

[error] 2-2: lint/correctness/noUnusedImports: Unused import 'React'.


[warning] 1-7: Formatter would reformat the file content (organize imports and quotes).

🪛 markdownlint-cli2 (0.18.1)
apps/cli/readme.md

8-8: Dollar signs used before commands without showing output

(MD014, commands-show-output)


13-13: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🔇 Additional comments (2)
apps/cli/test.js (1)

7-17: Test coverage looks good.

The tests properly verify both the default name scenario and custom name scenario, aligning well with the App component's behavior.

apps/cli/source/cli.js (1)

7-24: CLI implementation looks solid.

The meow configuration properly defines usage, options, and examples, and the App is rendered with the parsed name flag. The help text aligns with the readme documentation.

Comment thread apps/cli/package.json
Comment on lines +18 to +22
"dependencies": {
"ink": "^4.1.0",
"meow": "^11.0.0",
"react": "^19.1.1"
},
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

Verify React 19.1.1 compatibility with Ink 4.1.0.

React 19 is a very recent release. Ensure that Ink 4.1.0 has been tested and verified to work with React 19, as terminal UI rendering can be sensitive to React internals.

You may search the web for documentation or recent issues to confirm compatibility:


🌐 Web query:

Is Ink 4.1.0 compatible with React 19?

💡 Result:

No — Ink 4.1.0 is not compatible with React 19. (React 19 support was added later; Ink v6+ requires/supports React 19.) [1][2]

Sources:

  • Issue reporting React 19 incompatibility in Ink. [1]
  • Ink v6 release notes: “React 19 support” / “Require React 19”. [2]

Ink 4.1.0 is incompatible with React 19.1.1 — update to Ink v6+ or downgrade React.

Ink 4.1.0 does not support React 19; React 19 support was added in Ink v6+. The current dependency configuration will fail at runtime. Either upgrade Ink to v6+ (which requires React 19) or downgrade React to a version compatible with Ink 4.1.0.

File: apps/cli/package.json (lines 18–22)

Comment thread apps/cli/package.json Outdated
Comment thread apps/cli/source/app.js Outdated
Comment thread apps/cli/source/cli.tsx Outdated
@@ -0,0 +1,24 @@
#!/usr/bin/env node
import React from 'react';
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

Remove unused React import causing pipeline failure.

The React import is not used in this CLI entry point and is causing the CI pipeline to fail.

Apply this diff:

 #!/usr/bin/env node
-import React from 'react';
 import {render} from 'ink';
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
import React from 'react';
#!/usr/bin/env node
import {render} from 'ink';
🧰 Tools
🪛 GitHub Actions: CI

[error] 2-2: lint/correctness/noUnusedImports: Unused import 'React'.

🤖 Prompt for AI Agents
In apps/cli/source/cli.js around line 2, remove the unused "import React from
'react';" statement that is causing the CI pipeline to fail; update the file by
deleting that import so only necessary imports remain and ensure the module
still exports/executes as before.

Comment thread apps/cli/test.js Outdated
@@ -0,0 +1,17 @@
import React from 'react';
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

Remove unused React import causing pipeline failure.

The React import is not used in this test file and is causing the CI pipeline to fail.

Apply this diff:

-import React from 'react';
 import chalk from 'chalk';
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
import React from 'react';
import chalk from 'chalk';
🧰 Tools
🪛 GitHub Actions: CI

[error] 1-1: lint/correctness/noUnusedImports: Unused import 'React'.


[warning] 1-6: Formatter would reformat imports and code style in this test file.

🤖 Prompt for AI Agents
In apps/cli/test.js around line 1, remove the unused React import statement;
delete the line "import React from 'react';" so the file no longer imports React
unnecessarily and the CI pipeline failure due to unused import is resolved.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (4)
apps/cli/watch.js (3)

7-23: Consider graceful shutdown with timeout for child process termination.

The current implementation calls child.kill() without specifying a signal, which defaults to SIGTERM but provides no fallback if the process doesn't exit promptly. Consider implementing a graceful shutdown pattern with a timeout:

 function startApp() {
 	if (child) {
-		child.kill();
+		child.kill('SIGTERM');
+		setTimeout(() => {
+			if (child && !child.killed) {
+				child.kill('SIGKILL');
+			}
+		}, 5000);
 	}

 	console.log("\x1b[36m[watch] Starting app...\x1b[0m");

This prevents the watcher from hanging if the child process doesn't respond to SIGTERM.


25-38: Add error handler for the file watcher.

The watcher lacks error handling for potential file system issues. Add an error handler to prevent silent failures:

 watcher.on("change", (path) => {
 	console.log(`\x1b[36m[watch] File changed: ${path}\x1b[0m`);
 	startApp();
 });
+
+watcher.on("error", (error) => {
+	console.error(`\x1b[31m[watch] Watcher error: ${error.message}\x1b[0m`);
+});

40-45: Use consistent graceful shutdown in SIGINT handler.

Apply the same graceful shutdown pattern here as suggested for startApp():

 process.on("SIGINT", () => {
 	if (child) {
-		child.kill();
+		child.kill('SIGTERM');
+		setTimeout(() => {
+			if (child && !child.killed) {
+				child.kill('SIGKILL');
+			}
+			process.exit(0);
+		}, 5000);
+	} else {
+		process.exit(0);
 	}
-	process.exit(0);
 });
apps/cli/package.json (1)

25-40: Consider updating several outdated development dependencies.

Several devDependencies are using older versions that have newer major releases available:

  • prettier 2.8.7 → 3.x is current
  • @babel/cli and @babel/preset-react are on 7.x but specific versions from 2021-2022

While not blocking, updating these would provide better tooling support and bug fixes.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between fd3cce5 and db377d6.

📒 Files selected for processing (3)
  • apps/cli/package.json (1 hunks)
  • apps/cli/source/app.js (1 hunks)
  • apps/cli/watch.js (1 hunks)
🔇 Additional comments (2)
apps/cli/source/app.js (1)

4-59: Component implementation looks solid.

The component logic is well-structured:

  • Proper cleanup in useEffect prevents memory leaks
  • Input handling correctly filters control characters and handles special keys
  • The Ctrl+C detection (key.ctrl && input === "c") works correctly with Ink's useInput API
apps/cli/package.json (1)

35-35: The original review comment is incorrect.

The latest stable version is eslint-plugin-react-hooks v5.2.0, which works with React 19 for ordinary hooks. React Compiler-specific lint rules are provided only in the v6 series (still in RC), not required for React 19 compatibility. The current version 4.6.0 functions correctly with React 19 and does not require an immediate critical update. Updating to v5.2.0 would be a minor improvement, not a critical fix.

Likely an incorrect or invalid review comment.

Comment thread apps/cli/package.json
Comment on lines +7 to +9
"engines": {
"node": ">=16"
},
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

Verify Node.js version requirement for React 19.

The manifest specifies Node >=16, but React 19 is a recent release that may require a newer Node.js version. Node 16 reached end-of-life in September 2023.

Verify the minimum Node.js version required by React 19:


🌐 Web query:

What is the minimum Node.js version required for React 19?

💡 Result:

React itself (React 19) has no strict minimum Node.js requirement — it's a client library; the React 19 upgrade guide doesn't set a Node version. [1]

However, many popular toolchains and frameworks used with React 19 (Vite, Next, Chakra, etc.) require modern Node — commonly Node 20+ (or Node 18.18+/22+ for some tools). So upgrade your Node runtime to at least Node 20 to avoid toolchain/CI issues. [1][2]

Sources:

  • React 19 upgrade guide (react.dev). [1]
  • Chakra UI (Vite) docs mentioning Node 20.x minimum for Vite-based setups. [2]

🏁 Script executed:

#!/bin/bash
# Check the full package.json to see all dependencies and toolchain
cat apps/cli/package.json

Length of output: 1226


🏁 Script executed:

#!/bin/bash
# Check if there's a build script or toolchain configuration
rg -n "vite|webpack|esbuild|tsx|tsc|typescript" apps/cli/package.json -A2 -B2

Length of output: 0


🏁 Script executed:

#!/bin/bash
# Check if React is directly used or is a transitive dependency
rg -n "react|@react" apps/cli/ --type=ts --type=tsx --type=js -l | head -20

Length of output: 27


🏁 Script executed:

#!/bin/bash
# Search for React/Ink usage in source files to confirm context
find apps/cli/source -type f \( -name "*.js" -o -name "*.jsx" \) 2>/dev/null | head -5

Length of output: 45


🏁 Script executed:

#!/bin/bash
# Check Node requirement across key dependencies in package.json
# Look for engines field in installed packages or npm registry info
npm view ink@4.1.0 engines 2>/dev/null || echo "Ink check failed"
npm view meow@11.0.0 engines 2>/dev/null || echo "Meow check failed"
npm view ava@5.2.0 engines 2>/dev/null || echo "Ava check failed"

Length of output: 86


🏁 Script executed:

#!/bin/bash
# Check Babel 7.21.0 Node requirement
npm view @babel/cli@7.21.0 engines 2>/dev/null || echo "Babel check failed"

Length of output: 19


Update Node.js engine requirement to >=16.15 minimum.

The specification ">=16" is insufficient because ava 5.2.0 requires Node >=16.15 when using the Node 16 track. This means Node 16.0–16.14 would fail tests. Since Node 16 is EOL (September 2023), consider updating to ">=18" for better alignment with modern toolchains.

🤖 Prompt for AI Agents
In apps/cli/package.json around lines 7–9, the Node engine requirement is ">=16"
which allows unsupported 16.0–16.14 and can break ava 5.2.0; update the
"engines.node" value to ">=16.15" to satisfy ava's minimum Node 16 track
requirement (or set to ">=18" if you prefer to require a more modern LTS), and
ensure package.json formatting remains valid.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

♻️ Duplicate comments (1)
apps/cli/source/cli.tsx (1)

2-2: Remove unused React import causing pipeline failure.

The React import is not needed in modern React with the JSX transform and is causing a CI failure.

Apply this diff:

 #!/usr/bin/env node
-import React from 'react';
 import {render} from 'ink';
🧹 Nitpick comments (1)
apps/cli/watch.ts (1)

25-28: Consider setting ignoreInitial: true for clarity.

Since the code only listens to ready and change events (not add events), the ignoreInitial setting doesn't affect behavior. Setting it to true would better communicate intent.

Apply this diff:

 const watcher = chokidar.watch("dist/**/*", {
-	ignoreInitial: false,
+	ignoreInitial: true,
 	persistent: true,
 });
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between db377d6 and 3020ec5.

⛔ Files ignored due to path filters (1)
  • bun.lock is excluded by !**/*.lock
📒 Files selected for processing (5)
  • apps/cli/package.json (1 hunks)
  • apps/cli/source/app.tsx (1 hunks)
  • apps/cli/source/cli.tsx (1 hunks)
  • apps/cli/tsconfig.json (1 hunks)
  • apps/cli/watch.ts (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • apps/cli/package.json
🧰 Additional context used
🧬 Code graph analysis (1)
apps/cli/source/cli.tsx (1)
apps/cli/source/app.tsx (1)
  • App (8-63)
🪛 GitHub Actions: CI
apps/cli/source/app.tsx

[error] 2-2: lint/correctness/noUnusedImports FIXABLE - Import 'React' is unused.

apps/cli/source/cli.tsx

[error] 2-2: lint/correctness/noUnusedImports: Unused import detected (React). Consider removing unused imports.

apps/cli/watch.ts

[warning] 2-4: assist/source/organizeImports FIXABLE - The imports and exports are not sorted.

🔇 Additional comments (4)
apps/cli/tsconfig.json (1)

1-9: LGTM!

The TypeScript configuration is clean and appropriate for a CLI project. The setup correctly extends a reputable base config, outputs to dist, and includes the source directory for compilation.

apps/cli/watch.ts (1)

40-45: LGTM!

The SIGINT handler correctly performs cleanup by terminating the child process before exiting, preventing orphaned processes.

apps/cli/source/app.tsx (1)

13-33: LGTM!

The timer cleanup and keyboard handling logic are implemented correctly:

  • Timer properly cleaned up on unmount
  • Exit conditions (Escape, Ctrl+C) work as expected
  • Input manipulation (clear, backspace, append) handles edge cases appropriately
apps/cli/source/cli.tsx (1)

7-29: LGTM!

The CLI setup using meow is clean and well-structured. The help text is informative, the flag configuration is appropriate, and the App component receives the correct props.

Comment thread apps/cli/source/app.tsx
@@ -0,0 +1,63 @@
import { Box, Text, useApp, useInput } from "ink";
import React, { useEffect, useState } from "react";
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

Remove unused React import causing pipeline failure.

The React import is not needed in modern React with the JSX transform and is causing a CI failure.

Apply this diff:

 import { Box, Text, useApp, useInput } from "ink";
-import React, { useEffect, useState } from "react";
+import { useEffect, useState } from "react";
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
import React, { useEffect, useState } from "react";
import { useEffect, useState } from "react";
🧰 Tools
🪛 GitHub Actions: CI

[error] 2-2: lint/correctness/noUnusedImports FIXABLE - Import 'React' is unused.

🤖 Prompt for AI Agents
In apps/cli/source/app.tsx around line 2, the import "React" is unused and
causing CI to fail; remove the React named import from the import statement so
it only imports the used hooks (useEffect, useState) — i.e., change the import
to import only what’s used or delete the import entirely if nothing is used; run
TypeScript/TSX build to confirm the pipeline passes.

Comment thread apps/cli/watch.ts
Comment on lines +2 to +4
import { spawn, type ChildProcess } from "node:child_process";
import chokidar from "chokidar";

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

Fix import sorting to resolve pipeline failure.

The imports are not sorted according to the project's linting rules, causing a CI failure.

Apply this diff:

-import { spawn, type ChildProcess } from "node:child_process";
-import chokidar from "chokidar";
+import chokidar from "chokidar";
+import { spawn, type ChildProcess } from "node:child_process";
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
import { spawn, type ChildProcess } from "node:child_process";
import chokidar from "chokidar";
import chokidar from "chokidar";
import { spawn, type ChildProcess } from "node:child_process";
🧰 Tools
🪛 GitHub Actions: CI

[warning] 2-4: assist/source/organizeImports FIXABLE - The imports and exports are not sorted.

🤖 Prompt for AI Agents
In apps/cli/watch.ts around lines 2 to 4, the module imports are not sorted per
project linting rules; reorder the imports into the canonical groups and order
(builtin modules first, then external packages) and sort alphabetically within
each group — e.g., keep "import { spawn, type ChildProcess } from
'node:child_process';" before "import chokidar from 'chokidar';" — so the file
complies with the import-sorting rule and CI will pass.

@Kitenite Kitenite merged commit df0a517 into main Nov 18, 2025
0 of 5 checks passed
@Kitenite Kitenite deleted the ink branch November 18, 2025 00:14
This was referenced Nov 18, 2025
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.

1 participant