Skip to content

Releases: Nick2bad4u/PS-Color-Scripts-Enhanced

Release v2026.7.20.2250

Choose a tag to compare

@github-actions github-actions released this 21 Jul 05:00
661bad1

📜 Changelog

✨ What's Changed in v2026.7.20.2250

🛠️ Bug Fixes

  • 24a4119 — 🛠️ [fix] Prefer pwsh for redirected color capture (1 file, +6, -20)

Restore the module's modern-PowerShell-first child renderer contract. Windows PowerShell serializes redirected host records as CLIXML, so using it while pwsh is available corrupts captured output and cache comparisons.

  • 890804b — 🛠️ [fix] Make localized help builds idempotent (116 files, +1691, -5251)

🛠️ [fix] Replace generated related-link sections with one canonical HelpUri and collapse duplicate or empty MAML navigation links after PlatyPS export.

🧪 [test] Verify every translated Markdown topic and MAML command exposes exactly one online link and prove consecutive help builds are byte-stable.

📝 [docs] Normalize packaged documentation casing so copied cross-platform links resolve on case-sensitive filesystems.

  • 11c9f4c — 🛠️ [fix] Make ANSI conversion terminal-aware (11 files, +1548, -1918)

🛠️ [fix] Decode legacy art safely, emulate cursor movement, split compound canvases deterministically, and preserve PowerShell-safe output across converters.

🧹 [chore] Remove duplicate source artifacts only after byte-aware comparison and retain the usable Megajoint segment already in the module catalog.

🧪 [test] Add Node coverage for SGR state, cursor controls, CP437 input, Unicode escaping, malformed sequences, and splitter boundaries.

  • 1898573 — 🛠️ [fix] Harden module state and process handling (32 files, +396, -273)

🛠️ [fix] Make configuration getters side-effect free, defer approved writes, preserve malformed files, and keep cache and metadata state coherent.

🛠️ [fix] Drain child-process streams without deadlocks, report renderer failures, and keep Windows PowerShell platform detection explicit.

🧪 [test] Cover WhatIf behavior, transient configuration paths, profile ownership, large redirected streams, and updated internal contracts.

🛡️ Security

  • d8a3806 — 🔒 [security] Remove SAUCE font regex backtracking (2 files, +22, -1)

Parse the fixed-width SAUCE font field with a direct null-terminator lookup instead of a potentially quadratic regular expression. Cover null, padded, and unterminated fields explicitly.

  • a1682f0 — 🔒 [security] Remove vulnerable build dependencies (6 files, +179, -534)

Replace the unmaintained frontmatter validator and enforce patched adm-zip and esbuild versions so a clean npm audit reports zero findings.

Scope publish write access to the release job and replace flagged SAUCE padding regexes with bounded linear parsing plus regression coverage.

📝 Documentation

  • 8d26887 — 📝 [docs] Synchronize help and collection guidance (177 files, +43125, -39030)

📝 [docs] Regenerate Markdown and MAML help for all ten cultures from corrected command metadata and align translated messages with the current module behavior.

📝 [docs] Replace stale cache, platform, testing, versioning, and publishing claims; fix case-sensitive links; and keep the Gallery README below its strict size threshold.

📝 [docs] Document terminal-aware ANSI conversion, duplicate handling, and additional source collections including 16colo.rs, Textfiles art packs, botany, os-ansi, and hyfetch.

🧹 Chores

  • a0f1e64 — 🔖 [chore] Prepare version 2026.7.20.2250 (15 files, +51, -26)

Update the module and localized help metadata to the release candidate version.

Make changelog validation tag-aware and document the reproducible versioned release-note workflow.

👷 CI/CD

  • fffde8e — 👷 [ci] Install pinned help tooling for releases (1 file, +7, -2)

Install Microsoft.PowerShell.PlatyPS 1.0.2 before the release build generates localized MAML help, and pin PSScriptAnalyzer 1.25.0 alongside the existing Pester pin.

  • fd19bd8 — 👷 [ci] Install ANSI runtime dependencies for Pester (1 file, +22, -0)

Install the locked production-only Node.js dependency set in the Windows PowerShell and cross-platform PowerShell jobs. This lets repository-script tests execute the ANSI converter in the same clean environment used by GitHub Actions.

  • 250f6d8 — 👷 [ci] Make release validation deterministic (19 files, +1287, -3595)

