0 · Update check on start
1.4.0At start the app checks GitHub for a newer version (on by default); a switch in Settings → General turns it off.
- ✓Owner's decision recorded: the update check may run at start, not only on the keyowner, 27.10.2026 — replaces "network only on button press"
- ✓Switch in Settings → General, on by default (config.json)
- ✓How a new version is shown on the body: sketch → owner's OKthe yellow plate on the bottom band shows the version and blinks in the accent when a newer one is out; click → About → Download
- ✓Legal & info, README and About texts updated (what goes to the network, when)Legal done in 6 languages; README at the release
- ✓Release
11 · Dreadnought spawn alert
1.3.0An NPC dreadnought appearing in the site is shown on the body at once, like the titan alarm.
- ✓The dreadnoughts' names as they appear in the combat log (a sample line or the owner's list)10 names: Angel / Domination, Blood / Dark Blood, Guristas / Dread Guristas, Sansha's / True Sansha's, Serpentis / Shadow Serpentis Dreadnought
- ✓Detection + self-testcounted as a ★ spawn; its ticks on the grid like a commander's
- ✓How it shows (colour, hull, grid, sound?): sketch → owner's OKthe hull heats like metal, as for a titan, in a rich yellow (OK 28.10.2026); a titan's red goes over it
- ✓Checked in game
- ✓Release1.3.0 published 29.10.2026
1 · Anomaly timer
1.2.0 · fix nextThe anomaly's clear time, warp to warp: after the fleet warp the Vorton lines sink and the time counts up from 00:00 mid-graph; the first hit fades it out.
- ✓Sketch: where the timer sits on the screen
- ✓Owner's OK on the sketchOrbitron, thin; warp-to-warp after the owner's tests
- ✓Timer logic + self-test
- ··Re-warp (no hits on NPCs between two warps, the site was taken): the timer in red, counting down from the re-warp time to 00:00owner, 27.10.202628.10.2026: back to the countdown version (re-warp time in red at once, held 1 s, then down to 00:00 in real time); to check in game
- ··Re-warp: ignore long gaps between warps (a new session, a dock-up)gaps of 1 202 s and 61 503 s in the logs would show as re-warps; a threshold to choose
- ··Clear time in session statisticslater: the sites' times are already saved per session
- ✓Release1.2.0 published 27.10.2026
2 · Faction spawn statistics
1.2.0 · more nextCommanders, faction NPCs, titans and dreadnoughts counted per session (★). Loot is not in the combat log, so it is not tracked.
- ✓Spawn count saved with the sessionchecked on the owner's logs: 1 spawn, matches a text search
- ✓★ chip on the main screen, before Σ
- ✓Statistics tab: ★ per session and in total
- ✓Release1.2.0 published 27.10.2026
- ✓Sound on a faction spawn: off by default, a switch in Settings turns it ononly for a titan or a dreadnought: three short pulses (synthesized), once per spawn; Settings → General, with a ▶ key to hear it (OK 28.10.2026)
- ··Release (sound)next release
3 · Compact mode
1.4.0A smaller body that keeps the key numbers.
- ✓Owner: what stays on screenno power display or printed band, narrow damage display, short Close key, ISK grid as one row of column averages (spawns on top)
- ✓Sketch → OK → codeswitch in General; the window grows while the settings are open
- ✓Release
4 · Potato mode
1.4.0Lowest CPU / GPU load for rigs with 10+ clients: fewer frames, no glow, no animation.
- ✓Measure the current CPU use28.5% of one core → 3.5% in Potato mode
- ✓Switch in settings, low frame rate, effects off5 fps, still power display, no glow/halo/glass light/shimmer, plain hull, formula window without animation
- ✓Release
5 · Competition mode
1.4.0Several packs in one system. The fleet anchor is a fast frigate (the runner) that deals no DPS: the Thunderchilds' Vorton projectors hit it and the lightning arcs on to the NPCs. The Smartbombs module becomes Lightning rod: the damage the runner takes from the group, as Effective DPS from the runner's resists.
- ✓Owner's description of the mode29.10.2026; test in the logs from 2026.10.28 20:37:59: 4 Thunderchilds, runner Jaguar, 379 Vorton hits on it in 15 min (avg 63 applied), ≈ 205 Effective DPS on average, up to ≈ 390 (EM 87 / Th 60 / Kin 87 / Exp 50)
- ✓1. Settings → Modes tab: Standard / Competition; the runner's resists (EM, Thermal, Kinetic, Explosive %) in a small window in our UI: sketch → OK → coderesists (whole, ≤ 99), repair (≤ 300, one decimal), Vorton damage caused per ship EM / Kinetic (≤ 2500); over the limit the field turns red and shakes; one "?" card with the formula and the fields, scrolling (OK 29.10.2026)
- ✓2. Data: the group's Vorton hits on the runner (the friendly target in the Thunderchilds' logs), its own formula: applied ÷ (1 − resist of the charge's damage types) + self-test on the owner's logsrod DPS = the runner's hits in 10 s × one shot (EM + Kinetic) ÷ 10; arcs between the Thunderchilds left out. Owner's test (shot 3590): ≈ 1 850 on average while the rod works, up to 3 590; the runner takes ≈ 33 hp/s from the Vortons, up to 64
- ··2b. NPC damage on the runner: a thin white line in the Lightning rod graph, like the lines of the Vorton module (from the runner's own log; in the 28.10 test the runner's log has no combat lines 22:33–22:48 — to check)owner, 29.10.2026
- ✓3. The Lightning rod module in place of Smartbombs (title, number, fx window with the Competition formula): sketch → OK → codenumber = DPS through the runner; under it the runner's hp/s against its repair (red when losing) (OK 29.10.2026)
- ✓4. Graph: a running ECG-like line, spikes with spring easing, rotten-cherry colour with glow — tuned at the endon the middle line; a spring pen kicked by every hit, the trace runs left, a wave writhes through it; bright blood red with glow, NPC hits thin white (OK 29.10.2026)
- ··5. Compact / Potato in Competition, 6 languages, check in game, releasecompact and potato renders fine, texts in 6 languages; ready for 1.4.0 (after 1.3.0) on the local branch release-1.4.0; checked in game by the owner 29.10.2026 — works as planned; left: release
6 · Classic mode
needs specPure smartbombing battleship fleets without EDENCOM (Machariel, Praxis, Rokh).
- ··Owner's description of the mode
7 · Chinese (zh)
1.5.0zh.json and a CJK font: Microsoft YaHei from Windows or an embedded Noto Sans SC (about 10 MB).
- ✓Font choiceMicrosoft YaHei UI from Windows, nothing to embed (Vista and later)
- ✓Settings → General: languages in four columnsowner, 29.10.2026; test build zh1
- ✓Translation (147 strings; game terms stay in English)
- ✓Owner checks the screenshotsOK 29.10.2026
- ··Native speaker check
- ··Release
8 · Custom UI themes
plannedPlayer-selectable colourways; after compact mode.
- ··Owner: which themes
- ··Sketch → OK → code → release
9 · No-client alarm on the power display
1.3.0When no EVE client is found, the power display turns slowly in the LOG lamp's red and now and then fails at random like a short circuit: out for a moment, or a dim stutter.
- ✓Storyboard of the flicker → owner's OKsecond, calmer version approved 28.10.2026
- ✓Code + self-test render
- ✓Release1.3.0 published 29.10.2026
19 · ESS share: in hand against the bank
plannedRatting in nullsec, part of each bounty is held back into the system's ESS bank (usually 15–30 %, depending on the system). The Norns shows what really reaches the wallet against what went to the ESS bank. Owner, 31.10.2026.
- ··Find out from a real log: is the bounty in the combat log the full one or the part paid out; is the ESS share written anywhere in the logs
- ··If the logs do not have it: the share per system entered once, or read from ESI (with item 10, opt-in)
- ··The ISK module and Statistics: in hand and ESS bank side by side — sketch → owner's OK
- ··Code, self-test, release
10 · ESS Escrow Payment
cancelledThe ESS escrow payment (every 20 minutes) added to the session total Σ. It is in no game log, so it comes from ESI: the wallet journal, opt-in and off by default.
- ✓A sample of the log line29.10.2026: in no log — a payment at 02:29 is only in the wallet journal; none in 33 Gamelogs or 385 Chatlogs. Source: ESI
- ··Owner: register the app at developers.eveonline.com (PKCE, no secret)
- ··EVE SSO login per character, scope esi-wallet.read_character_wallet.v1 only; tokens stored with Windows encryption (DPAPI)
- ··Poll /characters/{id}/wallet/journal/ hourly (ESI cache ~1 h), ref_type ess_escrow_transfer, dedupe by entry id; add to Σ (not to the site's ISK) + self-testpayouts arrive up to an hour late; offline payouts are caught too
- ··Settings switch (off by default) — sketch → owner's OK
- ··Release
12 · Settings: room for more pages
cancelledMore settings and pages will come; the screen has to make room for them.
- ✓Languages in 3 columns, the switch rows 3 px tighterOK 28.10.2026
- ✓Settings tabs scroll (◀ ▶ on the left, 4 shown, the open one in the accent): room for more pagesOK 28.10.2026; the wheel scrolls them too
- ··Release
13 · Code signing
1.4.0Sign TheNorns.exe and the installer with a code-signing certificate, so Windows and antivirus ML stop treating each new release as an unknown file.
- ✓Build on GitHub Actions (Windows runner, native\build.ps1): the signed files must come from an automated build of the repository29.10.2026: .github/workflows/build.yml on release-1.4.0 (v* tags and by hand); a clean checkout builds and passes the installer self-test locally; not run on GitHub yet (not pushed)
- ✓LICENSE: plain MIT text only (GitHub reads it as "Other" because the CCP disclaimer follows it); the disclaimer stays in README29.10.2026 on release-1.4.0
14 · Formula card animation
1.5.0The formula / help card sometimes stutters badly while it slides in: its perspective is drawn row by row on every frame.
- ✓Measure the frame time; draw the tilted card once per frame size, or a cheaper transform32 ms → 4 ms a frame: rows copied pixel by pixel instead of ~560 GDI+ calls with a colour matrix, the shadow drawn once; same look (test build fc1, 29.10.2026)
- ✓Owner checks the slide-in in the test buildOK 29.10.2026
- ✓·Release
15 · Client preview & switching
1.5.0 · off by defaultOne live preview of a client on the power display and switching between clients, after EVE-O Preview (ideas and its docs only; it is GPL-3, we are MIT).
- ✓1. Client tracker: EVE windows by HWND (character / login), relogs, foreground via SetWinEventHookFleet.cs, test build fl1, 17 self-test checks; live: 5 clients found; config "fleet": true or --fleet-trace <file>
- ✓2. One DWM preview in place of the power display: the client active at the moment; persistent DwmRegisterThumbnail, our overlay only theretest build fl2, checked live by the owner 29.10.2026: edges, moving with the body, switching without flicker; 7 switches, 0 DWM errors
- ·–3. Magnetic snapping of the bodydropped by the owner 29.10.2026 after the test build fl3: not needed; reverted (7a79f5a)
- ✓4. Activation as in EVE-O: restore, SetForegroundWindow + SetFocus, SwitchToThisWindow fallbackthe wheel is not input that lets Windows grant the foreground (fl4: all refused, taskbar flashing); fl5 joins the foreground input queue for that call - works, but 17-40 ms and uneven. Keys and clicks grant it: step 5
- ✓5a. Hotkeys next / previous with RegisterHotKey, as EVE-O; held keys repeatconfig fleet_next / fleet_prev; Ctrl+2 forward checked live by the owner 29.10.2026 ("works well"); fl8 drops a needless second try (fl7: 28 ms a switch)
- ··5. Hotkeys (RegisterHotKey + WH_KEYBOARD_LL, antivirus checked on test builds), cycle order, Toggle Skip; the owner's row of squares on the hull: click / scroll to flip clients
- ✓5b. Settings → Eve-O tab: module lamp, live-picture lamp, hotkey fields (press to set; red when taken; yellow warning on EVE client default keys), scrolling, clients table with drag-and-drop order; the active character's name on the live picture (running line)test builds eo1–eo7, OK by the owner 29.10.2026
- ··6. Non-animated minimize of the previous client (SetWindowPlacement, WPF_ASYNCWINDOWPLACEMENT), exemptions
- ··7. Low priority for inactive clients without touching the client: priority / EcoQoS / CPU Sets, restored on activation; background FPS by the driver (NVIDIA Background Application Max Frame Rate)replaces Robin: no injection, no memory access (owner, 29.10.2026)
- ··README / Legal / hull band texts for the module (later, owner)
16 · Updates in one click
1.5.0The app downloads and installs a newer release itself. The version plate blinks; a click shows "1.x.x is available — Update"; the rest goes on its own. Settings → General: "Install updates automatically" (off by default). Works from the version that brings it on (1.1–1.3 update by hand once). After code signing: a self-updating unsigned exe looks like a downloader to antivirus heuristics.
- ✓The version plate blinks when a newer release is out (as now)
- ✓A click on it shows "1.x.x is available — Update"
- ✓"Update": the app downloads the installer from GitHub Releases itself (no browser), checks its SHA-256 (after signing also the signature), closes, installs the new version over the old one quietly (no admin rights, settings kept) and starts again
- ✓Settings → General: "Install updates automatically", off by default (on: the same without the click, never in the middle of a site)
- ✓Installer: a quiet mode (no pages, same folder and shortcuts)
- ✓Privacy texts (README, installer, settings): the download described, with its switch
- ✓Sketch → owner's OK → code → release
17 · Settings typography and structure
1.5.0A full rework of the settings' structure and typography: one font for the whole settings interface (now Orbitron caps, Space Grotesk and the Windows font for Ukrainian / Chinese mix), sizes that read well on every page and in every language. Fallback: the settings move to a window of their own when readable sizes do not fit on the body's screen.
- ✓·1. Systematize the sizes in use and name them: a type system (H1, H2, H3, body, label, caption…) with size, weight, font and case for each29.10.2026: proposal in the "Norns Type System" artifact (86 places, 14 named styles); waits for the owner's OK
- ✓·2. Audit the whole interface: a screenshot of every screen with each text marked by its style from the system (body, settings, cards, installer)29.10.2026: 13 screens, 288 texts framed and named by a recording self-test build (not committed), in the Norns Type System artifact; 49 texts change size
- ✓3. Choose one font for the settings, close to the current one (OFL, Latin + Cyrillic, a Chinese fallback with the same cap height)30.10.2026: owner chose Noto Sans (Latin, Cyrillic; Noto Sans SC for Chinese still to decide, about +10 MB)
- ✓·4. New structure of the pages, sketches on the body's screen → owner's OK30.10.2026: structure proposal (5 tabs + Statistics / About keys) in the Norns Type System artifact, waits for OK
- ✓·Fallback, if readable sizes do not fit: the settings in a separate window in the body's style (sketch → OK)
- ✓·Code, the installer's pages in the same type, release
18 · Statistics and the calendar
1.5.0Every session kept on the PC across updates, a scrolling list, a calendar card, titans and pirate dreadnoughts per session.
- ✓The list scrolls; the totals at the bottom on the right; the period on the left, the calendar key on the right
- ✓Calendar card: days with a session dotted in the accent, a day or a period
- ✓One click: Today, Quarter, Year; All sessionsowner, 31.10.2026: asked for the roadmap, then to do it before the release
- ✓Titans (skull) and pirate dreadnoughts (swords) in red, each icon with a tip; icons keep their place in the column
- ✓Every scroll bar can be pulled with the mouse (Carousel, Statistics, scrolling cards)