Skip to content

feat(diagnose): complete M2 collectors and six rules - #1

Merged
Shellghostt merged 1 commit into
mainfrom
feat/m2-implementation
Nov 14, 2026
Merged

Shellghostt merged 1 commit into
mainfrom
feat/m2-implementation

Conversation

@Shellghostt

Copy link
Copy Markdown
Owner

What this changes

Completes M2 collectors and rules: runtime, requested TCP-port, Git and local Docker inspection; diagnostic rules ENV001–ENV006; --port; and offline --fixture-dir diagnosis. Adds 54 Windows/Linux/macOS golden cases, built-CLI tests and rule documentation. Fixes collector deadlines, home-path redaction and degraded PATH inspection.

Why

M1 collected environment facts but lacked the first actionable diagnostic rules. M2 identifies Python/Node conflicts, broken or shadowed PATH entries, occupied requested ports and unavailable Docker engines. ADR 0004 defines collection, evidence and offline diagnosis. Diagnosis remains read-only.

How it was verified

Executed commands and selected output:

$ go test -race -count=1 -timeout=120s ./...
ok  github.com/shellghostt/envdoctor/internal/diagnostic  1.069s
ok  github.com/shellghostt/envdoctor/internal/system      2.207s
ok  github.com/shellghostt/envdoctor/tests/integration   2.739s

$ golangci-lint run --timeout=10m
0 issues.

$ govulncheck ./...
No vulnerabilities found.

All CI jobs passed, including Windows/Linux/macOS race tests. Validation also covered all 54 fixture cases through the built CLI, live TCP ownership checks and snapshot builds for six platform/architecture targets.

Checklist

  • Tests added or updated for the new behaviour
  • Formatting, vet and golangci-lint checks used by make lint pass
  • Documentation updated (docs/, README roadmap, snapshot schema and CHANGELOG)
  • Documented decision changes recorded in docs/adr/0004-m2-collectors-and-rules.md
  • No claims of unverified behaviour: status fields still match reality
  • No secrets, tokens or customer data added; fixtures are synthetic

@Shellghostt
Shellghostt merged commit c7e2c84 into main Nov 14, 2026
10 checks passed
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.

1 participant