feat: bug squash and docs updates#107
Merged
Merged
Conversation
Ticket: #93
Contributor
There was a problem hiding this comment.
Pull request overview
This PR enhances the bash-logger project’s security posture and runtime configurability, adds regression coverage for previously reported issues, and introduces a new developer tool for creating GitHub issues from Markdown files.
Changes:
- Hardened and standardized runtime/config parsing (boolean normalization, journal tag validation, INIT logging behavior, logger rediscovery, and improved ANSI stripping).
- Added/updated test coverage for the above behaviors and for install-script download fallback logic.
- Added a new
scripts/create-issues.shhelper to create GitHub issues from Markdown frontmatter viagh.
Reviewed changes
Copilot reviewed 12 out of 12 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
logging.sh |
Adds boolean parsing helper, journal tag validation, INIT-level handling, rediscovery behavior, dedup-flag env hardening, and expanded ANSI stripping. |
scripts/create-issues.sh |
New tool to parse YAML frontmatter and create GitHub issues via gh (supports dry-run, labels, repo override). |
tests/test_runtime_config.sh |
Adds tests for journal tag validation, color mode validation, and boolean normalization for unsafe toggles. |
tests/test_output.sh |
Adds regression tests ensuring log_init bypasses level filtering but respects stderr routing thresholds. |
tests/test_journal_logging.sh |
Adds regression tests for rediscovering logger when it becomes available mid-session. |
tests/test_environment_security.sh |
Adds tests ensuring pre-set deduplication flags are cleared at source time. |
tests/test_ansi_injection.sh |
Adds tests covering DCS/PM/APC stripping behavior in _strip_ansi_codes. |
tests/test_install.sh |
Improves fallback tests to correctly validate curl (3-attempt) vs wget (4-attempt) retry chains. |
install.sh |
Documents wget’s 4-attempt fallback chain to match updated tests/behavior. |
demo-scripts/demo_unsafe_newlines.sh |
Fixes cleanup trap quoting to avoid expansion/globbing hazards. |
SECURITY.md |
Updates supported versions table (adds 2.4.x; marks 2.2.x unsupported). |
docs/security-reviews/2026-04-18-claude-security-audit-v2.4.0.md |
Adds a security audit report documenting findings and recommendations. |
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: Graham Watts <34165628+GingerGraham@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: Graham Watts <34165628+GingerGraham@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: Graham Watts <34165628+GingerGraham@users.noreply.github.com>
GingerGraham
pushed a commit
that referenced
this pull request
Apr 18, 2026
## [2.5.0](2.4.0...2.5.0) (2026-04-18) ### Features * bug squash and docs updates ([#107](#107))
Owner
Author
|
🎉 This PR is included in version 2.5.0 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request introduces several improvements and new features across the codebase, with a focus on enhanced configuration parsing, stricter validation, improved logging controls, and developer tooling. The most significant addition is a new script for creating GitHub issues from markdown files. Several changes in
logging.shimprove configuration safety, input validation, and logging flexibility.New tooling:
scripts/create-issues.sh, a script that reads YAML frontmatter from markdown files and creates GitHub issues using theghCLI. It supports dry-run mode, label parsing, and robust error handling.Configuration and input validation improvements:
_parse_bool_value()to standardize boolean parsing, and refactored all boolean configuration handling (including INI config parsing and setter functions likeset_unsafe_allow_newlines,set_unsafe_allow_ansi_codes, andset_color_mode) to use this function, ensuring consistent and user-friendly error messages for invalid values. [1] [2] [3] [4] [5]_validate_journal_tag()to check journal tag values for length and dangerous shell metacharacters, and enforced this validation inset_journal_tag(). [1] [2]Logging and error handling enhancements:
LOG_LEVEL_INITfor initialization messages, and updatedlog_init()to always display messages regardless of the current log level. All log helper functions now pass log level values as quoted arguments for consistency. [1] [2]Security and sanitization:
_strip_ansi_codes()to cover DCS, PM, and APC sequences, further mitigating risks of terminal manipulation attacks.Other notable changes:
SECURITY.mdto mark2.2.xas unsupported and add2.4.x.trapcommand indemo_unsafe_newlines.shfor safer cleanup of temporary directories.These changes collectively improve the reliability, safety, and developer experience of the project.
Tickets: #58 #88 #93 #100 #101 #102 #103 #104 #105 #106