aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Expand)AuthorFilesLines
16 hoursdocs: record the fourth property and the contacts commandDanilo M.4-33/+170
16 hourstest: make the offline resolve check tamper-evidentDanilo M.1-0/+7
16 hourstest: prove the suite still opens no socketDanilo M.1-0/+76
16 hoursfix: keep ":" literal so an IPv6 query is not over-encodedDanilo M.2-10/+34
16 hoursfeat: add the contacts subcommandDanilo M.2-1/+126
16 hoursfix: percent-encode the component interpolated into an RDAP queryDanilo M.2-2/+112
16 hoursfix: refuse an ipv6 scope id, and say why a value was refusedDanilo M.2-11/+112
16 hoursfix: validate a query host at the one point a query is admittedDanilo M.2-1/+152
16 hourstest: make two rdap tests able to fail, and cover the hostile bootstrapDanilo M.1-2/+106
16 hoursfix: treat the IANA bootstrap as hostile, not as trusted inputDanilo M.1-9/+60
17 hoursfeat: resolve the worklist to abuse contactsDanilo M.2-0/+186
17 hoursfeat: build the contacts worklist, host onlyDanilo M.2-0/+221
17 hoursdocs: correct the Accept header and the dependency claimDanilo M.2-6/+11
17 hoursdocs: amend the contacts plan after task 1 to 5Danilo M.1-4/+26
17 hoursfeat: query RDAP, walking up the labels for a registrable domainDanilo M.2-0/+133
17 hoursfeat: read abuse addresses from a jCard, strictlyDanilo M.2-0/+172
17 hoursfeat: select an RDAP server by longest prefix and by TLDDanilo M.2-0/+103
17 hoursfeat: cache the IANA bootstrap, and prefer a stale copy to noneDanilo M.2-0/+132
17 hoursfeat: add the RDAP transport, with a redirect cap and no downgradeDanilo M.2-0/+128
17 hoursdocs: plan the contacts implementationDanilo M.2-4/+1989
17 hoursdocs: spec the contacts subcommandDanilo M.2-0/+349
33 hoursdocs: record the real-mail sweep and open a backlogDanilo M.2-0/+78
33 hoursfeat: report List-Unsubscribe urls and a differing SenderDanilo M.4-2/+53
33 hoursfeat: flag an address spoofed into a display nameDanilo M.2-1/+64
33 hoursfix: take the sender domain from the address, not the display nameDanilo M.3-4/+38
35 hoursfix: prefer the observed address over an attacker's HELO literalDanilo M.2-9/+49
35 hoursfix: re-bracket an IPv6 host when stripping URL userinfoDanilo M.2-2/+24
35 hoursfix: redact a valueless query token whole, not as a kept nameDanilo M.3-5/+63
35 hourstest: wire leaky.eml into the anti-leak suite (red, defect 2)Danilo M.2-1/+29
35 hoursdocs: AGENTS.md, with CLAUDE.md pointing at itDanilo M.2-0/+259
35 hoursdocs: README covers init and parseDanilo M.1-10/+83
35 hoursfix: validate each setup answer at the prompt that asked for itDanilo M.1-34/+101
36 hoursfeat: command line for init and parseDanilo M.3-0/+401
36 hoursfeat: first-run config builderDanilo M.2-0/+480
36 hoursfix: reject non-list relays and empty cases valuesDanilo M.2-2/+49
36 hoursfeat: read and validate the configDanilo M.2-0/+174
36 hoursrefactor: one URL scan serving both the report and the flaggingDanilo M.1-29/+24
36 hoursfeat: assemble IOCs in the manifest's shapeDanilo M.2-0/+168
36 hoursfeat: case directory with an atomically written manifestDanilo M.2-0/+234
36 hoursfeat: extract URLs and attachment hashes, fetching nothingDanilo M.2-0/+181
36 hoursfeat: extract sender domains and auth verdictsDanilo M.2-1/+100
36 hoursfeat: walk the Received chain to the trust boundaryDanilo M.2-0/+182
36 hoursfix: redact fragment and strip userinfo, flag hidden query in pathDanilo M.2-11/+111
36 hoursfeat: redact recipient identifiers inside URLsDanilo M.2-0/+211
36 hourstest: fixtures for the parser, documentation ranges onlyDanilo M.4-0/+81
36 hoursfeat: package skeletonDanilo M.3-0/+45
36 hoursplan: add Namecheap Private Email to the provider tableDanilo M.1-0/+26
37 hoursplan: take the provider ranges from SPF, not from memoryDanilo M.1-16/+88
37 hoursplan: implementation plan for init and parseDanilo M.2-2/+2404
37 hoursspec: retry deferred destinations from cron, not by handDanilo M.1-12/+123