Commit Graph
32 Commits
Author SHA1 Message Date
3bd2815bd4 Fix code review issues: timeouts, RootHints fallback, upstream validation, Unix comment
CI / test (pull_request) Failing after 1m30s
- Fix ReadTimeout/WriteTimeout to use 5*time.Second instead of 5 (nanoseconds)
- Add RootHints fallback in DiscoverRoots() when queryResolver fails
- Validate --dns-upstream is a valid host:port in Config.Validate()
- Update systemResolver() comment to note it is Unix-only (/etc/resolv.conf)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-06-08 13:19:58 +10:00
87898d5eb3 feat: DNS host selection - system resolver, --dns-upstream flag, root hints
- Replace hardcoded 127.0.0.1:53 in systemResolver() with actual system
  DNS from /etc/resolv.conf (falls back to 127.0.0.1:53 if unavailable)
- Add Resolver field to RootDiscoveryConfig so callers can override the
  upstream resolver used during root server discovery
- Add --dns-upstream flag (e.g. --dns-upstream 8.8.8.8:53) to exploredns
  CLI and DNSUpstream field to Config
- Add internal/dns/hints.go with all 13 IANA root server IPv4/IPv6
  addresses as embedded constants (RootHints []RootServer)
- Update tests: fix real_exchange_test.go call site; add hints_test.go
  covering RootHints correctness and resolver helper functions

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-06-08 13:10:22 +10:00
multica-agent 93959c9f11 fix: API quality fixes from code review (HAN-398) (#17)
CI / test (push) Failing after 1m21s
2026-06-07 18:52:18 +00:00
multica-agent 2fe8adcfcc feat: web frontend SPA for ExploreDNS (HAN-388) (#18)
CI / test (push) Failing after 1m22s
2026-06-07 18:47:17 +00:00
multica-agent e59597a191 feat: HTTP API server with SSE and SPA serving (HAN-389) (#16)
CI / test (push) Failing after 4m55s
2026-06-07 18:31:28 +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
multica-agent bb3e9d3e36 Merge pull request 'docs: comprehensive documentation (HAN-387)' (#15) from feat/han-387-documentation into main
CI / test (push) Failing after 1m20s
2026-06-07 18:10:22 +00: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
multica-agent 35be7539b4 Merge pull request 'feat: implement output formatting and display (HAN-383)' (#9) from agent/go-expert-developer/f3b1b7cf into main
CI / test (push) Has been cancelled
2026-06-07 16:40:00 +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
multica-agent 876542b2de feat: implement CLI flags and configuration handling (HAN-382) (#8)
CI / test (push) Failing after 3m57s
2026-06-07 16:08:39 +00:00
gary feb5c68b39 feat: implement referral resolution for nameserver names without glue records (HAN-381) (#7)
CI / test (push) Failing after 2m58s
Co-authored-by: Hansen IT Solutions <gary@hansenits.com>
Co-committed-by: Hansen IT Solutions <gary@hansenits.com>
2026-06-07 06:09:49 +00:00
gary 39529dacbb feat: implement traversal engine (HAN-380) (#6)
CI / test (push) Failing after 1m26s
Co-authored-by: Hansen IT Solutions <gary@hansenits.com>
Co-committed-by: Hansen IT Solutions <gary@hansenits.com>
2026-06-06 03:41:14 +00:00
gary 194bc97526 Merge pull request 'feat: implement CachingResolver with per-server query caching' (#5) from agent/go-expert-developer/f5bcb2fe into main
CI / test (push) Failing after 3h13m21s
Reviewed-on: http://gitea.hansenits.com.au/hits/ExploreDNS/pulls/5
2026-06-05 06:05:01 +00:00
Garyandmultica-agent db3ad498f6 feat: implement CachingResolver with per-server query caching
CI / test (pull_request) Failing after 3h13m39s
Add Resolver interface, BasicResolver, and CachingResolver to internal/dns.

CachingResolver wraps any Resolver with an in-memory cache keyed by
(server IP, name, type, class). Cache entries respect DNS TTL from
responses, falling back to a configurable default TTL. Thread-safe
using sync.RWMutex. Includes Len, Clear, and PurgeExpired methods
for cache management.

Closes HAN-379 (Phase 2.2).

Co-authored-by: multica-agent <github@multica.ai>
2026-06-05 15:58:46 +10:00
gary 6a3cdb9abe Merge pull request 'feat: implement root server discovery (HAN-378)' (#4) from agent/go-expert-developer/beb90b99 into main
CI / test (push) Has been cancelled
Reviewed-on: http://gitea.hansenits.com.au/hits/ExploreDNS/pulls/4
2026-06-05 05:52:28 +00:00
Garyandmultica-agent 924fcbd43a feat: implement root server discovery (HAN-378)
CI / test (pull_request) Failing after 1m17s
Add RootServer struct and DiscoverRoots function that queries the local
resolver for NS records of the root zone, resolves each root name to
A/AAAA addresses, and returns a list of RootServer structs.

Supports:
- Default: discovers a single root server from local resolver
- --root-server override to target a specific root server
- --all-root-servers to discover all 13 root servers
- --root-aaaa flag to include IPv6 addresses

Includes unit tests for all helper functions and integration tests
that skip gracefully when no resolver is available.

Co-authored-by: multica-agent <github@multica.ai>
2026-06-05 15:44:59 +10:00
gary 42a37adbee Merge pull request 'feat: add DNS query/response layer with miekg/dns' (#3) from agent/go-expert-developer/ad0c58a4 into main
CI / test (push) Has been cancelled
Reviewed-on: http://gitea.hansenits.com.au/hits/ExploreDNS/pulls/3
2026-06-05 05:37:38 +00:00
Gary 2338abd14f Merge remote-tracking branch 'origin/main' into agent/go-expert-developer/8e316e05
CI / test (pull_request) Failing after 3h12m56s
# Conflicts:
#	go.mod
#	go.sum
2026-06-05 15:34:57 +10:00
Garyandmultica-agent 596f0da9e1 chore: remove GitHub Actions CI workflow (replaced by Gitea Actions)
CI / test (push) Has been cancelled
Co-authored-by: multica-agent <github@multica.ai>
2026-06-05 15:33:45 +10:00
gary 2df1bd1830 Merge pull request 'ci: add Gitea Actions workflow for unit tests' (#2) from agent/gitea-repo-manager/80a0aac3 into main
CI / test (push) Has been cancelled
Reviewed-on: http://gitea.hansenits.com.au/hits/ExploreDNS/pulls/2
2026-06-05 05:30:38 +00:00
Garyandmultica-agent 33ef99aca3 ci: add Gitea Actions workflow for Go unit tests
CI / test (pull_request) Failing after 3h10m14s
Co-authored-by: multica-agent <github@multica.ai>
2026-06-05 15:27:53 +10:00
gary c16b153a6e Merge pull request 'feat: Go project scaffolding - module init, directory structure, CLI skeleton, Makefile, CI' (#1) from agent/go-expert-developer/32986165 into main
CI / build (push) Has been cancelled
Reviewed-on: http://gitea.hansenits.com.au/hits/ExploreDNS/pulls/1
2026-06-05 05:22:24 +00:00
Garyandmultica-agent fce7920611 feat: add DNS query/response layer with miekg/dns
Phase 1.2 implementation:

- internal/dns/types.go: DNS record type constants (A, AAAA, NS, CNAME, SOA,
  MX, TXT, SRV, PTR, ANY) with QNameType helper and EDNS0 defaults
- internal/dns/query.go: Query/QueryWithExchange with UDP, configurable
  EDNS0 buffer size, TCP fallback on truncation, always-TCP mode, configurable
  retries with timeout, context support, and injectable ExchangeFunc for testing
- internal/dns/decode.go: Response classification (answer, referral, NODATA,
  NXDOMAIN, SERVFAIL), CNAME chain extraction with dedup, truncation/RCODE
  detection, and section extraction utilities

32 unit tests covering all acceptance criteria.

Co-authored-by: multica-agent <github@multica.ai>
2026-06-05 15:14:56 +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
gary afdf7df891 Initial commit 2026-06-05 04:49:39 +00:00