👷 [ci] Normalize versioned builds across release triggers, reuse the repository analyzer entry point, and keep verification non-mutating.

🛠️ [fix] Isolate flaky PSScriptAnalyzer passes with bounded adaptive subdivision while preserving every enabled rule and failing closed on persistent errors.

🧪 [test] Add release-wiring and maintenance-script regressions, strengthen coverage output handling, and remove the obsolete private-function snapshot.

Note

Release comparison: v2026.7.20.35...v2026.7.20.2250

⭐ Contributors

Thanks to anyone who has 🧑‍💻 contributed.

This changelog was automatically generated with ⛰️ git-cliff.

Release v2026.7.20.35

Choose a tag to compare

@github-actions github-actions released this 20 Jul 05:00
feeecff

📜 Changelog

✨ What's Changed in v2026.7.20.35

🛠️ Bug Fixes

  • feeecff — 🛠️ [fix] Normalize release version overrides (1 file, +19, -3)

🛠️ [fix] Canonicalize valid System.Version inputs before building and comparing the generated manifest version.

👷 [ci] Accept timestamp overrides with leading zero components while retaining strict rejection of malformed or genuinely mismatched versions.

  • bcb0af5 — 🛠️ [fix] Normalize Write-Host array binding on PowerShell 5.1 (1 file, +5, -1)

🛠️ [fix] Flatten the nested Object[] shape produced by ValueFromRemainingArguments before applying -Separator.

🧪 [test] Preserve A:B capture fidelity across Windows PowerShell 5.1 and PowerShell 7.

⚡ Performance

  • 14ba72a — ⚡ [perf] Flatten deterministic colorscripts and avoid process startup (170 files, +5954, -10639)

⚡ [perf] Replace 134 stable computational renderers with verified static ANSI output and restrict caching to expensive live scripts.

⚡ [perf] Route the 17 trusted dynamic renderers through fresh in-process runspaces while preserving the child-process boundary for custom code.

🛠️ [fix] Preserve syl signatures, remove console-state mutation from kevin-woods, and restore the rainbow pukeskull variant.

🧪 [test] Lock corpus classification, generated output hashes, capture fidelity, isolation, fail-closed policy handling, and cache routing.

📝 [docs] Document the deterministic conversion workflow and package the new dynamic policy.

👷 CI/CD

  • 026bbf2 — 👷 [ci] Remove the redundant PSSecretScanner workflow (1 file, +0, -48)

👷 [ci] Stop installing and running PSSecretScanner on every push and pull request because the scan is slow, non-blocking, and duplicated by the existing Gitleaks and TruffleHog workflows.

Note

Release comparison: v2026.7.19.1720...v2026.7.20.35

⭐ Contributors

Thanks to anyone who has 🧑‍💻 contributed.

This changelog was automatically generated with ⛰️ git-cliff.

Release v2026.7.19.703

Choose a tag to compare

@github-actions github-actions released this 19 Jul 07:10
832da9a

📜 Changelog

✨ What's Changed in v2026.7.19.703

🛠️ Bug Fixes

  • 832da9a — 🛠️ [fix] Authenticate release note generation (1 file, +1, -0)

  • b0aff79 — 🛠️ [fix] Preserve Windows PowerShell test encoding (4 files, +6, -6)

🛠️ [fix] Retain UTF-8 BOM markers on Unicode-bearing entry scripts so Windows PowerShell 5.1 parses status glyphs using UTF-8 instead of the active ANSI code page.

🧪 [test] Model inventory fixtures with FileInfo records and assert that metadata-only freshness checks avoid reading cached payloads.

🧪 [test] Verify the corrected tree with 513 passing Pester 6 tests and 87.06 percent coverage under Windows PowerShell 5.1.

  • 734f104 — 🛠️ [fix] Make release version overrides authoritative (1 file, +27, -5)

👷 [ci] Pass manual version overrides into the actual module build while preserving the repository's full release-note, verification, and coverage sequence.

🛠️ [fix] Derive tags from the built manifest and fail when a requested override does not match, preventing GitHub release and package-version drift.

⚡ Performance

  • 57a0afe — ⚡ [perf] Harden selective output caching (19 files, +492, -148)

🔒 [fix] Serialize each cache entry with a cross-process mutex and recheck freshness after lock acquisition to prevent competing terminals from deleting valid cache payloads.

