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
multica-agent
d6063eb636
feat: DNS host selection - fix code review issues (HAN-400) ( #19 )
CI / test (push) Failing after 1m58s
2026-06-08 03:25:37 +00: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 Hansen and multica-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
Gary and multica-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
Gary and multica-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
Gary and multica-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
Gary and multica-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
Gary and multica-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
Gary and multica-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