Skip to content

chore(release): v0.16.1 - #202

Merged
ralyodio merged 1 commit into
mainfrom
release-0.16.1
Aug 1, 2026
Merged

chore(release): v0.16.1#202
ralyodio merged 1 commit into
mainfrom
release-0.16.1

Conversation

@ralyodio

@ralyodio ralyodio commented Aug 1, 2026

Copy link
Copy Markdown
Contributor

v0.16.0 didn't fix what its notes claimed. This releases the version that does.

Why v0.16.0 was a no-op

It shipped the catch-all generators, upstream parsing and the forwarding path — and wired none of them in. dns enable still called resolvedConf(tlds).

Confirmed on a live box after upgrading to v0.16.0:

✓ moshcode@0.16.0 installed
$ moshcode dns enable        # as root
Routing covers the 4882 TLDs claimed right now ... every TLD is listed
$ curl -I http://chovy.hacker
curl: (6) Could not resolve host: chovy.hacker

Written 4,586 · accepted by the resolver 1,090. My error, and my release notes were wrong.

What's in this one

#200 wires it, and makes it conditional rather than assumed:

upstreams found routing written worst case
yes Domains=~. + forwarding Moshpit names fail
no per-ending list, as before Moshpit names fail

Upstreams are read from /etc/resolv.conf before routing is switched — afterwards it may point at the bridge, and the real servers are no longer discoverable. Loopback entries are dropped so it can't forward to itself. Neither branch can take the box off the internet.

#201 keeps the resolver up when its socket errors after bind.

The list is degrading on its own

4,593 endings this morning · 4,882 by the afternoon · resolver cap ~1,090. Every claim makes the per-ending approach worse, which is why the fix isn't "raise the limit".

After merge

gh release create v0.16.1 --repo moshcoder/moshcode --generate-notes

Until that exists, install.sh keeps serving v0.16.0.

🤖 Generated with Claude Code

v0.16.0 shipped the catch-all routing machinery and wired none of it in,
so upgrading to it changed nothing: `dns enable` still wrote every claimed
ending onto one `Domains=` line, systemd-resolved still accepted about
1090 of them and dropped the rest without an error a caller could see, and
`curl <name>` still could not resolve. The release notes said routing had
stopped being a list. It had not.

#200 wires it, and makes it conditional rather than assumed: the upstreams
are read from /etc/resolv.conf before routing is switched, and catch-all
is only written when there is somewhere to forward. With no upstreams the
per-ending list stays, because pointing every lookup at a bridge that
cannot forward takes the machine's DNS with it rather than just Moshpit
names.

#201 keeps the resolver up when its socket errors after bind.

The list is also getting worse on its own: 4593 endings this morning, 4882
by the afternoon, against a resolver cap near 1090.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@github-actions

github-actions Bot commented Aug 1, 2026

Copy link
Copy Markdown

vu1nz Security Review

0 finding(s) in PR #?

No security issues found.

@ralyodio
ralyodio merged commit ac9460d into main Aug 1, 2026
3 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