Loading workspace insights... Statistics interval
7 days30 daysLatest CI Pipeline Executions
181b3328 fix(cli-forge): honor `hidden: true` for subcommands in generated help (#93)
Help output currently respects `hidden` for options but still lists
hidden subcommands. This change aligns command help behavior with
existing hidden semantics so internal/experimental commands are not
surfaced in user-facing help.
- **Help rendering now filters hidden subcommands**
- Updated command listing logic in `formatHelp()` to only include
subcommands where `configuration.hidden !== true`.
- Preserved de-duplication behavior for aliased command entries while
applying visibility filtering.
- **`Commands` section and command-help footer are visibility-aware**
- `Commands:` is rendered only when at least one visible subcommand
exists.
- `Run \`... [command] --help\`` footer is omitted when no visible
subcommands are available.
- **Focused regression coverage**
- Added tests for:
- mixed visible + hidden subcommands (hidden command is omitted),
- all-hidden subcommands (no `Commands:` block and no command-help
footer).
```ts
await cli('test')
.command('visible', { handler: () => {} })
.command('secret', { hidden: true, handler: () => {} })
.forge(['--help']);
// Help now lists only "visible"
```
> [!WARNING]
>
> <details>
> <summary>Firewall rules blocked me from connecting to one or more
addresses (expand for details)</summary>
>
> #### I tried to connect to the following addresses, but was blocked by
firewall rules:
>
> -
`https://storage.googleapis.com/prod-north-america/66c6330b3cc96d3e7872ab8d/a4d68412-7db5-4a40-91b5-65235829c83a-logs`
> - Triggering command: `/usr/local/bin/node node
./node_modules/.bin/../nx/bin/nx.js run cli-forge:build` (http block)
> -
`https://storage.googleapis.com/prod-north-america/66c6330b3cc96d3e7872ab8d/bfefc345-f65f-4063-9f53-8553efcfeab0`
> - Triggering command: `/usr/local/bin/node node
./node_modules/.bin/../nx/bin/nx.js run cli-forge:test --
src/lib/internal-cli.spec.ts` (http block)
> -
`https://storage.googleapis.com/prod-north-america/66c6330b3cc96d3e7872ab8d/bfefc345-f65f-4063-9f53-8553efcfeab0-logs`
> - Triggering command: `/usr/local/bin/node node
./node_modules/.bin/../nx/bin/nx.js run cli-forge:test --
src/lib/internal-cli.spec.ts` (http block)
> -
`https://storage.googleapis.com/prod-north-america/66c6330b3cc96d3e7872ab8d/c9467a59-20f8-4baf-9374-029d0ef54697`
> - Triggering command: `/usr/local/bin/node node
./node_modules/.bin/../nx/bin/nx.js run cli-forge:test` (http block)
> -
`https://storage.googleapis.com/prod-north-america/66c6330b3cc96d3e7872ab8d/f037dfa1-ba07-4e2d-882a-1529ed88e0fc`
> - Triggering command: `/usr/local/bin/node node
./node_modules/.bin/../nx/bin/nx.js run-many -t lint:eslint,build,test
-p cli-forge` (http block)
> - Triggering command: `/usr/local/bin/node node
./node_modules/.bin/../nx/bin/nx.js run cli-forge:build` (http block)
> - `www.google-analytics.com`
> - Triggering command: `/usr/local/bin/node node
./node_modules/.bin/../nx/bin/nx.js show project parser` (dns block)
> - Triggering command: `/usr/local/bin/node node
./node_modules/.bin/../nx/bin/nx.js show project cli-forge` (dns block)
> - Triggering command: `/usr/local/bin/node /usr/local/bin/node
/home/REDACTED/work/cli-forge/cli-forge/node_modules/.pnpm/nx@22.6.3_@swc-node+register@1.11.1_@swc+core@1.15.8_@swc+helpers@0.5.18__@swc+types@0._08fcaebe47e144ae1496eaa205fa2254/node_modules/nx/src/project-graph/plugins/isolation/plugin-worker
/tmp/plugin4396-2-324.592435.sock
/home/REDACTED/work/cli-forge/cli-forge/node_modules/.pnpm/nx@22.6.3_@swc-node+register@1.11.1_@swc+core@1.15.8_@swc+helpers@0.5.18__@swc+types@0._08fcaebe47e144ae1496eaa205fa2254/node_modules/nx/src/plugins/project-json/build-nodes/project-json`
(dns block)
>
> If you need me to access, download, or install something from one of
these locations, you can either:
>
> - Configure [Actions setup
steps](https://gh.io/copilot/actions-setup-steps) to set up my
environment, which run before the firewall is enabled
> - Add the appropriate URLs or hosts to the custom allowlist in this
repository's [Copilot coding agent
settings](https://github.com/AgentEnder/cli-forge/settings/copilot/coding_agent)
(admins only)
>
> </details>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: AgentEnder <6933928+AgentEnder@users.noreply.github.com>
Co-authored-by: Craigory Coppola <craigorycoppola@gmail.com> 181b3328 fix(cli-forge): honor `hidden: true` for subcommands in generated help (#93)
Help output currently respects `hidden` for options but still lists
hidden subcommands. This change aligns command help behavior with
existing hidden semantics so internal/experimental commands are not
surfaced in user-facing help.
- **Help rendering now filters hidden subcommands**
- Updated command listing logic in `formatHelp()` to only include
subcommands where `configuration.hidden !== true`.
- Preserved de-duplication behavior for aliased command entries while
applying visibility filtering.
- **`Commands` section and command-help footer are visibility-aware**
- `Commands:` is rendered only when at least one visible subcommand
exists.
- `Run \`... [command] --help\`` footer is omitted when no visible
subcommands are available.
- **Focused regression coverage**
- Added tests for:
- mixed visible + hidden subcommands (hidden command is omitted),
- all-hidden subcommands (no `Commands:` block and no command-help
footer).
```ts
await cli('test')
.command('visible', { handler: () => {} })
.command('secret', { hidden: true, handler: () => {} })
.forge(['--help']);
// Help now lists only "visible"
```
> [!WARNING]
>
> <details>
> <summary>Firewall rules blocked me from connecting to one or more
addresses (expand for details)</summary>
>
> #### I tried to connect to the following addresses, but was blocked by
firewall rules:
>
> -
`https://storage.googleapis.com/prod-north-america/66c6330b3cc96d3e7872ab8d/a4d68412-7db5-4a40-91b5-65235829c83a-logs`
> - Triggering command: `/usr/local/bin/node node
./node_modules/.bin/../nx/bin/nx.js run cli-forge:build` (http block)
> -
`https://storage.googleapis.com/prod-north-america/66c6330b3cc96d3e7872ab8d/bfefc345-f65f-4063-9f53-8553efcfeab0`
> - Triggering command: `/usr/local/bin/node node
./node_modules/.bin/../nx/bin/nx.js run cli-forge:test --
src/lib/internal-cli.spec.ts` (http block)
> -
`https://storage.googleapis.com/prod-north-america/66c6330b3cc96d3e7872ab8d/bfefc345-f65f-4063-9f53-8553efcfeab0-logs`
> - Triggering command: `/usr/local/bin/node node
./node_modules/.bin/../nx/bin/nx.js run cli-forge:test --
src/lib/internal-cli.spec.ts` (http block)
> -
`https://storage.googleapis.com/prod-north-america/66c6330b3cc96d3e7872ab8d/c9467a59-20f8-4baf-9374-029d0ef54697`
> - Triggering command: `/usr/local/bin/node node
./node_modules/.bin/../nx/bin/nx.js run cli-forge:test` (http block)
> -
`https://storage.googleapis.com/prod-north-america/66c6330b3cc96d3e7872ab8d/f037dfa1-ba07-4e2d-882a-1529ed88e0fc`
> - Triggering command: `/usr/local/bin/node node
./node_modules/.bin/../nx/bin/nx.js run-many -t lint:eslint,build,test
-p cli-forge` (http block)
> - Triggering command: `/usr/local/bin/node node
./node_modules/.bin/../nx/bin/nx.js run cli-forge:build` (http block)
> - `www.google-analytics.com`
> - Triggering command: `/usr/local/bin/node node
./node_modules/.bin/../nx/bin/nx.js show project parser` (dns block)
> - Triggering command: `/usr/local/bin/node node
./node_modules/.bin/../nx/bin/nx.js show project cli-forge` (dns block)
> - Triggering command: `/usr/local/bin/node /usr/local/bin/node
/home/REDACTED/work/cli-forge/cli-forge/node_modules/.pnpm/nx@22.6.3_@swc-node+register@1.11.1_@swc+core@1.15.8_@swc+helpers@0.5.18__@swc+types@0._08fcaebe47e144ae1496eaa205fa2254/node_modules/nx/src/project-graph/plugins/isolation/plugin-worker
/tmp/plugin4396-2-324.592435.sock
/home/REDACTED/work/cli-forge/cli-forge/node_modules/.pnpm/nx@22.6.3_@swc-node+register@1.11.1_@swc+core@1.15.8_@swc+helpers@0.5.18__@swc+types@0._08fcaebe47e144ae1496eaa205fa2254/node_modules/nx/src/plugins/project-json/build-nodes/project-json`
(dns block)
>
> If you need me to access, download, or install something from one of
these locations, you can either:
>
> - Configure [Actions setup
steps](https://gh.io/copilot/actions-setup-steps) to set up my
environment, which run before the firewall is enabled
> - Add the appropriate URLs or hosts to the custom allowlist in this
repository's [Copilot coding agent
settings](https://github.com/AgentEnder/cli-forge/settings/copilot/coding_agent)
(admins only)
>
> </details>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: AgentEnder <6933928+AgentEnder@users.noreply.github.com>
Co-authored-by: Craigory Coppola <craigorycoppola@gmail.com>