@nemus-cli/nemus 0.2.6 → 0.2.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -7,6 +7,25 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.2.8] - 2026-08-26
11
+
12
+ ### Changed
13
+
14
+ - Upgraded **ink 5 → 7** and **React 18 → 19** (with `@types/react` 19). The
15
+ dashboard TUI renders through the same CJS/ESM bridge (`sidebar.js` does the
16
+ real `await import('ink')`; components receive `Box`/`Text`/`useInput`/`useApp`
17
+ as props). Verified: build, typecheck, 433 unit tests, and a live pty render of
18
+ the dashboard sidebar. No user-facing change.
19
+
20
+ ## [0.2.7] - 2026-08-25
21
+
22
+ ### Changed
23
+
24
+ - Removed two **unused** runtime dependencies (`ink-select-input`, `ink-spinner`)
25
+ — they were only referenced in an ambient type-declaration file, never
26
+ imported or rendered. Trims the production dependency tree (322 → 314
27
+ packages), reducing supply-chain surface. No user-facing change.
28
+
10
29
  ## [0.2.6] - 2026-08-25
11
30
 
12
31
  ### Changed
@@ -162,7 +181,9 @@ Initial open-source release of **Nemus**.
162
181
  - Automatic retries with backoff on flaky network operations.
163
182
  - Optional shell integration (auto-cd on create + quick-navigate helper).
164
183
 
165
- [Unreleased]: https://github.com/me-public/nemus/compare/v0.2.6...HEAD
184
+ [Unreleased]: https://github.com/me-public/nemus/compare/v0.2.8...HEAD
185
+ [0.2.8]: https://github.com/me-public/nemus/compare/v0.2.7...v0.2.8
186
+ [0.2.7]: https://github.com/me-public/nemus/compare/v0.2.6...v0.2.7
166
187
  [0.2.6]: https://github.com/me-public/nemus/compare/v0.2.5...v0.2.6
167
188
  [0.2.5]: https://github.com/me-public/nemus/compare/v0.2.4...v0.2.5
168
189
  [0.2.4]: https://github.com/me-public/nemus/compare/v0.2.3...v0.2.4
package/README.md CHANGED
@@ -12,9 +12,14 @@
12
12
  <a href="https://github.com/me-public/nemus/actions/workflows/ci.yml"><img src="https://github.com/me-public/nemus/actions/workflows/ci.yml/badge.svg" alt="CI" /></a>
13
13
  <a href="https://www.npmjs.com/package/@nemus-cli/nemus"><img src="https://img.shields.io/npm/v/@nemus-cli/nemus.svg" alt="npm" /></a>
14
14
  <a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="License: MIT" /></a>
15
+ <a href="https://www.npmjs.com/package/@nemus-cli/nemus"><img src="https://img.shields.io/npm/dm/@nemus-cli/nemus.svg" alt="npm downloads" /></a>
15
16
  <img src="https://img.shields.io/badge/node-%3E%3D22-brightgreen.svg" alt="Node >= 22" />
16
17
  </p>
17
18
 
19
+ <p align="center">
20
+ 📦 <b><a href="https://www.npmjs.com/package/@nemus-cli/nemus">@nemus-cli/nemus</a></b> on npm &nbsp;—&nbsp; <code>npm install -g @nemus-cli/nemus</code>
21
+ </p>
22
+
18
23
  ---
19
24
 
20
25
  ## The name
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * This is a plain .js file (not .ts) to preserve the real dynamic import().
6
6
  * TypeScript compiles `await import('ink')` into `require('ink')` in CJS mode,
7
- * which fails because ink v5 is ESM-only with top-level await.
7
+ * which fails because ink v7 is ESM-only with top-level await.
8
8
  *
9
9
  * By keeping this as .js, tsc copies it as-is to dist/ and the real
10
10
  * import() call is preserved at runtime.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nemus-cli/nemus",
3
- "version": "0.2.6",
3
+ "version": "0.2.8",
4
4
  "description": "Nemus — a CLI for managing multi-repository workspaces. Create, sync, and operate across dozens of repos with a single command, and wire them up to your favorite coding agent.",
5
5
  "keywords": [
6
6
  "workspace",
@@ -68,13 +68,11 @@
68
68
  "cli-progress": "^3.12.0",
69
69
  "commander": "^15.0.0",
70
70
  "fuzzy": "^0.1.3",
71
- "ink": "^5.0.0",
72
- "ink-select-input": "^6.0.0",
73
- "ink-spinner": "^5.0.0",
71
+ "ink": "^7.1.1",
74
72
  "inquirer": "^8.0.0",
75
73
  "inquirer-autocomplete-prompt": "^2.0.0",
76
74
  "markdown-table": "^3.0.3",
77
- "react": "^18.3.1",
75
+ "react": "^19.2.8",
78
76
  "zod": "^4.3.6"
79
77
  },
80
78
  "devDependencies": {
@@ -82,7 +80,7 @@
82
80
  "@types/inquirer": "^9.0.3",
83
81
  "@types/inquirer-autocomplete-prompt": "^2.0.0",
84
82
  "@types/node": "^26.3.0",
85
- "@types/react": "^18.3.31",
83
+ "@types/react": "^19.2.2",
86
84
  "ts-node": "^10.9.1",
87
85
  "typescript": "^5.9.3",
88
86
  "vitest": "^4.1.11"
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Shared types for ink dashboard components.
3
3
  * ink components are passed as props to avoid direct ESM imports
4
- * (ink v5 is ESM-only; the project uses CJS).
4
+ * (ink v7 is ESM-only; the project uses CJS).
5
5
  */
6
6
  import { FC } from 'react';
7
7
  import { BoxProps, TextProps, Key } from 'ink';
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * This is a plain .js file (not .ts) to preserve the real dynamic import().
6
6
  * TypeScript compiles `await import('ink')` into `require('ink')` in CJS mode,
7
- * which fails because ink v5 is ESM-only with top-level await.
7
+ * which fails because ink v7 is ESM-only with top-level await.
8
8
  *
9
9
  * By keeping this as .js, tsc copies it as-is to dist/ and the real
10
10
  * import() call is preserved at runtime.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Type declarations for ink v5 (ESM package used via dynamic import).
2
+ * Type declarations for ink v7 (ESM package used via dynamic import).
3
3
  * Provides basic types for the components and hooks we use.
4
4
  * Full types live in node_modules/ink/build/index.d.ts but can't be
5
5
  * resolved with moduleResolution: "node".
@@ -135,37 +135,4 @@ declare module 'ink' {
135
135
  export function measureElement(ref: { current: any }): { width: number; height: number };
136
136
  }
137
137
 
138
- declare module 'ink-select-input' {
139
- import { FC } from 'react';
140
138
 
141
- export interface Item<V> {
142
- key?: string;
143
- label: string;
144
- value: V;
145
- }
146
-
147
- export interface Props<V> {
148
- items?: Array<Item<V>>;
149
- isFocused?: boolean;
150
- initialIndex?: number;
151
- limit?: number;
152
- indicatorComponent?: FC<{ isSelected: boolean }>;
153
- itemComponent?: FC<{ isSelected: boolean; label: string }>;
154
- onSelect?: (item: Item<V>) => void;
155
- onHighlight?: (item: Item<V>) => void;
156
- }
157
-
158
- function SelectInput<V>(props: Props<V>): JSX.Element;
159
- export default SelectInput;
160
- }
161
-
162
- declare module 'ink-spinner' {
163
- import { FC } from 'react';
164
-
165
- export interface Props {
166
- type?: string;
167
- }
168
-
169
- const Spinner: FC<Props>;
170
- export default Spinner;
171
- }