All notable changes to Copilot Guardian will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Confidence-gap ambiguity defense in analysis
- Added
confidence_gapcomputation between top-ranked hypotheses. - Added
low_confidence_ambiguityflag and reviewer guidance fields inanalysis.json. - Added operator-facing warning to use
--show-reasoningand larger--max-log-charswhen ambiguity is detected.
- Added
- Deterministic no-op slop detection
- Quality guard now fail-closes comment-only/whitespace-only patch additions (
NO_GO).
- Quality guard now fail-closes comment-only/whitespace-only patch additions (
- Regression tests for critical paths
- Added
tests/analyze_confidence_gap.test.ts. - Extended traversal tests to include both Unix-style (
../) and Windows-style (..\\) path traversal variants.
- Added
- Allowlist/path-scope hardening
- Hardened glob matching and path normalization for safer scope checks.
- Added traversal-segment rejection to prevent allowlist bypass via path tricks.
- MCP configuration resilience
- Improved cross-platform config path resolution (Windows/macOS/Linux) with normalized paths.
- Added GitHub token resolution fallback via
gh auth tokenwhen env vars are absent.
- Version alignment (docs/runtime metadata)
- Runtime/package/docs bumped to
0.2.7.
- Runtime/package/docs bumped to
- Real output evidence package for reviewer verification
- Added
examples/real-output/standard/with unmodified artifacts copied from.test-output/:patch_options.jsonfix.*.patchquality_review.*.jsoncopilot.*.raw*.txt
- Added
examples/real-output/abstain/guardian.report.jsoncopied from.test-output-run-abstain/. - Added
examples/real-output/README.mddocumenting context, evidence map, and interpretation.
- Added
- README now highlights real execution evidence
- Added
Real Output Examplesbadge in the header. - Reworked hero section with stronger value hook and immediate quick-run command.
- Reordered content flow to
Demo -> Why This Matters -> Real Output Showcasefor faster reviewer conversion. - Strengthened Demo section with explicit
What happens in this runchecklist and direct artifact path. - Added
Real Output Showcasewith fail-closedNO_GOJSON evidence and raw malformed-response link. - Expanded patch spectrum table with explicit
HIGH/LOWrisk and boldGO/NO_GOverdicts. - Expanded
Output Filestable to include direct example links underexamples/real-output/. - Added explicit references to both standard and abstain evidence paths for auditability.
- Added stronger
Try It NowCTA with issue/docs/examples links and social star badge. - Finalized section ordering for reviewer flow:
Challenge Submission -> Demo -> Why This Matters -> Real Output Showcase -> Judge Quick Test.
- Added
- Published to npm (
latest)- Package name:
copilot-guardian - Published version:
0.2.6 - Install paths:
npm i -g copilot-guardian@latestnpx copilot-guardian@latest --help
- Package name:
- npm package footprint reduced dramatically
- Introduced
filesallowlist inpackage.jsonto publish runtime essentials only. - Excluded large/non-runtime artifacts (tests, source TS, local test outputs, media-heavy docs).
- Tarball reduced from ~
6.1 MBto ~77 KB(npm pack --dry-runverification).
- Introduced
- README distribution clarity
- Added npm version badge.
- Added explicit npm package URL and install/run guidance using
@latest. - Adjusted badge layout for readability.
- Version alignment (docs/runtime metadata)
- README badges updated to
0.2.6/v0.2.6. - CLI runtime version string updated to
0.2.6. - CHANGELOG top release synchronized to
0.2.6.
- README badges updated to
- Security policy documentation alignment
- Replaced placeholder contact with
info@flamehaven.space. - Updated supported version range from
1.0.xto0.2.x. - Updated policy metadata date/version for current release line.
- Replaced placeholder contact with
- Analysis speed tuning
- Fast mode reduces deep source-context fetch scope (
maxSourceFileslowered). - Analysis model timeout is shortened in fast mode.
- Fast mode reduces deep source-context fetch scope (
- Quality artifact resilience
quality_review.<strategy>.jsonis now persisted even when model output parse fails.
- README operational guidance
- Judge quick test now defaults to stable fast profile (
--show-options --fast --max-log-chars 20000). - Added immediate no-code speed tuning section using
COPILOT_TIMEOUT_MS. - Clarified that
--show-reasoningis optional and slower.
- Judge quick test now defaults to stable fast profile (
- Fast-path plumbing consistency
- Wired fast option into evaluation report metadata and markdown output.
- Dedicated Forced Abstain documentation
- Added
Forced Abstain Policy (NOT PATCHABLE)section in README. - Documented abstain trigger classes, generated artifact (
abstain.report.json), and operator action.
- Added
- Submission metadata alignment
- Updated README release badges/tag references to
v0.2.4. - Updated submission section heading and quick-verification path label to
v0.2.4.
- Updated README release badges/tag references to
- Auto-heal docs clarity
- Explicitly states that
NOT PATCHABLEclassification skips patch/apply flow.
- Explicitly states that
- Runtime/version consistency
- Updated CLI runtime version to
0.2.4. - Updated package version metadata (
package.json,package-lock.json) to0.2.4.
- Updated CLI runtime version to
- Forced abstain policy for non-patchable failure classes
- Added auth/permission/infra classifiers (
401/403, token permission denied, rate limits, runner unavailable, service unavailable). - Guardian now emits
abstain.report.jsonand skips patch generation for these classes.
- Added auth/permission/infra classifiers (
- Secret redaction fail-closed enforcement
- Added residual secret-pattern detection after redaction.
- Analysis now aborts when sensitive token patterns remain in logs.
- Auto-heal branch safety controls
- New CLI options:
--allow-direct-push(explicit unsafe override)--base-branch <name>(PR target branch)--max-retries <n>(bounded CI rerun attempts; default 3)
- Default behavior is PR-only safe mode using
guardian/run-<run_id>-<suffix>branches.
- New CLI options:
- Deterministic guard hard caps
- Workflow file edits are forced
NO_GO(human review required). - File deletion patches are forced
NO_GO(human review required). - Oversized patch footprint is forced
NO_GObeyond safe auto-fix threshold.
- Workflow file edits are forced
- Evaluation harness security reporting
- Added abstain-aware reporting fields and rates.
- Added per-case and aggregate
security_severitydistribution.
- Auto-heal execution order
- Safe branch creation now occurs before patch application in PR-only mode.
- Failed apply in safe mode performs branch cleanup before exiting.
- README submission positioning and operator guidance
- Updated release/version tags to
v0.2.3. - Updated auto-heal narrative to PR-only safe mode.
- Clarified artifact generation flow and output locations under
.copilot-guardian/.
- Updated release/version tags to
- Evaluation markdown table formatting
- Corrected case-table separator column count to match expanded security fields.
- TS suppression anti-pattern guard
- Deterministic review now blocks added
@ts-ignore,@ts-nocheck, andeslint-disable.
- Deterministic review now blocks added
- Scenario test for suppression-based fake fix
- Added regression test to ensure suppression-only patches are rejected.
- Real-world evaluation harness (
eval)- Added
copilot-guardian evalcommand for multi-run patchability benchmarking. - Supports explicit
--run-ids, file-based IDs (--run-file), or recent failed runs (--failed-limit). - Generates aggregate reports:
eval.report.md,eval.report.json, andeval.cases.json. - Adds security-oriented metrics: bypass attempt rate, bypass block rate, and security false-GO rate.
- Added
- Glob scope matching accuracy
- Fixed
**wildcard handling sotests/**/*.tsandsrc/**/*.tscorrectly match root-level files.
- Fixed
- Placeholder marker handling
- Added-line
TODO/FIXME/HACKmarkers are now fail-closed (NO_GO) instead of soft warning.
- Added-line
- Security bypass detection expansion
- Deterministic guard now fail-closes on additional bypass patterns:
NODE_TLS_REJECT_UNAUTHORIZED=0GIT_SSL_NO_VERIFY=truestrict-ssl false/npm config set strict-ssl falsecurl -k/--insecure|| true/set +e
- Deterministic guard now fail-closes on additional bypass patterns:
- README challenge positioning overhaul
- Added
Why This Is a Copilot CLI Challenge SubmissionandJudge Quick Test (90 seconds)sections near the top. - Added
Single Test Mode (Clean Run for GIF + Review)with one-file verification flow and direct artifact links. - Added a fail-closed deterministic safety-layer diagram and explicit anti-slop CI positioning.
- Added explicit runtime note: production path is
@github/copilot-sdk, CLI fallback is local experimentation only. - Added clarification for legacy
unknown command "chat" for "copilot"traces to prevent reviewer confusion. - Added final GIF insertion slot for submission-final update.
- Added
- Test surface simplification for submission clarity
- Reduced
tests/to a single primary scenario file:tests/quality_guard_regression_matrix.test.ts. - Removed legacy
tests/__mocks__tree and migrated required SDK stub totests/mocks/copilot-sdk.mock.ts.
- Reduced
- False out-of-scope rejection
- Balanced patches touching
tests/<file>.tsno longer misclassified as out of scope due glob conversion bug.
- Balanced patches touching
- Real lint gate activation
- Replaced placeholder
lint: skipped (MVP)withtsc --noEmittype-check lint gate for CI validity.
- Replaced placeholder
- Submission artifact hygiene
- Removed legacy
guardian-output.txtand optionalsidrce_cert.yamlfrom repository root to reduce reviewer confusion.
- Removed legacy
- Version alignment to
0.2.2- Updated
package.json,package-lock.json, CLI runtime version, README release badges and submission tag.
- Updated
- Deterministic TypeScript quality guard (internal algorithm)
- Added local patch review for scope, bypass anti-patterns, intent alignment, and patch footprint.
- Merges deterministic verdict with model verdict for final GO/NO_GO decision.
- Keeps the project independent without external SIDRCE/ai-slop-detector pipeline coupling.
- Auto-heal patch selection policy
run --auto-healnow selects the best GO strategy byrisk_levelthenslop_score, not first GO hit.- Dashboard recommendation uses the same ranking policy for consistent operator decisions.
- README release metadata
- Updated badges/tag references to
v0.2.1. - Replaced static test-count badge with CI workflow badge.
- Updated badges/tag references to
- JSON schema validation compatibility
- Switched validator runtime to Ajv 2020 to match
$schema: draft/2020-12. - Eliminates false schema warnings that previously forced valid patches to NO_GO.
- Switched validator runtime to Ajv 2020 to match
- Jest parse/runtime stability
- Removed direct
import.metausage from util path resolution to avoid CommonJS parse failures in tests. - Updated SDK call expectation in
async-exec.test.tsforsendAndWait({ prompt, mode }, timeout). - Updated analyze test expectation for
fetchRunContext(repo, runId, maxLogChars).
- Removed direct
This release upgrades Guardian into a step-aware CI recovery engine for challenge submission quality.
- Step-aware diagnosis weighting
- Hypothesis selection now considers failed-step/category compatibility, not confidence only.
- Dynamic patch allowlist generation
patch_plan.allowed_filesis expanded from failed step context (test/lint/build/install).
- Test evidence extraction
- Failed test files and assertion signals are parsed from logs and injected into analysis context.
- New CLI option:
--max-log-chars- Available on
runandanalyzecommands for wider failure evidence coverage.
- Available on
- Auto re-diagnosis guidance
- When patch spectrum is
NO_GOfor all options, Guardian suggests a re-run with expanded logs.
- When patch spectrum is
- README submission upgrade
- Added v0.2.0 submission section and release tag badges without removing prior README content.
- Version alignment to
0.2.0package.json,package-lock.json, CLI runtime version, README badge/tag, SIDRCE metadata.
- MCP prompt strategy
- Prompt now prioritizes failed-step evidence, especially test assertion context.
- Allowlist enforcement
- Auto-apply allowlist supports glob patterns for safer and practical scope checks.
- Quality review fail-open risk
- Malformed quality JSON now returns
NO_GOwith high risk instead of permissiveGO.
- Malformed quality JSON now returns
- Schema bypass detection
- Out-of-range
slop_scorevalues are flagged and normalized with forcedNO_GO.
- Out-of-range
- False-positive source extraction noise
- Improved file-path boundary matching to reduce URL-derived pseudo files in deep analysis.
This release focuses on visual feedback improvements and response handling robustness to make Guardian production-ready for real execution recording.
-
Enhanced Progress Indicators: Step-by-step status messages throughout analysis pipeline
- MCP configuration check with success confirmation
- Workflow context retrieval with metadata display (SHA, workflow path)
- Deep intelligence source context extraction with file listings
- Real-time Copilot communication status
- Artifact creation logs (file-by-file confirmation)
-
Improved Hypothesis Display: Multi-hypothesis visualization enhancements
- [SELECTED] marker for highest confidence hypothesis
- Confidence summary with reasoning explanation
- Cleaner evidence display with optional next_check field
-
Enhanced Patch Spectrum: Risk-aware patch visualization improvements
- [RECOMMENDED] marker for lowest-risk GO strategy
- Files affected by each patch (extracted from diff)
- Slop detection threshold adjusted (>50% instead of >60%)
-
Critical: JSON Parser Enhancement - Copilot SDK timeout and response handling
- Fixed missing timeout parameter in
session.sendAndWait()(was using SDK default 60s, now explicit 90s) - Enhanced
extractJsonObject()to handle markdown code blocks and various response formats - Improved error messages with response preview (first 300 chars) for debugging
- Strengthened prompt to emphasize JSON format requirement
- Parser now gracefully handles both pure JSON and JSON embedded in markdown
Impact: Eliminates timeout errors and handles Copilot response format variations gracefully. Critical for production reliability.
- Clear NO-GO explanation when all strategies flagged
- Fixed missing timeout parameter in
-
Complete Workflow Summary: Guardian execution summary at completion
- Total hypotheses generated
- GO vs NO-GO strategy counts
- All generated files listed with descriptions
- Output directory prominently displayed
- Progress messages now show what Guardian is doing, not just status
- File creation logs include artifact names for audit trail clarity
- Slop score threshold lowered to 50% for stricter quality control
- Summary sections use bold headers for better visual hierarchy
- TypeScript type safety:
ctx.headShanullable handling - All progress messages now use consistent ASCII-safe formatting
This release embodies Guardian's core principle: "Trust built on receipts, not magic."
Every step of the AI's thinking process is now visible in terminal output, making it perfect for real execution recording (not demos). Judges and users can see exactly what Guardian is doing at every moment.
npm run build
node dist/cli.js run --repo owner/repo --last-failed --show-reasoning --show-options
# Output now shows:
# [>] Checking GitHub MCP configuration...
# [+] GitHub MCP server ready
# [>] Fetching run context from GitHub...
# [+] Retrieved workflow logs and metadata
# Workflow: .github/workflows/ci.yml
# Commit SHA: a1b2c3d
# [>] Deep analysis: Extracting source context...
# [+] Found 2 source file(s) mentioned in errors
# - src/utils.ts:45-55
# - tests/integration.test.ts:120-125
# [>] Sending to Copilot for multi-hypothesis analysis...
# (This may take 30-60 seconds)
# [+] Received response from Copilot
# ... (complete transparency continues)Cosmetic fixes to align all user-facing messages with the SDK-based architecture.
- Error Messages: Updated all "Copilot CLI" references to "Copilot SDK"
CopilotErrornow shows "Copilot SDK error:" prefix- Auth check shows "GitHub Copilot SDK: Available/Not available"
- Install hint updated to
npm install @github/copilot-sdk
- README: Updated architecture diagram label "Copilot Chat API" → "Copilot SDK"
- README: Renamed section "Five Layers of Copilot CLI Usage" → "Five Layers of Copilot SDK Usage"
- CHANGELOG: Removed duplicate section header
This release represents the culmination of our SDK migration journey - a complete, battle-tested integration with comprehensive resource management and test coverage.
- Full SDK Lifecycle Management: All resource leaks eliminated
- Test Coverage Solidified: 4 dedicated SDK tests with proper mocking
- Production Robustness: Timer cleanup, promise reset, race condition handling
-
[LOW-1] Timeout Timer Leak:
clearTimeout(timeoutId)now called on both success and error paths- File:
async-exec.ts:229-255 - Impact: No orphan timers in long-running sessions
- File:
-
[LOW-2] SDK Client Promise Reset:
_sdkClientPromise = nullon initialization failure- File:
async-exec.ts:52-56 - Impact: Retry capability after transient network failures
- File:
-
[LOW-3] closeSdkClient Race Condition: Await pending init before cleanup
- File:
async-exec.ts:63-76 - Impact: Clean shutdown even during initialization
- File:
-
[LOW-4] Test Mock Isolation:
resetMocks()in beforeEach- File:
async-exec.test.ts:4,17 - Impact: No test pollution between runs
- File:
- SDK session lifecycle:
createSession()→send()→destroy()(always in finally block) - Timer management: Store
timeoutId, clear in both try/catch paths - Promise state: Reset to
nullon rejection to enable retry - Shutdown sequence: await
_sdkClientPromise→ stop_sdkClient→ reset promise
This release marks a pivotal architectural shift and comprehensive hardening of the codebase.
Initially, we attempted to use gh copilot chat CLI subprocess spawning. However, extensive testing revealed this approach was fundamentally broken - the Copilot CLI extension does not support programmatic subprocess invocation the way we needed.
What we tried:
spawn('gh', ['copilot', 'chat', ...])- No interactive mode support- Piped stdin/stdout - Response capture failed
- Various timeout strategies - All ended in silent failures
The discovery: After researching official GitHub documentation and the Copilot CLI Challenge requirements, we discovered the @github/copilot-sdk - the proper way to integrate Copilot programmatically.
The migration:
- Complete rewrite of
async-exec.tsfrom subprocess spawning to SDK client - Session management with proper lifecycle (create → use → destroy)
- Native promise-based async/await patterns
This journey demonstrates real-world engineering: recognizing when an approach is fundamentally flawed, researching alternatives, and executing a clean migration.
-
@github/copilot-sdk Integration: Official SDK for Copilot API access
- Singleton client pattern with lazy initialization
- Per-request session management
- Native timeout and retry handling
-
Resource Leak Prevention:
- Timeout timer cleanup on both success and error paths
_sdkClientPromisereset on initialization failure (enables retry)closeSdkClient()race condition handling (await pending init before cleanup)
-
Test Infrastructure for SDK:
__mocks__/@github/copilot-sdk.ts- Complete mock implementationresetMocks()helper for test isolation- Dedicated SDK test cases (session destroy, empty response, timeout)
-
[S1] Global Install Support: Changed
process.cwd()toPACKAGE_ROOTfor prompt/schema loading- Files:
analyze.ts,patch_options.ts,debug.ts(7 occurrences) - Impact: CLI now works when installed globally via
npm install -g
- Files:
-
[S2] qualityReview() Crash Prevention: Added try-catch for JSON parsing
- File:
patch_options.ts:145-159 - Impact: Returns safe default instead of crashing on malformed Copilot responses
- File:
-
[S3] debugInteractive() Crash Prevention: Added try-catch with session recovery
- File:
debug.ts:66-79 - Impact: User can retry instead of losing debug session
- File:
-
[S4] JSON Extraction Data Corruption: Replaced greedy regex with balanced brace parser
- File:
util.ts:63-104 - Impact: No more silent JSON corruption from trailing text in Copilot responses
- File:
-
[S5] Over-Aggressive Secret Redaction: Removed 40+ char alphanumeric pattern
- File:
util.ts:40 - Impact: Git SHAs, npm hashes, and diagnostic data preserved for analysis
- File:
-
[M1] MCP Token Configuration: Fixed literal string bug in all code paths
- File:
mcp.ts:110,124,139 - Impact: MCP authentication now works for first-time users
- File:
-
[M3] File Path False Positives: Stricter regex with extension whitelist
- File:
context-enhancer.ts:21-31 - Impact: Fewer wasted API calls, cleaner prompt context
- File:
- [M2] interactiveApply() hardcoded choice: Deprecated function, low impact
- [M4] confidence_score type mismatch: Best-effort mode handles gracefully
- [L1-L3] Code cleanup: Optional improvements for future release
- SDK Version: @github/copilot-sdk ^0.1.23
- Model: gpt-4o (configurable via
COPILOT_MODELenv var) - Audit Reference:
PATCH_REPORT.md(SIDRCE SaaS v1.1.6) - Test Results: 41 passing, 18 skipped, 0 failures
- Build: Clean TypeScript compilation
- PACKAGE_ROOT: Uses
__dirnamefor CommonJS compatibility
npm install
npm run build
npm test
# ✅ Test Suites: 4 passed, 1 skipped, 5 total
# ✅ Tests: 41 passed, 18 skipped, 59 total
# ✅ Exit code: 0Key Point: This project uses the official @github/copilot-sdk for Copilot integration, not CLI subprocess spawning. This is the correct approach per GitHub's official documentation.
This release marks production readiness with comprehensive test improvements and enhanced error resilience.
- [CRITICAL] Null-safe error handling in
copilotChatAsync- prevents crash on unexpected error types - [QUALITY] Test suite now passes cleanly: 38 passing, 18 documented skips, 0 failures
- [CI/CD] Removed
continue-on-error: truefrom GitHub Actions workflow - [RESILIENCE] Enhanced JSON parsing with graceful fallback and user-friendly error messages
- [RESILIENCE] Added 3-layer defense against malformed LLM responses
- Error Messages: All Copilot errors now include actionable hints (e.g., "Run: gh auth login")
- Schema Validation: Best-effort fallback mode when non-critical fields are missing
- Test Documentation: Added
TEST_SUITE_UPDATE.mdexplaining test philosophy - Resilience Strategy: New
docs/RESILIENCE_STRATEGY.mddocumenting error handling approach
- Test Strategy: Migrated from brittle mocks to documented integration test skips
- 38 unit tests verify core logic (100% passing)
- 18 integration tests skipped with manual verification protocols
- Quality Review: Improved mock reliability in patch_options tests
- CI Signal: Tests now properly fail CI when broken (no silent failures)
- NEW:
TEST_SUITE_UPDATE.md- Comprehensive test suite changes and justification - NEW:
TESTING_PHILOSOPHY.md- Real-world first testing approach - NEW:
docs/RESILIENCE_STRATEGY.md- Error handling and LLM failure mitigation - UPDATED:
TEST_STATUS.md- Current test status with skip explanations
- Test Coverage: 38/38 critical path tests passing
- Exit Code: Clean exit (0) on
npm test - Build: TypeScript compilation clean with strict mode
- Integration: Manual verification protocols for all skipped tests
npm install
npm run build
npm test
# ✅ Test Suites: 4 passed, 1 skipped, 5 total
# ✅ Tests: 38 passed, 18 skipped, 56 total
# ✅ Exit code: 0- [CRITICAL] Replaced blocking
execSyncwith asynccopilotChatAsyncin debug.ts to prevent event loop blocking - [CRITICAL] Fixed debug transcript logging - now properly records Q&A pairs instead of empty templates
- Enhanced MCP installation error messages with detailed troubleshooting guidance
- Improved diff parsing to handle binary files, whitespace changes, and complex hunks
- Better npm permission failure diagnostics for corporate/restricted environments
- Debug interactive mode now fully asynchronous for better responsiveness
- MCP setup provides clearer feedback for permission and PATH issues
- Patch application more robust against edge cases (binary diffs, unusual formatting)
- Defensive Programming: Added null-safe handling for
slop_scorein patch output to prevent crashes - Test Alignment: Updated test mocks to match actual runtime behavior
- Fixed
copilotChatAsynccommand expectations in async-exec tests - Corrected
fetchRunContextmock call order in github tests - Improved quality review mock completeness
- Fixed
- Test pass rate improved from 56% to 70% (39/56 passing)
- Reduced failures from 24 to 16
- Production code remains fully functional
- [CRITICAL] Fixed allowlist enforcement: patch_options now extracts affected files and passes them to applyPatchViaDiff
- [CRITICAL] Enhanced diff parsing to detect deletions, renames, and modifications (not just additions)
- [CRITICAL] Added deprecation warning to legacy autoHeal() text-replacement method
- [SECURITY] Improved path safety validation using path.relative() for cross-platform consistency
- [SECURITY] Enhanced MCP config merging to preserve existing non-mcpServers settings
- [COMPATIBILITY] Replaced all Unicode checkmarks with ASCII equivalents for cp949 compatibility
- applyPatchViaDiff now validates all diff operations (add/modify/delete/rename) against allowlist
- Path safety checks now use path.relative() to prevent Windows case sensitivity issues
- Legacy autoHeal() now emits deprecation warnings directing users to CLI --auto-heal mode
- All console output converted to ASCII-safe characters ([+] instead of ✓)
- Closed path traversal vulnerability in diff application
- Strengthened allowlist enforcement across all patching operations
- Added comprehensive validation for delete and rename operations in diffs
- Core Analysis Engine: Multi-hypothesis reasoning system for CI/CD failure root cause analysis
- Patch Generation: Three-strategy patch options (Conservative, Balanced, Aggressive) with risk assessment
- Auto-Heal Mode: Automated patch application with retry logic and CI verification
- MCP Integration: Model Context Protocol support for enhanced repository context
- Anti-Slop Detection: Quality scoring system to detect and flag AI-generated bloat
- Sovereign AI Philosophy: Full transparency with audit trails and user control
- Beautiful CLI UI: Color-coded dashboard with confidence indicators and progress spinners
- Comprehensive Testing: 43 tests covering async execution, analysis, patch generation, and auto-apply
- Security Features: Secret redaction, path validation, and safe file operations
- GitHub Actions CI/CD: Automated testing and build verification
- Fetch and analyze GitHub Actions failure logs via
ghCLI - Generate structured analysis with hypothesis ranking and confidence scores
- Create multiple patch strategies with quality verdicts
- Interactive patch selection or automatic lowest-risk application
- Real-time CI status monitoring with retry logic
- Deep context injection using repository structure and source code
- Debug mode for interactive troubleshooting
- Persistent audit logs for all AI interactions
- Complete README with architecture diagrams (Mermaid)
- API documentation and usage examples
- Security policy and vulnerability reporting guidelines
- Contributing guidelines for community collaboration
- Before/After impact analysis
- Visual storyboard and demo scenarios
- Language: TypeScript 5.x
- Runtime: Node.js 18+
- Dependencies:
- GitHub CLI (
gh) for repository integration - GitHub Copilot CLI for AI-powered analysis
- Chalk, Ora for terminal UI
- Jest for testing
- GitHub CLI (
- Architecture: Modular engine design with clear separation of concerns
- Requires GitHub CLI authentication (
gh auth login) - Requires GitHub Copilot CLI installation
- Auto-heal mode requires git repository context
- MCP configuration may override existing Copilot CLI settings
- All logs are sanitized before AI processing
- Path validation prevents directory traversal attacks
- No credentials stored in project files
- Audit trails maintained for compliance
Full Changelog: https://github.com/flamehaven01/copilot-guardian/commits/main