Commit Graph
12 Commits
Author SHA1 Message Date
3da28da9a2 Fix NS resolution, deduplicate results, fix FormatRecord duplication
CI / test (pull_request) Failing after 2m31s
Three bugs fixed:

1. processReferral was calling ResolveNS with ref.Name (the query domain,
   e.g. '800adventures.com.au.') instead of ref.Bailiwick (the NS hostname,
   e.g. 'ns-a.hansenits.com.'). This caused the sub-traversal to look up the
   wrong name and always fail to find the nameserver's IP address.

2. In ResolveNS (and Referral.Resolve), child referrals whose name matched the
   visited set were unconditionally skipped. When the .com TLD returns glue A
   records for the target NS alongside its delegation, the child referral has
   addresses and should be queried directly rather than skipped.

3. FormatRecord was prepending the DNS header fields and then appending
   rr.String() which already includes those same fields, producing doubled
   output like 'example.com. 300 IN A example.com. 300 IN A 1.2.3.4'.
   Now simply returns rr.String().

Additional improvements:
- Results section deduplicates terminal results: same NS failure or same
  (NS, answer) pair is merged with summed probability, avoiding the same
  nameserver appearing 15 times with 6.7% each.
- Result lines now include the NS hostname (from Bailiwick) and use the
  compact rdata format, e.g. '33% ns-a.hansenits.com answered with 13.54.63.231'.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-06-08 18:07:38 +10:00
multica-agent 25e6039bde Improve DNS output: distinguish NS resolution failures from domain errors (#20)
CI / test (push) Failing after 2m19s
2026-06-08 05:59:33 +00:00
dd667f734c fix: remove duplicate test declarations from PR #12/#13 conflict
CI / test (push) Has been cancelled
Phase 4.2 (PR #12) and test coverage improvement (PR #13) independently
added overlapping test functions. Remove duplicates from PR #13 files:

- internal/dns/iterative_test.go: remove TestExtractNSNames,
  TestExtractNSNamesEmpty, TestIterativeQueryWithExchangeSuccess,
  TestIterativeQueryWithExchangeNilResponse, TestIterativeQueryWithExchangeTCPFallback
  (kept in roots_test.go and query_test.go from PR #12)
- internal/output/coverage_test.go: remove TestRRDataStringDefault,
  TestContainsString, TestCollectUniqueServerIPs, TestNewFormatterNilWriter
  (kept in stats_test.go and formatter_test.go from PR #12)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-06-08 04:30:06 +10:00
dbd9322a1b test: merge PR #13 test coverage improvements into main
Resolves merge conflicts between Phase 4.2 comprehensive test suite and
the test coverage improvement branch:
- config_test.go: take PR's better table-driven tests + keep main's extra tests
- coverage_test.go: keep main's Phase 4.2 comprehensive tests

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-06-08 04:24:56 +10:00
ee20ed51f6 docs: comprehensive documentation for HAN-387
CI / test (pull_request) Failing after 1m19s
- README.md: full project overview, installation, quick start, CLI reference,
  output format descriptions, architecture overview, and dnstraverse comparison
- GoDoc: package-level documentation for traverse, dns, config, output, and
  fingerprint packages
- GoDoc: TraverserConfig and TraversalResult type comments in traverser.go

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-06-08 04:05:15 +10:00
45e15297f4 test: improve coverage to >80% on all core packages
CI / test (pull_request) Failing after 2m11s
Add comprehensive test coverage for internal packages:

- internal/config: 66.2% → 98.5%
- internal/dns: 67.8% → 84.3%
- internal/output: 48.8% → 89.1%
- internal/traverse: 56.3% → 86.9%

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-06-08 03:57:29 +10:00
multica-agent e6e07941a5 feat: comprehensive test suite (Phase 4.2) (#12)
CI / test (push) Failing after 1m30s
2026-06-07 17:54:15 +00:00
multica-agent fe1afe2a97 Phase 4.1: Error handling, edge cases, and robustness (#11)
CI / test (push) Failing after 2m36s
2026-06-07 17:24:00 +00:00
multica-agent 76f5010a5e feat: implement DNS server fingerprinting (HAN-384) (#10)
CI / test (push) Has been cancelled
2026-06-07 16:56:51 +00:00
8e7beacc22 fix: address code review issues on PR #9
CI / test (pull_request) Waiting to run
- gofmt main.go to fix tab indentation in main() body
- stats.go ComputeSummary: return nil when Answers and ByType are empty
- dns/types.go: remove duplicate ParseQueryType (dead code)
- formatter.go: log hook errors to stderr when Debug > 0; add Debug to Config
- text.go referralID: remove redundant depth==0 branch
- text.go writeServers: remove version lookup placeholder string

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-06-08 02:32:58 +10:00
Gary Hansenandmultica-agent 5a54834c5f feat: implement output formatting and display (HAN-383)
CI / test (pull_request) Failing after 2m2s
Add text and JSON formatters with real-time progress via traverser hooks,
summary statistics, and CLI integration for --show-* and --json flags.

Co-authored-by: multica-agent <github@multica.ai>
2026-06-08 02:21:13 +10:00
Garyandmultica-agent 8090182e1a feat: Go project scaffolding - module init, directory structure, CLI skeleton, Makefile, CI
CI / build (pull_request) Failing after 3h1m44s
Co-authored-by: multica-agent <github@multica.ai>
2026-06-05 15:08:29 +10:00