Skip to content

Releases: abhimehro/ctrld-sync

v0.1.1 🚀

Choose a tag to compare

@github-actions github-actions released this 04 Jul 20:22

What's Changed

  • 🛡️ Sentinel: [MEDIUM] Fix Bandit security warnings (B108, B104) @abhimehro (#978)
  • fix(ux): extend stderr.isatty() guards and clean cancel output (salvages #973) @abhimehro (#974)
  • 🎨 Palette: Fix ANSI escape sequence residue in non-interactive CI @abhimehro (#975)
  • fix(ux): guard ANSI progress output with stderr.isatty() (salvages #965) @abhimehro (#970)
  • 🛡️ Sentinel: [security improvement] @abhimehro (#969)
  • 🛡️ Sentinel: [MEDIUM] Fix input length validation bypass in rule filtering @abhimehro (#967)
  • 🎨 Palette: Fix CLI table alignment for emojis @abhimehro (#960)
  • 🎨 Palette: Add isatty guard for terminal residue cleanup @abhimehro (#958)
  • 🎨 Palette: fix terminal line residue on interactive prompt cancellation @abhimehro (#956)
  • ⚡ Bolt: Add early return fast-path for string display length calculation @abhimehro (#947)
  • fix(qa): minor type check and linting fixes @abhimehro (#943)
  • 🎨 Palette: Fix CLI UI coloring and spacing @abhimehro (#932)
  • 🛡️ Sentinel: [HIGH] Fix exception chaining data leak in rate limit handler @abhimehro (#935)
  • 🎨 Palette: Add graceful exit for interactive restart prompt @abhimehro (#930)
  • 🎨 Palette: Fix plan details table alignment for wide characters @abhimehro (#919)
  • 🛡️ Sentinel: [MEDIUM] Prevent data leakage in exception chaining @abhimehro (#922)

🧰 Maintenance

What's Changed

  • 🛡️ Sentinel: [MEDIUM] Prevent data leakage in exception chaining by @abhimehro in #922
  • 🎨 Palette: Fix plan details table alignment for wide characters by @abhimehro in #919
  • 🎨 Palette: Add graceful exit for interactive restart prompt by @abhimehro in #930
  • 🛡️ Sentinel: [HIGH] Fix exception chaining data leak in rate limit handler by @abhimehro in #935
  • 🎨 Palette: Fix CLI UI coloring and spacing by @abhimehro in #932
  • fix(qa): minor type check and linting fixes by @abhimehro in #943
  • ⚡ Bolt: Add early return fast-path for string display length calculation by @abhimehro in #947
  • chore(deps): bump actions/cache from 4.2.3 to 6.0.0 by @dependabot[bot] in #938
  • chore(deps): bump pnpm/action-setup from 6.0.8 to 6.0.9 by @dependabot[bot] in #939
  • chore(deps): bump github/gh-aw from 0.80.5 to 0.80.9 by @dependabot[bot] in #940
  • chore(deps): bump release-drafter/release-drafter from 7.2.1 to 7.4.0 by @dependabot[bot] in #941
  • chore(deps): bump ruby/setup-ruby from 1.313.0 to 1.314.0 by @dependabot[bot] in #942
  • chore(deps): bump release-drafter/release-drafter from 7.4.0 to 7.5.1 by @dependabot[bot] in #951
  • chore(deps): bump actions/checkout from 4.2.2 to 7.0.0 by @dependabot[bot] in #950
  • chore(deps): bump actions/cache from 6.0.0 to 6.1.0 by @dependabot[bot] in #953
  • 🎨 Palette: fix terminal line residue on interactive prompt cancellation by @abhimehro in #956
  • chore(deps): bump github/gh-aw from 0.80.9 to 0.81.6 by @dependabot[bot] in #962
  • chore(deps): bump github/gh-aw/actions/setup from 0.80.9 to 0.81.6 by @dependabot[bot] in #961
  • 🎨 Palette: Add isatty guard for terminal residue cleanup by @abhimehro in #958
  • 🎨 Palette: Fix CLI table alignment for emojis by @abhimehro in #960
  • chore(deps): bump ruby/setup-ruby from 1.314.0 to 1.315.0 by @dependabot[bot] in #966
  • 🛡️ Sentinel: [MEDIUM] Fix input length validation bypass in rule filtering by @abhimehro in #967
  • 🛡️ Sentinel: [security improvement] by @abhimehro in #969
  • chore(deps): bump ruby/setup-ruby from 1.315.0 to 1.316.0 by @dependabot[bot] in #972
  • fix(ux): guard ANSI progress output with stderr.isatty() (salvages #965) by @abhimehro in #970
  • 🎨 Palette: Fix ANSI escape sequence residue in non-interactive CI by @abhimehro in #975
  • fix(ux): extend stderr.isatty() guards and clean cancel output (salvages #973) by @abhimehro in #974
  • 🛡️ Sentinel: [MEDIUM] Fix Bandit security warnings (B108, B104) by @abhimehro in #978

Full Changelog: v0.1.0...v0.1.1

v0.1.0 🚀

Choose a tag to compare

@github-actions github-actions released this 20 Jun 05:12
1b11b36

What's Changed

  • refactor(api): extract response parsing helpers (salvages #908) @abhimehro (#915)
  • ⚡ Bolt: [Replace sum(generator) with sum(list_comprehension)] @abhimehro (#918)
  • 🛡️ Sentinel: [MEDIUM] Fix exception chaining data leakage @abhimehro (#913)
  • 🎨 Palette: Fix CLI table alignment by ignoring ANSI codes @abhimehro (#910)
  • 🛡️ Sentinel: [MEDIUM] Sanitize HTTP client error exceptions @abhimehro (#911)
  • 🎨 Palette: Fix plan details alignment with emojis @abhimehro (#902)
  • ⚡ Bolt: optimize _display_len using list comprehension @abhimehro (#906)
  • 🛡️ Sentinel: [MEDIUM] Fix un-sanitized exception log in rate limit parser @abhimehro (#905)
  • ⚡ Bolt: Unroll generator expressions for Content-Type checks @abhimehro (#892)
  • 🎨 Palette: Fix CLI table title border alignment @abhimehro (#895)
  • fix(test): instantiate TypedDict instead of dict for mypy @abhimehro (#896)
  • 🎨 Palette: Fix CLI table alignment when emojis are present @abhimehro (#890)
  • 🎨 Palette: Prevent internal placeholder leak in dry-run CLI suggestion @abhimehro (#882)
  • fix(automation): restore truncated repository_automation_common.py @cursor[bot] (#887)
  • fix(automation): restore truncated repository_automation_common.py @abhimehro (#889)
  • ci: re-baseline performance benchmarks and guard sum(generator) pattern @abhimehro (#885)
  • docs(qa): daily health check notes 2026-06-09 @cursor[bot] (#879)
  • ⚡ Bolt: Replace generator with list comp for faster rule counting @abhimehro (#877)
  • docs(qa): Daily QA notes 2026-06-08 — matrix healthy @cursor[bot] (#875)
  • docs(qa): Daily QA notes 2026-06-07 — matrix healthy @cursor[bot] (#874)
  • docs(qa): Daily QA notes 2026-06-06 — matrix healthy @cursor[bot] (#871)
  • docs(qa): Daily QA notes 2026-06-03 — matrix healthy @abhimehro (#868)
  • docs(qa): Daily QA notes 2026-06-02 — matrix healthy @cursor[bot] (#864)
  • ⚡ Bolt: Optimize root rule extraction @abhimehro (#865)
  • 🎨 Palette: Clean up unspecified profile log presentation @abhimehro (#861)
  • docs(qa): Daily QA notes 2026-05-31 — matrix healthy @cursor[bot] (#860)
  • docs(qa): Daily QA notes for 2026-05-30 @cursor[bot] (#857)
  • 🛡️ Sentinel: [MEDIUM] Fix command injection risk in restart logic @abhimehro (#852)
  • 🎨 Palette: Add delight to summary table titles @abhimehro (#854)
  • 🎨 Palette: Add dynamic pluralization for folder sync status @abhimehro (#851)
  • ⚡ Bolt: Optimize _filter_rules_for_folder with itertools.filterfalse @abhimehro (#849)
  • 🎨 Palette: Intercept dry-run-placeholder in colored table @abhimehro (#844)
  • 🛡️ Sentinel: [MEDIUM] Fix log injection via HTTPStatusError (salvages #835) @abhimehro (#843)
  • 🎨 Palette: Fix dynamic pluralization on folder count @abhimehro (#838)
  • 🧹 Refactor print_plan_details to improve maintainability @abhimehro (#789)
  • fix(api): optimize rule filtering to resolve benchmark regression @abhimehro (#841)
  • Revert "🛡️ Sentinel: [MEDIUM] Fix log injection via HTTPStatusError" @abhimehro (#842)
  • 🛡️ Sentinel: [MEDIUM] Fix log injection via HTTPStatusError @abhimehro (#835)
  • ⚡ Bolt: Add chunk_size to fallback HTTP streaming @abhimehro (#837)
  • refactor(api): _retry_request readability (salvages #803) @abhimehro (#818)
  • 🧹 Simplify deeply nested logic in _parse_rate_limit_headers (salvages #794) @abhimehro (#821)
  • chore: Jules Daily QA & Agentic Review @abhimehro (#833)
  • ⚡ Bolt: Optimize hostnames deduplication before set membership check (salvages #811) @abhimehro (#820)
  • 🧹 Simplify deeply nested logic in _retry_request @abhimehro (#807)
  • fix(tests): resolve mypy type error in test_ux.py @abhimehro (#825)
  • chore(tests): fix mypy type mismatch in test_ux.py PlanEntry creation @abhimehro (#831)
  • chore: fix formatting in fix_env.py (salvages #781) @abhimehro (#823)
  • 🛡️ Sentinel: [MEDIUM] Sanitize Content-Length header in error logs @abhimehro (#829)
  • fix(security): prevent script injection via workflow_dispatch input in copilot-setup-steps (CWE-94) @abhimehro (#826)
  • fix(security): SSRF hardening (salvages #780) @abhimehro (#817)
  • 🧹 Simplify deeply nested logic in validate_hostname @abhimehro (#795)
  • 🧹 Simplify deeply nested logic in validate_folder_data @abhimehro (#797)
  • 🛡️ Sentinel: [security improvement] Sanitize Content-Type in ValueError messages @abhimehro (#783)
  • 🧹 Refactor: extract logic from fix_env @abhimehro (#791)
  • 🧹 Refactor: Extract helper functions from sync_profile @abhimehro (#792)
  • 🧹 Refactor: Simplify create_folder logic @abhimehro (#793)
  • 🧹 [code health improvement] Simplify deeply nested logic in validate_profile_id @abhimehro (#800)
  • 🧹 [code health improvement] Refactor push_rules to improve maintainability @abhimehro (#804)
  • chore: auto-format fix_env.py @abhimehro (#778)
  • 🎨 Palette: Apply pluralize helper to log messages @abhimehro (#782)
  • 🧹 [Code Health Improvement] Simplify verify_access_and_get_folders @abhimehro (#805)
  • 🎨 Palette: improve empty state profile UX @abhimehro (#813)
  • Jules Daily QA & Agentic Review @abhimehro (#814)
  • 🧹 Simplify deeply nested logic in _retry_request @abhimehro (#808)
  • 🎨 Palette: Align plan details output @abhimehro (#809)
  • 🛡️ Sentinel: [MEDIUM] Sanitize Content-Type header in exceptions @abhimehro (#810)
  • chore: auto-format fix_env.py @abhimehro (#785)
  • chore: complete daily QA agentic review @abhimehro (#779)
  • fix(security): prevent shell injection from AI-inference output in summary.yml @abhimehro (#769)
  • 🛡️ Sentinel: [MEDIUM] Replace mkstemp with NamedTemporaryFile @abhimehro (#776)
  • 🛡️ Sentinel: [MEDIUM] Add authorization parameter to log sanitization @abhimehro (#774)
  • 🛡️ Sentinel: [MEDIUM] Fix missing Content-Type validation @abhimehro (#763)
  • 🛡️ Sentinel: [CRITICAL/HIGH] Fix Authorization Log Leakage @abhimehro (#775)
  • 🎨 Palette: Improve CLI pluralization grammar @abhimehro (#773)
  • 🎨 Palette: Add empty state hint in main summary table @abhimehro (#768)
  • chore: Automated Daily QA Review @abhimehro (#765)
  • ⚡ Bolt: Optimize rule safety validation fast path @abhimehro (#762)
  • 🎨 Palette: [Fail-Secure Interactive Prompts] @abhimehro (#751)
  • Add GitHub Actions workflow testing skill @abhimehro (#757)
  • ci: pass changelog token via environment @abhimehro (#756)
  • Add ctrld-sync CLI testing skill @abhimehro (#761)
  • 🛡️ Sentinel: [HIGH] Fix SSRF bypass via reserved IPs @abhimehro (#755)
  • ux(get_password): auto-append '(typing will be hidden)' hint (salvages #742) @abhimehro (#743)
  • 🎨 Palette: Small UX and CLI hints improvements @abhimehro (#734)
  • ⚡ Bolt: Optimize _clean_env_kv with string split @abhimehro (#740)
  • 🧪 Add tests for _clean_env_kv @abhimehro (#739)
  • fix(tests): resolve mypy typing issues in test_ux.py @abhimehro (#730)
  • 🎨 Palette: Retain semantic emojis in no-color fallbacks @abhimehro (#726)
  • chore(format): Apply pre-commit formatting fixes @abhimehro (#728)
  • 🎨 Palette: Decouple color formatting from input hints @abhimehro (#725)
  • 🛡️ Sentinel: [CRITICAL] Fix SSRF Vulnerability via Link-Local IPs @abhimehro (#724)
  • chore(qa): daily QA review (all green) @abhimehro (#719)
  • chore: fix mypy type-checking violations across the test suite @abhimehro (#713)
  • 🎨 Palette: Improve CLI no-color fallbacks and add completion feedback @abhimehro (#716)
  • 🛡️ Sentinel: [HIGH] Fix SSRF bypass via loopback interface @abhimehro (#714)
  • 🛡️ Sentinel: Add explicit loopback IP check to prevent SSRF bypass @abhimehro (#712)
  • ⚡ Bolt: Use dict comprehension for hostname filtering @abhimehro (#710)
  • chore: complete Jules Daily QA & Agentic Review @abhimehro (#708)
  • UX: Retain success message and links in no-color mode @abhimehro (#707)
  • ⚡ Bolt: [performance improvement] Pre-compile regex for profile URL extraction @abhimehro (#700)
  • chore: update ruff config to use lint section @abhimehro (#706)
  • 🛡️ Sentinel: [HIGH] Fix SSRF by blocking private IPs @abhimehro (#703)
  • ⚡ Bolt: Optimize validate_folder_data by removing generator expressions @abhimehro (#705)
  • 🛡️ Sentinel: [HIGH] Fix SSRF bypass via unspecified IPs @abhimehro (#699)
  • 🎨 Palette: Add trailing space to generic input prompts @abhimehro (#698)
  • ⚡ Bolt: Optimize dictionary lookups in cache and headers @abhimehro (#696)
  • 🎨 Palette: Enhance CLI UX with input buffering fixes and distinct error hints @abhimehro (#695)
  • Revert "chore(actions): consolidate workflow automation" @abhimehro (#693)
  • chore(actions): consolidate workflow automation @abhimehro (#691)
  • 🛡️ Sentinel: [MEDIUM] Add input length limits prior to expensive operations @abhimehro (#686)
  • ⚡ Bolt: [performance improvement] Optimize dictionary key removal @abhimehro (#685)
  • fix(automation): validate action ref existence and add major bump warnings @abhimehro (#663)
  • chore(actions): consolidate workflow automation @abhimehro (#661)
  • ⚡ Bolt: Optimize dictionary lookups with walrus operator @abhimehro (#660)
  • chore(actions): consolidate workflow automation @abhimehro (#657)
  • ⚡ Bolt: [performance improvement] Reduce thread contention in API rate limit parsing @abhimehro (#655)
  • fix(actions): restore automation workflow permissions and archive stale agentic artifacts @abhimehro (#652)
  • chore(actions): sync automation polish @abhimehro (#650)
  • chore(actions): consolidate repository automation @abhimehro (#649)
  • Add 400 and 422 HTTP status hints to _4XX_HINTS @copilot-swe-agent[bot] (#648)
  • docs(api_client): add docstrings to the four public HTTP wrapper functions @copilot-swe-agent[bot] (#646)
  • Use api_client._SERVER_ERROR_HINT as single source of truth for _STATUS_HINTS[500] @[copilot-swe-agent[bot]](htt...
Read more