clone

an offline map explorer where each world, from a game map to a city's open data, ships as one .atlas file

main
atlas / docs / decisions / 0002-allons-is-removed.md
0002-allons-is-removed.md 2.2K rendered
1# 2. allons is removed, and nothing replaces it23- **Date:** 2026-08-024- **Status:** accepted5- **Where it is written down:** issue #5 §1, §3.4, §10 decision 167## Context89The pre-rewrite desktop application is built on `allons`, a framework of its10own carried as a module dependency. Before the rewrite was decided, what the11application actually consumes from its host was measured: **one event12subscription and one file dialog.** Everything else the framework offered was13either unused or a wrapper around something the standard library or Wails14already exposes.1516## Decision1718allons is removed entirely. The desktop host becomes roughly 150 lines at the19module root: `wails.Run` with the application handler as the asset server, an20`fs.Sub` static mount for the seam bundle, and the native file dialog behind21`Hostenv.PickFile`. The event subscription becomes SSE on `GET /events` — a22server-sent stream of ready-to-swap partials — so no Wails runtime JavaScript23is needed in the page at all.2425**No framework replaces it.** The gap it filled is now a named interface26(see [ADR 7](0007-hostenv-portability.md)) rather than a dependency.2728## Consequences2930- The host contract shrinks to three methods, which is what makes three31 different hosts plausible rather than aspirational.32- The page has no framework runtime of its own: what the browser loads is the33 vendored hypermedia runtime and, when present, the seam's one bundle.34- The Wails host was a later wave of this rewrite; until it landed at close-out,35 `atlas serve` was the only host and `PickFile` answered `ErrNotAvailable`.36 The application was fully functional under it, which was the point.37- `github.com/FelineStateMachine/allons` left `go.mod` when the old tree was38 archived, not before — the reference implementation needed it to run as the39 oracle. It went with the tree, along with the transitive SQLite and BLAKE340 dependencies it brought.4142## What it actually cost4344The host came in at 162 lines of `main.go`, 122 of `redirects.go` and 83 of45`hostenv/wailshost`. `redirects.go` is the estimate's one surprise and none of46it is framework: a webview scheme task cannot express a redirect, so the host47walks the application's own doorways itself (`docs/app.md` §1.4).