AkurAI Build
Menu

Public repository / 2f952519db76ba7dd8b099a09ebda909d137ea5e

AkurAI-VPN / CHANGELOG.md

Latest change 2f952519db76ba7dd8b099a09ebda909d137ea5e - feat: scaffold pure-Rust zero-dep AkurAI VPN workspace (v0.0.1) by Ólafur Búi Ólafsson

# Changelog

All notable changes to AkurAI VPN are documented here.
The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

Entries below the `## [Unreleased]` heading are maintained by hand during
development; `deploy.sh` cuts them into a versioned, dated section on release.

## [Unreleased]

### Added
- **Workspace scaffold** (pure-Rust, zero runtime dependencies) — a six-crate
  Cargo workspace for AkurAI VPN: a secure, one-touch mesh VPN overlay. Mirrors
  the AkurAI-Framework conventions (`[workspace.package]` version inheritance,
  `[profile.release]`, `rust-toolchain.toml`, `VERSION`, Keep-a-Changelog,
  `deploy.sh` release engine). The shipped binaries link no third-party crates —
  `std` only.
- **`akurai-common`** (lib, pure std) — the shared vocabulary of the overlay:
  `NodeId` (16-byte hex) and an opaque, cryptography-free `MachineKey`
  placeholder; overlay constants (`akurai0`, MTU 1280, IPv4 `100.88.0.0/16`,
  IPv6 `fd88::/48`) with `OverlayIpv4`/`OverlayIpv6` index allocation + membership;
  a `Cidr` type with correct v4/v6 mask membership; the policy model
  (`Tag`, `Principal`, `GatewayMode`, `Route`, `AclRule`, `Decision`) with a
  **fail-closed** `Policy::evaluate`; the `NodeDescriptor` peer-map shape; and a
  deliberate transport stub. 19 unit tests cover overlay allocation, CIDR
  membership, and fail-closed policy.
- **`akurai-control`** (bin) — control-plane skeleton: command dispatch plus
  enrollment / IPAM / peer-map / ACL / audit / heartbeat subsystem stubs and an
  HTTP listener seam. The listener is intentionally unimplemented (no std HTTP
  server, and the transport decision is open).
- **`akurai-node`** (bin) — node daemon skeleton: `up`/`down`/`status`/`gateway`
  dispatch parsed from `std::env::args` (no `clap`); TUN (`akurai0`), route, and
  peer-map-watch stubs; `route::overlay_defaults()` builds the real default
  overlay routes.
- **`akurai-relay`** (bin) — relay skeleton documenting the "relay sees only
  ciphertext" invariant, with a stubbed forward loop.
- **`akurai-admin`** (bin) — admin CLI skeleton: `preauth`/`routes`/`ingress`/
  `devices`/`acl` subcommand dispatch with usage; `routes approve` validates its
  CIDR argument through `akurai-common`.
- **`akurai-dns`** (bin) — internal MagicDNS skeleton for the `*.oli.akurai`
  zone, with a stub resolver.
- **Docs** (`docs/`) — `architecture.md`, `networking.md`, `gateway-mode.md`,
  `threat-model.md`, `protocol.md`, and `deployment-vpn.olibuijr.com.md`,
  porting the design per topic (overlay ranges, MVP0→4 ladder, fail-closed
  policy model, enrollment UX).
- **UNRESOLVED DECISION — transport & cryptography** (`docs/protocol.md`) — a
  prominent section recording the conflict between the plan's mandate to use
  vetted crypto crates (`quinn`/`rustls`/`snow`/`ed25519`) and this project's
  zero-runtime-dependency principle. Both options (std-only-from-scratch =
  security risk vs. allow one audited crypto crate) are documented; the choice is
  explicitly left for Ólafur. **No cryptography is implemented anywhere.**
- **systemd templates** (`systemd/`) — `akurai-control.service`,
  `akurai-relay.service`, `akurai-node.service` (state `/var/lib/akurai-vpn`,
  config `/etc/akurai-vpn`; the node unit carries `CAP_NET_ADMIN` + `/dev/net/tun`).
- **netns e2e test plan** (`tests/netns/README.md`) — the four-namespace
  (`ns-control`/`ns-node-a`/`ns-node-b`/`ns-gateway`) Linux network-namespace
  plan and the full test-requirements checklist.
- **`deploy.sh`** — release engine adapted from AkurAI-Framework for
  `olibuijr/AkurAI-VPN`: gate (fmt/clippy/test) → bump `VERSION` + workspace
  version → cut `CHANGELOG.md` → commit/tag/push → publish the control plane to
  EC2 via `akurai-ec2` behind nginx on `vpn.olibuijr.com:8096` (TLS skips
  gracefully while DNS is unresolved). Includes an `ec2`-only re-publish mode.
- **AGENTS.md / ISA.md** — the crate map + constitutional principles, and the
  ideal-state artifact (problem, vision, MVP0→4 criteria, open decisions).