Skip to content

Make command diagnostics secret-safe by construction - #243

Merged
codeforester merged 1 commit into
mainfrom
security/217-20260802-secret-safe-diagnostics
Aug 2, 2026
Merged

Make command diagnostics secret-safe by construction#243
codeforester merged 1 commit into
mainfrom
security/217-20260802-secret-safe-diagnostics

Conversation

@codeforester

@codeforester codeforester commented Aug 2, 2026

Copy link
Copy Markdown
Collaborator

Closes #217

Summary

  • add explicit --sensitive and caller-vetted --safe-display controls to std_run, gh_run, gh_report_command_failure, and gh_api_with_retry
  • fail closed without rendering protected argv across dry-run, retry, timeout, fatal, authentication, API-capture, terminal, and persistent-log diagnostics
  • preserve exact statuses, timing and attempt context, ordinary %q diagnostics, and successful GitHub API stdout
  • require printable-ASCII safe labels and explicit separators, with value-free parser failures for malformed controls
  • harden protected policy against Bash dynamic-scope mutation by in-process shell functions
  • document the precise guarantee boundary for executed-command output, tracing, process listings, and caller-owned labels

Validation

  • ./tests/validate.sh (398 BATS tests, smokes, examples, and all 8 option modes)
  • ./tests/lint-warnings.sh
  • focused std and GitHub suites (221 tests)
  • adversarial security subset and manual strict/status matrix
  • exhaustive safe-label byte and locale checks, including readonly LC_ALL
  • git diff --check

Exact Bash 4.2.53 execution is intentionally delegated to the digest-pinned compatibility job for this PR.

@codeforester
codeforester merged commit e18f20b into main Aug 2, 2026
5 checks passed
@codeforester
codeforester deleted the security/217-20260802-secret-safe-diagnostics branch August 2, 2026 23:31
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.

Make command diagnostics secret-safe by construction

1 participant