⚡ [perf] Restrict implicit bulk builds to the curated cache policy, avoid loading full Pokémon metadata, and short-circuit exact-name inventory searches.

⚡ [perf] Add cats and nerd-font-glyphs to the output-cache policy while leaving static ANSI scripts on the direct rendering fast path.

✨ [feat] Expose Cache.EffectivePath so callers can inspect the resolved cache directory without losing the persisted override.

🧪 [test] Cover lock serialization, concurrent freshness checks, lightweight bulk selection, policy membership, and effective-path behavior.

🧪 Testing

  • d2a204c — 🧪 [test] Match committed cache skip behavior (1 file, +2, -2)

🧪 [test] Keep the release test aligned with the committed cache implementation, which returns the existing cached payload for an up-to-date entry.

🛠️ [fix] Avoid coupling release validation to separate uncommitted memory-cache work in the shared worktree.

  • 1f2167e — 🧪 [test] Upgrade validation to Pester 6 (28 files, +241, -170)

🧪 [test] Pin Pester 6.0.1 across local tooling and CI, migrate mock assertions to Should-Invoke, and retain the existing coverage and JUnit gates.

👷 [ci] Run the Windows PowerShell matrix entry directly under powershell so PowerShell 5.1 compatibility is exercised instead of being redirected through pwsh.

🛠️ [fix] Preserve Windows PowerShell 5.1 behavior for metadata loading, JSON cache metadata, console color parsing, single-record output, and WhatIf installation checks.

🔧 [build] Prevent duplicate test traversal, clear only reports owned by each test run, and scope analyzer exclusions to Pester DSL limitations in test files.

📝 [docs] Synchronize the Pester 6 requirement and commands across source and packaged documentation.

Note

Release comparison: v2026.7.19.59...v2026.7.19.703

⭐ Contributors

Thanks to anyone who has 🧑‍💻 contributed.

This changelog was automatically generated with ⛰️ git-cliff.

Release v2026.7.19.59

Choose a tag to compare

@github-actions github-actions released this 19 Jul 01:05
e2bd1e1

📜 Changelog

✨ What's Changed in v2026.7.19.59

🛠️ Bug Fixes

  • e2bd1e1 — 🛠️ [fix] Preserve colors through accelerated rendering (4 files, +54, -12)

🛠️ [fix] Keep literal ANSI sequences in the static AST fast path so only the public -NoAnsiOutput boundary removes them.

🛠️ [fix] Capture dynamic ANSI unchanged and translate Write-Host foreground and background ConsoleColor values to matching SGR codes without restoring ConsoleHost overhead.

🧪 [test] Cover static ANSI payloads, dynamic literal ANSI, and foreground/background color preservation.

Note

Release comparison: v2026.7.18.2139...v2026.7.19.59

⭐ Contributors

Thanks to anyone who has 🧑‍💻 contributed.

This changelog was automatically generated with ⛰️ git-cliff.

Release v2026.7.19.1720

Choose a tag to compare

@github-actions github-actions released this 19 Jul 22:19
8f4ad39

📜 Changelog

✨ What's Changed in v2026.7.19.1720

⚡ Performance

  • d3f7f72 — ⚡ [perf] statically evaluate variable-based colorscripts (5 files, +487, -47)

  • Interpret the safe assignment, char, interpolation, concatenation, and sequential Write-Host subset without executing script code

  • Read BOM-less scripts as UTF-8 for consistent Windows PowerShell 5.1 parsing and fail closed for runtime-dependent syntax

  • Add corpus, byte-parity, negative-boundary, and child-process regression coverage under Pester 6

🧪 Testing

  • 8f4ad39 — 🧪 [test] make UTF-8 regression portable to PowerShell 5.1 (1 file, +3, -2)

  • Construct the Unicode adjacency marker from its code point so Windows PowerShell does not decode the test fixture source through the active ANSI code page

  • Preserve coverage of BOM-less UTF-8 parsing while keeping the expected static output byte-exact

Note

Release comparison: v2026.7.19.1250...v2026.7.19.1720

⭐ Contributors

Thanks to anyone who has 🧑‍💻 contributed.

This changelog was automatically generated with ⛰️ git-cliff.

Release v2026.7.19.1250

Choose a tag to compare

@github-actions github-actions released this 19 Jul 17:27
023912b

📜 Changelog

✨ What's Changed in v2026.7.19.1250

🛠️ Bug Fixes

  • 023912b — 🛠️ [fix] Satisfy the publish analyzer gate (4 files, +5, -5)

