Skip to content

Keep every --json ASCII, quote pasted names, and treat a closed console as the first Ctrl+C - #46

Merged
donislawdev merged 2 commits into
mainfrom
fix/stability-package-h
Oct 5, 2026
Merged

donislawdev merged 2 commits into
mainfrom
fix/stability-package-h

Conversation

@donislawdev

Copy link
Copy Markdown
Owner

Stability report package H: the command line in front of a console, a pipe and a shell.

What changes for a person

  • Every --json is plain ASCII. A letter outside ASCII is a JSON escape, decoded back by every reader. On a console in code page 852, bws list --json > file.json used to hold bytes no UTF-8 reader accepts, and bws list --json | ConvertFrom-Json failed outright on a real machine: a description with typographic quote marks was written by the console as a plain ", ending the JSON string early. Values are unchanged once decoded (field-by-field comparison against the previous build: 801 entries, identical). The snapshot file is unchanged.
  • Text output shows control characters as <U+XXXX> - C0, DEL, C1 and the direction marks, overrides and isolates - in the listing, show, snapshot diff and plan text, so a snapshot from another machine cannot drive the terminal.
  • Pasted command lines quote the service name for PowerShell: double quotes where cmd reads them the same way, single quotes (with doubled quote marks) for a name PowerShell would expand, such as MSSQL$SQLEXPRESS. A name beginning with a dash comes after --.
  • -- ends the switches, and the verb after snapshot is the first word that is not a switch, so bws snapshot --help shows the help.
  • --timing reports asking who depends on each entry on its own line instead of under "filtered in".
  • show with an unknown name and a refused plan still report what the reading admits, including running without administrator rights.
  • Closing the console window during a plan counts as the first Ctrl+C: the run stops going forward and puts back what it took down, in the five seconds Windows gives. Measured with a new probe that closes a real console window: the previous build left the service stopped in 10 of 13 closes during a restart, this one in 0 of 13.

Contract

No field, switch or exit code changes meaning. The JSON bytes change (escapes), the decoded values do not. -- is a new accepted token. [contract] no.

Checked

  • Command line tests 142, core EquivalentCommandTests 22, architecture 183, window (classes rendering a command) 31, integration (five classes, on a real machine) 77, site 26.
  • Mutation entries: 16 new and 3 re-anchored, all caught (one replaced after it came back MISSED for a good reason: the relaxed encoder already escapes what that entry moved).

Not checked

Windows Terminal closing a tab rather than a window, a dropped SSH or WinRM session, and Windows PowerShell 5.1 argument passing. A put-back longer than about five seconds after a close is cut short by Windows.

🤖 Generated with Claude Code

donislawdev and others added 2 commits October 5, 2026 23:29
…closed console as the first Ctrl+C

Stability report package H, the command line in front of a console, a pipe and a shell.

- Every JSON document the command line prints goes through one place
  (AsciiJson) and carries nothing above U+007E. A console in code page 852
  used to turn letters outside ASCII into bytes no UTF-8 reader accepts on
  the way into a file. A guard holds the single place.
- A control character or a direction override inside a name, a path, a
  description or a value from a snapshot file is shown as <U+XXXX> in text
  output (Printable, through Texts.Of and the listing cells).
- The command lines handed out for pasting quote a service name for
  PowerShell: double quotes where cmd agrees, single quotes for a name it
  would expand. A name that begins with a dash comes after "--", which the
  command line now accepts as the end of the switches.
- "bws snapshot --help" shows the help, and the verb after "snapshot" is the
  first word that is not a switch.
- Asking who depends on each entry has its own --timing line instead of
  being counted as filtering.
- "show" with an unknown name and a refused plan still report what the
  reading has to admit, including running without administrator rights.
- Closing the console window during a plan interrupts it like the first
  Ctrl+C and puts back what the run took down, in the time Windows gives.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Measured on the owner's machine: a description holding typographic quote
marks was written by the console as a plain double quote, which ended the
JSON string early, so 'bws list --json | ConvertFrom-Json' failed outright
on code page 852.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Oct 5, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration
  • Configuration used: Repository UI (base), Organization UI (inherited)
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: f9ab0f10-a7d4-4ae4-b073-5e670506eaa6
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@donislawdev
donislawdev merged commit 2dfe361 into main Oct 5, 2026
8 checks passed
@donislawdev
donislawdev deleted the fix/stability-package-h branch October 5, 2026 21:47
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