[GH-ISSUE #7306] [Bug] Several CLI option help lines print the same default twice #4341

Open
opened 2026-10-31 00:49:02 +00:00 by bsakaguchi · 1 comment
Owner

Originally created by @coygeek on GitHub (Oct 26, 2026).
Original GitHub issue: https://github.com/morluto/rea/issues/7306

Before submitting

  • I searched the open and closed issues for a related report.
  • I removed credentials, tokens, private paths, and sensitive target data.

Area

CLI

Observed behavior

The built public launcher prints adjacent default annotations for inspect-byte-entropy --help, including (default 4096) (default: 4096). Both annotations express the same value in the same units. I also observed redundant default wording in five other commands' help.

Reproduction

From a built source checkout, run:

node scripts/rea.mjs inspect-byte-entropy --help

Read the --block-size and --offset entries. The same presentation occurs with inspect-devicetree --help, decode-signal-recording --help, inspect-packet-capture --help, inspect-packet-fields --help, and inspect-signal-decoders --help. I ran each help command once with the pinned Node runtime and an isolated home; all exited 0 with empty stderr. No target or provider is needed.

Expected behavior

An option's help should explain its meaning and present the same default once. This is a cosmetic presentation expectation based on the CLI's documented help surface and its automatic default annotation. Preserve useful descriptions and machine-readable schema defaults.

Impact and scope

Eleven observed entries across six commands repeat their default: byte entropy's --block-size and --offset; devicetree's four --max-* options; signal recording's --line_offset; packet capture's --match_offset; packet fields' --kind and --offset; and signal decoders' --offset. The values agree, so the observed impact is redundant wording. This was a targeted check, not a complete catalog audit. Readers can ignore the repeated annotation.

REA version

6.8.0; source revision 3233992733.

Runtime and platform

Node.js v24.22.1; macOS 27.0.1; arm64.

Target and artifact context

Not applicable; only help and schema discovery commands were invoked.

Interface

CLI

Earliest failure stage

Transport or result projection

Relevant output or evidence

Observed help excerpt:

  --block-size <number>  Power-of-two block size from 256 to 65536 bytes (default 4096) (default: 4096)
  --offset <number>      Window start as a decimal file byte offset (default 0) (default: 0)
  • Expected source: docs/cli.md:405 directs users to command help for arguments and options; node_modules/incur/dist/Help.js:93–96 automatically adds the field's default to each option description.
  • Failure source: The public-launcher output above; src/cli/binaryDiagnosticsCommands.ts:205–209 supplies descriptions containing those defaults on fields that already declare defaults in src/domain/native/byteEntropy.ts:15–25.
  • Evidence provenance: observed
  • Local verification: reproduced
  • Reproduction completeness: complete

Typed outcome or recovery expected

Rerunning help should retain the flags, descriptions, constraints and default values with one statement of each default per option line. The existing schema default properties should remain available.

Analysis or suspected cause

Source-derived: the option descriptions embed defaults before the help renderer appends its own annotation. The displayed repetition is directly observed; no patch was tested.

Additional context

The schema checks on devicetree and packet fields show descriptions alongside structured default properties. Those distinct representations do not independently establish a bug. Likewise, inspect-pe-imports --help shows 64 MiB beside 67108864, which supplies a useful unit conversion and is excluded. Related reports #1169 and #5322 concern requiredness and rejected defaults, respectively, rather than repeated wording. NOT_ENOUGH_INFO: the first affected version was not established.

Triage assessment

  • Impact level: P3
  • Assessment status: supported
  • Impact basis: The observed defect repeats equal default statements in human-readable help; no consequential behavior failure was demonstrated.
  • Workaround status: available
  • Workaround basis: Both statements give the same value, so ignoring either preserves the option guidance.
Originally created by @coygeek on GitHub (Oct 26, 2026). Original GitHub issue: https://github.com/morluto/rea/issues/7306 ### Before submitting - [x] I searched the open and closed issues for a related report. - [x] I removed credentials, tokens, private paths, and sensitive target data. ### Area CLI ### Observed behavior The built public launcher prints adjacent default annotations for `inspect-byte-entropy --help`, including `(default 4096) (default: 4096)`. Both annotations express the same value in the same units. I also observed redundant default wording in five other commands' help. ### Reproduction From a built source checkout, run: ```sh node scripts/rea.mjs inspect-byte-entropy --help ``` Read the `--block-size` and `--offset` entries. The same presentation occurs with `inspect-devicetree --help`, `decode-signal-recording --help`, `inspect-packet-capture --help`, `inspect-packet-fields --help`, and `inspect-signal-decoders --help`. I ran each help command once with the pinned Node runtime and an isolated home; all exited 0 with empty stderr. No target or provider is needed. ### Expected behavior An option's help should explain its meaning and present the same default once. This is a cosmetic presentation expectation based on the CLI's documented help surface and its automatic default annotation. Preserve useful descriptions and machine-readable schema defaults. ### Impact and scope Eleven observed entries across six commands repeat their default: byte entropy's `--block-size` and `--offset`; devicetree's four `--max-*` options; signal recording's `--line_offset`; packet capture's `--match_offset`; packet fields' `--kind` and `--offset`; and signal decoders' `--offset`. The values agree, so the observed impact is redundant wording. This was a targeted check, not a complete catalog audit. Readers can ignore the repeated annotation. ### REA version 6.8.0; source revision 3233992733c33dabf2de09d22ee4e6d9409f797a. ### Runtime and platform Node.js v24.22.1; macOS 27.0.1; arm64. ### Target and artifact context Not applicable; only help and schema discovery commands were invoked. ### Interface CLI ### Earliest failure stage Transport or result projection ### Relevant output or evidence Observed help excerpt: ```text --block-size <number> Power-of-two block size from 256 to 65536 bytes (default 4096) (default: 4096) --offset <number> Window start as a decimal file byte offset (default 0) (default: 0) ``` - Expected source: `docs/cli.md:405` directs users to command help for arguments and options; `node_modules/incur/dist/Help.js:93–96` automatically adds the field's default to each option description. - Failure source: The public-launcher output above; `src/cli/binaryDiagnosticsCommands.ts:205–209` supplies descriptions containing those defaults on fields that already declare defaults in `src/domain/native/byteEntropy.ts:15–25`. - Evidence provenance: observed - Local verification: reproduced - Reproduction completeness: complete ### Typed outcome or recovery expected Rerunning help should retain the flags, descriptions, constraints and default values with one statement of each default per option line. The existing schema `default` properties should remain available. ### Analysis or suspected cause Source-derived: the option descriptions embed defaults before the help renderer appends its own annotation. The displayed repetition is directly observed; no patch was tested. ### Additional context The schema checks on devicetree and packet fields show descriptions alongside structured `default` properties. Those distinct representations do not independently establish a bug. Likewise, `inspect-pe-imports --help` shows `64 MiB` beside `67108864`, which supplies a useful unit conversion and is excluded. Related reports [#1169](https://github.com/morluto/rea/issues/1169) and [#5322](https://github.com/morluto/rea/issues/5322) concern requiredness and rejected defaults, respectively, rather than repeated wording. NOT_ENOUGH_INFO: the first affected version was not established. ## Triage assessment - Impact level: P3 - Assessment status: supported - Impact basis: The observed defect repeats equal default statements in human-readable help; no consequential behavior failure was demonstrated. - Workaround status: available - Workaround basis: Both statements give the same value, so ignoring either preserves the option guidance.
Author
Owner

@akushonkamen commented on GitHub (Oct 26, 2026):

I reproduced this on a source build: the six commands' help print their automatic (default: …) annotation next to the same value already stated in the option description (11 entries in total). I'll prepare a fix that keeps one annotation per option, preserving the descriptions and the machine-readable schema defaults.

<!-- gh-comment-id:6429882703 --> @akushonkamen commented on GitHub (Oct 26, 2026): I reproduced this on a source build: the six commands' help print their automatic `(default: …)` annotation next to the same value already stated in the option description (11 entries in total). I'll prepare a fix that keeps one annotation per option, preserving the descriptions and the machine-readable schema defaults.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
morluto/rea#4341
No description provided.