Rename the internal cache-policy resolver to use a singular PowerShell noun, matching the PSUseSingularNouns contract enforced by the publish workflow.

Update the direct caller, mocks, invocation assertions, and policy-resolution coverage without changing the resolver's collection semantics.

  • 10f3548 — 🛠️ [fix] Stabilize help and manifest builds (2 files, +8, -5)

  • Derive the module name from the supplied module directory and select its matching manifest explicitly.

  • Fail with the exact missing manifest path so isolated and package help builds remain deterministic.

  • Normalize generated manifest newlines before the ScriptAnalyzer formatting pass to prevent mixed-line-ending build failures.

📝 Documentation

  • 28c759e — 📝 [docs] Clarify policy-scoped cache behavior (20 files, +52, -43)

  • Document direct policy and exact-name lookup behavior instead of the obsolete full-inventory description.

  • Explain rendered cache payloads, validation sidecars, orphan cleanup, the effective cache directory, and quiet progress suppression.

  • Add the cache-directory summary localization key across all supported cultures.

  • Repair wildcard examples and synchronize Spanish, French, and Russian Markdown and MAML semantics.

⚡ Performance

  • 62e81df — ⚡ [perf] Accelerate cache validation and lookup (16 files, +803, -91)

  • Memoize validated rendered output by script, payload, and sidecar file stamps while keeping metadata-only warm checks lightweight.

  • Resolve exact bundled names and cache-policy entries without initializing the full 3,000-plus script inventory.

  • Bound live parallel pipelines to the configured throttle and suppress progress consistently in quiet mode.

  • Remove orphaned sidecars accurately and preserve cached StdOut for the public PassThru contract.

  • Add Pester 6 regression coverage for memoization, invalidation, fast paths, progress, cleanup, and compatibility behavior.

Note

Release comparison: v2026.7.19.703...v2026.7.19.1250

⭐ Contributors

Thanks to anyone who has 🧑‍💻 contributed.

This changelog was automatically generated with ⛰️ git-cliff.

Release v2026.7.18.710

Choose a tag to compare

@github-actions github-actions released this 18 Jul 07:19
dad6fc2

📜 Changelog

✨ What's Changed in v2026.7.18.710

✨ Features

  • 89c8fe3 — ✨ [feat] Cache only computational color scripts (37 files, +756, -197)

✨ [feat] Add a fail-closed cache policy that opts expensive renderers into persisted output while static and unknown scripts execute directly.

⚡ [perf] Skip cache initialization and I/O for unlisted scripts, clean obsolete entries safely, and preserve sequential, parallel, force, and WhatIf behavior.

🧪 [test] Cover policy integrity, selective rendering, cleanup, parallel execution, metadata, and existing cache command paths.

📝 [docs] Synchronize packaging, English help, README guidance, and generated module documentation with selective caching.

🛠️ Bug Fixes

  • dad6fc2 — 🐛 [fix] Preserve the cache policy output type (1 file, +3, -2)

  • 🔎 [lint] Avoid the unary-comma analyzer false positive.

  • 🧩 [fix] Emit the HashSet as one non-enumerated pipeline object.

🛡️ Security

  • a4a9f8a — 🔒 [fix] (ci) Require explicit publication (1 file, +3, -13)

  • b2ddadc — 🔒 [fix] (ci) Guard workflow-run publishing (1 file, +10, -0)

📝 Documentation

  • be34e5d — 📝 [docs] Synchronize localized cache policy help (38 files, +1915, -380)

  • 🌐 [docs] Explain selective caching across all localized help surfaces.

  • 🛠️ [fix] Repair malformed PlatyPS metadata and command fences.

  • 📚 [docs] Add missing localized MAML command entries.

  • 🧪 [test] Enforce cache-policy parity for every supported culture.

🧹 Chores

  • cd49ab9 — 🔧 [chore] (ci) Retrigger exact-SHA verification (0 files, +0, -0)

  • 0e688a3 — 🔧 [chore] (tooling) Refresh shared validation tooling (20 files, +25939, -7509)

  • 46aaf64 — 🧹 [chore] Remove generated JSCPD reports (7 files, +0, -56196)

  • fb49073 — 🔧 [chore] Adopt shared validation configs (12 files, +56403, -170)

🔧 [chore] Wire JSCPD, git-cliff, and Lychee through shared config packages.

