Mist is our DNS isolation element - the Hickory-DNS-backed authoritative server
that resolves *.editor.land to loopback so the editor's private network
traffic never leaks to an external resolver. This file records what we built in
our voice, version by version. Format adapted from
Keep a Changelog.
We tightened Mist's API surface and brought it in line with the project's naming rules during the workbench-lift cycle.
- CHANGELOG documenting version history (
58cc381, 2026-04-17). - README expansion with comprehensive technical documentation (
86604bf, 2026-04-05) and a benefit-focused rewrite pass (44e1fd8,7317fff, 2026-04-04). ASCII architecture diagram fixed (764059f, 2026-04-06). - Crate-level rustdoc rewritten benefit-first in
Library.rs(a98d940, 2026-04-04).
- Hickory-server upgraded to 0.26 API (
160d79e, 2026-04-22). - Library renamed
mist→Mist(b681ca8, 2026-04-18) for PascalCase compliance:Cargo.tomllib name, the clippy-allow attribute relocated to the module doc, and integration tests updated to use direct module paths (Server,Zone,Resolver,ForwardSecurity) instead of the flattenedMist::re-exports. - Integration-test import paths refactored end-to-end (
9b1633d, 2026-04-18). - Non-snake_case identifiers allowed at module scope (
94e88d1, 2026-04-27) so the PascalCase rename doesn't trip clippy. - Consistent Rust formatting applied to the DNS module (
42f97d1, 2026-04-11).
The pivotal cycle. Mist was introduced as a brand-new element on 2026-02-27 to give the fleet a private DNS surface.
- DNS isolation element for the Land private network (
6db973f, 2026-02-27). A complete DNS server built on Hickory DNS that creates a secure sandbox resolving*.editor.landexclusively to 127.0.0.1 - all private network communication stays local and cannot leak.Server.rs- Hickory DNS server, UDP/TCP listeners bound exclusively to loopback with comprehensive security validation.Zone.rs- authoritative zone config foreditor.landwith SOA, NS, A records all pointing at loopback.Resolver.rs-LandDnsResolverimplementingreqwest::dns::Resolvefor HTTP-client integration with defense-in-depth IP validation.ForwardSecurity.rs- forward allowlist restricting external DNS queries to trusted domains (update.editor.land,cdn.crashlytics.com).Library.rs- public API:Start()andDnsPort().
- Integration: Mountain starts the DNS server during init and exposes the
port via
DnsPortmanaged state; Air uses it for secure HTTP; SideCar spawns Node.js sidecars with DNS override configuration; Cocoon resolveseditor.landfor its gRPC link to Mountain through this server.
- TODOs reclassified as DEPENDENCY comments for Hickory DNS (
50f8db4, 2026-03-04). Surviving TODOs now track upstream work, not local stalls. - Lint-attribute fixes applied (
addf979, 2026-03-04). - Redundant
#[must_use]removed fromStart()(6b5183f, 2026-03-04).
Mist existed as a placeholder repository through this entire window. Five total
commits, all unlabelled scaffolding pushes (a351282 2025-04-16, 24fbde8
2025-06-02, de354f6 2025-06-09 README deletion, 49bd47e 2025-09-12,
e9428e0 2026-01-26). The DNS implementation arrived in v2.0 with the
2026-02-27 introduction above.
Repository created April 2025 as a placeholder for what would eventually become
the DNS isolation element. The architectural slot existed in the fleet diagrams;
the substance landed nine months later when we needed a way to keep
editor.land traffic on loopback.