👷 [ci] Point release-note generation at the shared git-cliff config where workflows invoke git-cliff directly.

👷 CI/CD

  • 81f1275 — 👷 [ci] Use the stable coverage entry point (1 file, +2, -2)

  • 🧪 [test] Run the dedicated CI coverage script in every test job.

  • 🐛 [fix] Avoid npm 12 treating the forwarded PowerShell switch as an npm option.

  • 7a0c511 — 👷 [ci] Fail publication on Pester regressions (4 files, +36, -31)

  • 📌 [deps] Pin CI and publication jobs to Pester 5.8.0.

  • 🧪 [test] Route publication through the shared Pester runner.

  • 🚨 [fix] Propagate test and coverage failures outside CI mode.

  • 📦 [build] Install locked npm dependencies during publication.

  • 157ca79 — 👷 [ci] (release) Guard git-cliff note generation (8 files, +122, -322)

Validate the authoritative manifest tag at HEAD immediately before git-cliff, pin release creation to the triggering commit, remove the release-notes wrapper, and use direct package CLIs.

  • a7f3fdf — 🔧 [ci] Align Codecov module coverage target (1 file, +1, -1)

Note

Release comparison: v2026.7.1.2030...v2026.7.18.710

⭐ Contributors

Thanks to anyone who has 🧑‍💻 contributed.

This changelog was automatically generated with ⛰️ git-cliff.

Release v2026.7.18.2139

Choose a tag to compare

@github-actions github-actions released this 18 Jul 21:45
48a9598

📜 Changelog

✨ What's Changed in v2026.7.18.2139

🛠️ Bug Fixes

  • 5678d1f — 🛠️ [fix] Emit and strip real ANSI escape sequences (4 files, +14, -14)

🛠️ [fix] Replace invalid braced-variable interpolation with actual ESC bytes in status-color prefixes, reset suffixes, and the sanitizer pattern.

🧪 [test] Update ANSI fixtures to assert real control sequences and plain-text output.

⚡ Performance

  • e57419f — ⚡ [perf] Restore fast color script rendering (6 files, +226, -13)

⚡ [perf] Parse the exact single-literal Write-Host shape and return normalized output without launching a second PowerShell process, while failing closed to process isolation for dynamic scripts and cache builds.

⚡ [perf] Capture dynamic Write-Host text inside the child process before ConsoleHost parses redirected ANSI output, and transport the wrapper with EncodedCommand.

⚡ [perf] Skip metadata construction for name-only selection and use case-insensitive HashSet lookups for Pokémon filtering.

🧪 [test] Cover static extraction, dynamic fallback output, metadata bypass, failure paths, and exact ANSI normalization.

🎨 Styling

  • 48a9598 — 🎨 [style] Satisfy the release analyzer indentation rule (1 file, +5, -5)

🎨 [style] Split static-string classification into named predicates so continuation lines follow the repository's consistent-indentation policy without changing parser behavior.

Note

Release comparison: v2026.7.18.710...v2026.7.18.2139

⭐ Contributors

Thanks to anyone who has 🧑‍💻 contributed.

This changelog was automatically generated with ⛰️ git-cliff.

Release v2026.7.1.2030

Choose a tag to compare

@github-actions github-actions released this 01 Jul 20:39

Changelog

All notable changes to this project will be documented in this file.

[Unreleased]

[e7087e7...
e7087e7]
(compare)

📦 Dependencies

  • (deps) [dependency] Update actions/checkout (e7087e7)

Contributors

Thanks to all the contributors for their hard work!

License

This project is licensed under the Unlicense License
This changelog was automatically generated with git-cliff.

Release v2026.6.20.800

Choose a tag to compare

@github-actions github-actions released this 20 Jun 08:08
6349f8d

Changelog

All notable changes to this project will be documented in this file.

[Unreleased]

[6349f8d...
6349f8d]
(compare)

🛡️ Security

  • 👷 [ci] Use shared workflow callers

👷 [ci] Switches the Dependabot auto-merge caller to workflow-templates@main and replaces local security and maintenance workflows with shared reusable callers.

⬆️ [build] Updates eslint-config-nick2bad4u to the published caller override version and records any peer dependency needed for the shared ESLint config to load. (6349f8d)

Contributors

Thanks to all the contributors for their hard work!

License

This project is licensed under the Unlicense License
This changelog was automatically generated with git-cliff.