Commit Graph
259 Commits
Author SHA1 Message Date
nilsandClaude Opus 5.5 90c2c75fc6 SPECS: app 2.39.2 published
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LhzAVaUyqcw5PkGjz4mWW6
2026-10-27 00:06:51 +01:00
nilsandClaude Opus 5.5 2d7b324899 App 2.39.2: Grid with map seen from higher up
The map gets its own camera, tilted 45 degrees down from about 300 m up,
so roads keep their shape some 400 m ahead instead of collapsing into
the horizon. In map mode the floor starts at half height, the speed is a
little smaller, the floor's grid is fixed to the ground and turns with
the roads, and the power disc has a dark backing.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LhzAVaUyqcw5PkGjz4mWW6
car-2.39.2
2026-10-27 00:06:07 +01:00
nilsandClaude Opus 5.5 09cbd21634 k8s: pin server 2.8.0; app 2.39.1 published
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LhzAVaUyqcw5PkGjz4mWW6
2026-10-26 23:56:28 +01:00
nilsandClaude Opus 5.5 6be2ba5193 App 2.39.1, server 2.8.0: map roads from OpenFreeMap, on demand
The public Overpass answered 429/502 and needs ~40 s a tile while the
car gives up after 8 s, so the server cancelled its queries and the
car's retries added load. Now the server fetches only the tiles a car
asks for, as OpenStreetMap vector tiles from OpenFreeMap (MAP_TILES_URL),
decodes the transportation layer with a small reader of its own, and
keeps each tile 30 days on a volume (MAP_CACHE_DIR). A fetch finishes
even after the car has stopped waiting; the car hears 503 with
Retry-After and gets the tile on its next try.

App: OpenFreeMap/OpenMapTiles attribution on the map, retry after 15 s.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LhzAVaUyqcw5PkGjz4mWW6
car-2.39.1
2026-10-26 23:54:30 +01:00
nilsandClaude Opus 5.5 d9c7c5ea9a k8s: pin server 2.7.0
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LhzAVaUyqcw5PkGjz4mWW6
car-2.39.0
2026-10-26 23:39:42 +01:00
nilsandClaude Opus 5.5 65dc1ba847 App 2.39.0, server 2.7.0: Grid with map
A new Overview style: the Grid over the roads round the car from
OpenStreetMap, drawn in the floor's perspective, heading up, the bigger
roads glowing brighter, the car as a chevron.

Server: POST /v1/map/roads {z:14,x,y} fetches a tile's drivable roads
from Overpass (OVERPASS_URL; one request at a time, at least a second
apart), simplifies them to tile-local points in four classes, caches
them for 30 days and never logs the tile.

App: MapRoads keeps the 3x3 tiles round the car from its own cache or
the server; GPS only while the style is shown; bearing from the GPS or
from successive positions. Without GPS, server or roads the plain floor
says why. OSM attribution on screen and in LICENSE.md.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LhzAVaUyqcw5PkGjz4mWW6
2026-10-26 23:34:21 +01:00
nilsandClaude Opus 5.5 776a11b182 SPECS: the car updated itself to 2.38.0
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LhzAVaUyqcw5PkGjz4mWW6
2026-10-26 23:08:00 +01:00
nilsandClaude Opus 5.5 7d2c1e8bb4 App 2.38.0: Overview styles Visor and Empire
Visor, after Halo's helmet display: the battery as the shield bar, the
range as the ammunition counter, P R N D as grenade slots, the speed in
the reticle with power round it, and the power trail as blips on a
motion tracker that sweeps while moving. Original blue or the accent.

Empire, after Age of Empires: a wooden resource bar, an isometric world
that moves with the speed, the car as the selected unit, P R N D as
commands, a diamond minimap, and ages by odometer (EmpireAge, tested).
The app takes the player's blue.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LhzAVaUyqcw5PkGjz4mWW6
car-2.38.0
2026-10-26 21:00:50 +01:00
nilsandClaude Opus 5.5 96b9659bdd App 2.37.0: Overview styles Time circuits and Quest
Time circuits, after Back to the Future: three LED rows (the car as the
destination, the present time, the last departure from P), the speed in
red digits and a flux capacitor that flows with the power; at 88 km/h
it all flashes. Letters on fourteen segments (Segments14, tested).
Quest, after World of Warcraft's interface: player frame, minimap, gold
speed, cast bar, quest tracker, chat, action bar and the odometer as
experience. Both in their own colours, the app with them. In THEMES.md
with screenshots. Emulator only; not tried on the car.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LhzAVaUyqcw5PkGjz4mWW6
2026-10-26 18:54:48 +01:00
nilsandClaude Opus 5.5 cba46504a6 App 2.36.0: Overview style Grid, after the Tron films
Neon lines on black over a perspective grid floor that moves with the
speed; the battery as a light wall, power on a disc whose inner ring
turns with it, and the last two minutes of power as a light-cycle trail
of right angles (the Cockpit's PowerTrace, now in ClusterValues). Cyan,
or the accent colour; in cyan the app turns cyan too. In THEMES.md with
two screenshots. Emulator only; not tried on the car.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LhzAVaUyqcw5PkGjz4mWW6
2026-10-26 18:33:53 +01:00
nilsandClaude Opus 5.5 1e0fd28eb2 SPECS: server 2.6.2 running; the car updated itself to 2.35.3
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LhzAVaUyqcw5PkGjz4mWW6
2026-10-25 22:53:44 +01:00
nilsandClaude Opus 5.5 784066ba1e k8s: pin server 2.6.2
git.stinnesbeck.com/nils/mg4-server:2.6.2 at
sha256:e4de1e75958d58ece8430a1913f9c1614d8ea1bf566f2e1ec5b449ef51844f77
(update logging, Go 1.27.3).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LhzAVaUyqcw5PkGjz4mWW6
2026-10-25 22:42:58 +01:00
nilsandClaude Opus 5.5 acb7e1969e Server 2.6.2: log update checks and downloads; Go 1.27.3
The update relay logs every check (car, number of releases, newest
pre-release) and every download (car, file, size, then bytes and time,
or that it was cut short); never the forge's address or token, tested.
Go 1.27.3 for the build image and toolchain: govulncheck had found
GO-2026-6809 in crypto/x509 under 1.26.9; source and binary now clean.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LhzAVaUyqcw5PkGjz4mWW6
2026-10-25 22:40:23 +01:00
nilsandClaude Opus 5.5 76a6213126 SPECS: InfluxDB manifests apply as unchanged (confirmed)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LhzAVaUyqcw5PkGjz4mWW6
2026-10-25 22:33:44 +01:00
nilsandClaude Opus 5.5 d865906859 k8s: write out the defaulted fields so apply reports InfluxDB unchanged
The NetworkPolicy port gets protocol: TCP, the StatefulSet's volume
claim template apiVersion, kind and volumeMode: Filesystem. Kubernetes
filled these in itself, so every apply -k sent a patch and printed
"configured" although kubectl diff was empty. Validated offline.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LhzAVaUyqcw5PkGjz4mWW6
2026-10-25 22:32:57 +01:00
nilsandClaude Opus 5.5 97e9644d9a App 2.35.3: car build with the English EVHardware
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LhzAVaUyqcw5PkGjz4mWW6
car-2.35.3
2026-10-25 22:03:22 +01:00
nilsandClaude Opus 5.5 8b2acc3e70 EVHardware: rename "Katman" (Turkish for layer) to "Layer"
Function names (whenLayer1Ready, initLayer4Swi69, isLayer4Ready, …), log
lines, comments and the library's README and changelog. Nothing outside
EVHardware used the names. The header now lists all five layers.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LhzAVaUyqcw5PkGjz4mWW6
2026-10-25 21:58:45 +01:00
nilsandClaude Opus 5.5 0ff56285bc EVHardware: translate the French comments, log texts and test names
The vendored library's French and half-translated comments, its French
log messages and the French test names and assertion messages are now
English. Comments, log texts and test names only; no code changed. The
French resources, place names in test data and two quoted phrases stay;
"Katman" (Turkish for layer) stays as the layers' name and is explained.
SPECS: the Grafana host is confirmed; both items ticked.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LhzAVaUyqcw5PkGjz4mWW6
2026-10-25 21:53:15 +01:00
nilsandClaude Opus 5.5 aca9e090d8 SPECS: server 2.6.1 is running
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LhzAVaUyqcw5PkGjz4mWW6
2026-10-25 21:43:13 +01:00
nilsandClaude Opus 5.5 f4419d7ebd SPECS: current versions (app 2.35.2; server 2.6.1 pinned, 2.6.0 running)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LhzAVaUyqcw5PkGjz4mWW6
2026-10-25 21:40:22 +01:00
nilsandClaude Opus 5.5 5cb4467c70 SPECS: ABRP, Enter on phone, accent colours and right-aligned values work on the car
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LhzAVaUyqcw5PkGjz4mWW6
2026-10-25 21:37:45 +01:00
nilsandClaude Opus 5.5 90664cf21c README: current screenshots and text
The tab screenshots are retaken with 2.35.2 (emulator, fresh install;
the 2.18.1 ones are removed). "Read-only" names the drive mode
exception, the upload frequency matches the app, and the Settings and
Logs rows list what is there now.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LhzAVaUyqcw5PkGjz4mWW6
2026-10-25 21:29:02 +01:00
nilsandClaude Opus 5.5 9ada281a50 App 2.35.2: a round full-screen button; THEMES.md with every Overview style
The full-screen button's disc was an oval (an even inset in a 64 x 72 dp
area); the area is now a square 72 dp, pulled into the panel's padding
so the logo keeps its line. THEMES.md shows the twelve Overview styles,
each with and without the navigation (emulator, sample values), with
what inspired each; linked from README.md and AGENTS.md.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LhzAVaUyqcw5PkGjz4mWW6
2026-10-25 21:17:23 +01:00
nilsandClaude Opus 5.5 ee66e2f37f App 2.35.1: remove Aviation; Sci-fi colours the app in its frame's lilac
Aviation is removed (a stored one opens Tiles). The app's Sci-fi palette
now takes the lilac of the console frame's lower elbow instead of the
orange of the upper one.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LhzAVaUyqcw5PkGjz4mWW6
2026-10-25 20:42:45 +01:00
nilsandClaude Opus 5.5 921bab7170 App 2.35.0: the app takes on the Overview style's own colours
While the style shows its own palette (Sci-fi, Cartoon, Aviation, Nixie;
Retro and Terminal with "Original"), the navigation, buttons and titles
take it instead of the accent colour, e.g. turquoise for Retro
(StylePalette, style_palettes.xml). Blueprint and Mascot are removed; a
stored one opens Tiles. The navigation no longer saves view state, which
crashed a restore across the wide and narrow layouts.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LhzAVaUyqcw5PkGjz4mWW6
2026-10-25 20:38:32 +01:00
nilsandClaude Opus 5.5 c5f0d5dc9a SPECS: styles-retro-future merged into main
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LhzAVaUyqcw5PkGjz4mWW6
2026-10-25 20:27:10 +01:00
nilsandClaude Opus 5.5 aff79cba6b Merge styles-retro-future: Overview styles, Mascot, drive mode (app 2.34.1)
App 2.22.3 → 2.34.1. Server, Grafana and the k8s manifests are unchanged.

Overview
- Read every 0.2 s. Nineteen styles in Settings → Overview style: Tiles,
  Gauges, Cockpit, Retro (VFD), Futuristic (energy flow), Sci-fi,
  Cartoon, Blueprint (top view with tyre pressures), MG (octagonal
  dials), Minimal, Terminal, Aviation, Nixie tubes, Chronograph and
  Mascot. The drawn styles share ClusterValues and take the accent
  colour; Retro and Terminal also offer their original palette.
- Mascot: an anime co-pilot whose mood follows the drive (MascotMood:
  reverse, low battery, asleep in P, regenerating, accelerating hard,
  fast, content, waiting), with lines in a speech bubble. Three
  characters: the classic one, a chibi and a chibi fox (ChibiBase).
- Full width: a button beside the MG4 logo hides the navigation; a
  swipe in from the left edge brings it back, or, beside the car's own
  sidebar, a tab at the left edge. Pages change only by the navigation.

Drive mode (the first vehicle setting the app writes; AGENTS.md rule 3)
- Settings: Eco, Normal, Sport, Snow, Custom. The lit one is what the
  car reports. Writes only in P at 0 km/h, both read fresh, through
  EVHardware's standstill gate; the result is the mode read back.
- "Set at start": the last confirmed choice is set again once when the
  head unit starts, only before the car first leaves P.

Logs
- Signal recorder: every property and vendor value the head unit offers,
  read for 3 minutes with the steering-wheel keys, changes listed rarest
  first, saved to a USB stick.
- Adaptive cruise control was looked for and is not there: the head unit
  gets neither the set speed nor the distance (SPECS.md, "Signals the
  car does not provide"). The cruise reads are removed again.

Tested: unit tests, lint, the emulator. Not tried on the car: the drive
mode writes, the tab beside the car's sidebar, the Mascot moods with
real data.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LhzAVaUyqcw5PkGjz4mWW6
2026-10-25 20:27:00 +01:00
nilsandClaude Opus 5.5 5e79b91d63 App 2.34.1: a tab to leave the Overview's full screen beside the car's sidebar
Without the app's own full screen, the car's sidebar takes the left edge
and a swipe from there never reaches the app. A small tab at the app's
left edge now brings the navigation back, by a tap or a swipe from it.
In the app's full screen the handle and edge swipe stay as they were.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LhzAVaUyqcw5PkGjz4mWW6
2026-10-25 20:15:46 +01:00
nilsandClaude Opus 5.5 ed65c96319 App 2.34.0: set the chosen drive mode again when the car starts
The car falls back to its own default mode at every start. With "Set at
start" (on by default), the service sets the mode last chosen on
Settings and confirmed by the car again, once, while the car is in P at
0 km/h, and gives up as soon as the car leaves P or after two minutes
(DriveModeWrite.atStart, unit-tested). The buttons and the start share
the write and read-back (DriveModeSetter). Not tried on the car.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LhzAVaUyqcw5PkGjz4mWW6
2026-10-25 20:12:11 +01:00
nilsandClaude Opus 5.5 ce2ebd7f58 App 2.33.0: set the drive mode from Settings, only in P at a standstill
The owner lifted the read-only rule for the drive mode alone. Settings
has Eco, Normal, Sport, Snow and Custom; the lit button is what the car
reports. A tap reads gear and speed fresh and writes only in P at 0 km/h
(DriveModeWrite, unit-tested; unreadable is a refusal), through a CPM-only
write behind EVHardware's standstill gate, then reads the mode back and
says what the car reports. The wide layout's charging price joined the
battery card so the page still fits. Not tried on the car.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LhzAVaUyqcw5PkGjz4mWW6
2026-10-25 20:02:53 +01:00
nilsandClaude Opus 5.5 703bdfd2a3 App 2.32.1: drop the cruise control reads; the recorder becomes general
The 2.32.0 recording (ACC set to 101, 90 and 80 km/h behind another car)
found none of it among 1,194 values: the head unit does not get the ACC
data. Removed the cruise log and the set-speed read (EVHardware is as
before 2.27.3); the finding is under "Signals the car does not provide".
The recorder stays as the Signal recorder, for finding other signals.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LhzAVaUyqcw5PkGjz4mWW6
2026-10-25 19:51:42 +01:00
nilsandClaude Opus 5.5 2e6bb9cb83 App 2.32.0: an ACC recorder that records every value the head unit offers
The 2.31.1 log on the car showed the named assist properties constant
while ACC was engaged behind another car: they are not fed. The recorder
reads every property and vendor getter (read only, at most half the time
busy) for 3 minutes, plus steering-wheel key broadcasts, and lists what
changed, the rarest first. The recording is saved in the app and on a
USB stick if one is plugged in.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LhzAVaUyqcw5PkGjz4mWW6
2026-10-25 19:27:43 +01:00
nilsandClaude Opus 5.5 36cc417638 App 2.31.1: log the cruise control while driving, with every assist value
The 2.27.3 log wrote a line only when the target speed changed, so the
car showed one line at the start. Now a line is written on any change of
a mode or the target and every 2 s while driving, with the raw
driver-assistance properties (target speed, assist and speed-assist
modes, the followed object) and the reason for any unread value. The
last 600 lines are kept in an appended file; the Logs tab shows 150.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LhzAVaUyqcw5PkGjz4mWW6
2026-10-25 09:33:17 +01:00
nilsandClaude Opus 5.5 4cd5f7a7ba App 2.31.0: full screen from the navigation, swipe in from the left to return
The Overview's full-screen button moved from the page's corner into the
navigation, beside the MG4 logo. A swipe in from the left edge (EdgeSwipe,
unit-tested) brings the navigation back; a faint handle marks the edge.
Sideways swipes no longer change the page: only the navigation does.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LhzAVaUyqcw5PkGjz4mWW6
2026-10-25 08:53:41 +01:00
nilsandClaude Opus 5.5 4a1f178b5c App 2.30.0: a chibi fox as the third Mascot
FoxFigure draws a sitting fox with a scarf in the accent colour whose
ears and tail act the mood with the face: wagging, stiff, drooping,
laid back. The chibi's shared parts (frame, eyes, mouths, limbs by
mood, effects) moved into ChibiBase, which both figures extend.
Settings → Mascot: Classic / Chibi / Fox.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LhzAVaUyqcw5PkGjz4mWW6
2026-10-24 23:28:16 +02:00
nilsandClaude Opus 5.5 7df1930edd App 2.29.0: a chibi Mascot, chosen in Settings beside the tyre unit
ChibiFigure draws a small, full-figure co-pilot in a hoodie whose whole
body acts the mood (waving, arms up and hopping, fist, hands on cheeks,
nose bubble, pointing back, leaning into the wind). Settings → Mascot
(Classic / Chibi, MascotCharacter) shows only for the Mascot style; the
chibi has lines of her own.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LhzAVaUyqcw5PkGjz4mWW6
2026-10-24 23:17:21 +02:00
nilsandClaude Opus 5.5 57cabfa0e1 App 2.28.0: Overview style Mascot, an anime co-pilot who reacts to the drive
MascotView draws her head and shoulders beside speed, gear, battery,
power, usage and trip. MascotMood picks her expression from the reading
(waiting, reverse, worried, asleep, cheering, determined, fast, content)
and holds a new mood for 1.5 s so values at a threshold do not make her
flicker. A speech bubble carries a line per mood.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LhzAVaUyqcw5PkGjz4mWW6
2026-10-24 23:07:50 +02:00
nilsandClaude Opus 5.5 965a20cfb2 App 2.27.3: read the cruise control target speed, log it raw
The head unit names a vendor float AAD_EPTCCTRGTSPD (0x2160A15B),
the cruise control target speed by its name. EVHardware reads it raw;
the Logs tab lists each change with time, speed and gear, to establish
the unit and the off value on the car. Emulator only (absent there).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LhzAVaUyqcw5PkGjz4mWW6
2026-10-24 21:58:12 +02:00
nilsandClaude Opus 5.5 1c85fd2d9f App 2.27.2: Terminal in the accent colour; Original as a colour choice
Retro and Terminal are one entry each; the accent colour drop-down
offers "Original" first for them, remembered per style. The old
"Retro (accent colour)" entry is folded in and its stored value
migrated. Emulator only.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LhzAVaUyqcw5PkGjz4mWW6
2026-10-24 21:38:01 +02:00
nilsandClaude Opus 5.5 ef2ba89fba App 2.27.1: accent colour only for styles drawn in it
Settings → Display now has the Overview style first with the accent
colour beside it; for styles with their own palette the accent field is
greyed out with a note. Styles are an enum, OverviewStyle, with
usesAccent (unit-tested). Emulator only.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LhzAVaUyqcw5PkGjz4mWW6
2026-10-24 21:28:39 +02:00
nilsandClaude Opus 5.5 4ef386a8d9 App 2.27.0: full-width Overview, a button hides the navigation
A small button in the Overview's top-right corner hides the app's
sidebar (or bottom bar) and brings it back; only on the Overview,
remembered, swiping still works. Emulator only.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LhzAVaUyqcw5PkGjz4mWW6
2026-10-24 21:21:53 +02:00
nilsandClaude Opus 5.5 7902d8f941 App 2.26.0: Overview styles Minimal, Terminal, Aviation, Nixie, Chronograph
Five more styles that differ in arrangement as well as look: the speed
alone with hairlines; a green text terminal with ASCII bars; a flight
display with tapes and a horizon that pitches with power; nixie tubes on
walnut and brass; a watch face with sub-dials. They share a new base,
ClusterCanvasView. Emulator only.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LhzAVaUyqcw5PkGjz4mWW6
2026-10-24 20:47:43 +02:00
nilsandClaude Opus 5.5 1af5b0efe7 App 2.25.0: Overview style MG, octagonal dials
After the classic MG dashboards: three octagonal dials with chrome
bezels, cream scales and accent-coloured needles for speed, battery and
power, and a cream line of odometer, trip, usage, climate and clock.
No MG logo. Emulator only.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LhzAVaUyqcw5PkGjz4mWW6
2026-10-24 20:31:47 +02:00
nilsandClaude Opus 5.5 ef296683aa App 2.24.1: remove the header line above the pages
The title and subtitle above every tab are gone; the pages start at
the top and gain about 45 dp. Their strings are removed. Emulator only.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LhzAVaUyqcw5PkGjz4mWW6
2026-10-24 20:23:45 +02:00
nilsandClaude Opus 5.5 5fb367d7cd App 2.24.0: Overview styles Sci-fi, Cartoon and Blueprint
Sci-fi: a starship console with elbow frames, pill labels and block
graphs, red alert below 20 %. Cartoon: comic panels, a battery with a
face, a springy speedometer and sound words for power. Blueprint: a
top-view drawing with the battery hatched to the charge, tyre pressures
on leader lines, power as a force arrow and a title block. Styles are
now mapped to panes in a table. Emulator only.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LhzAVaUyqcw5PkGjz4mWW6
2026-10-24 20:08:24 +02:00
nilsandClaude Opus 5.5 2879c43e26 App 2.23.1: Retro style also in the accent colour
"Retro (accent colour)" draws the display in the chosen paint colour
and the labels in its light shade; regeneration stays green, a low
battery turns amber. Listed under Retro. Emulator only.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LhzAVaUyqcw5PkGjz4mWW6
2026-10-24 19:51:08 +02:00
nilsandClaude Opus 5.5 d9f6e368cf App 2.23.0: Overview styles Retro and Futuristic; read every 0.2 s
Retro: an 80s vacuum fluorescent cluster with seven-segment digits,
bar graphs and a lit P R N D selector. Futuristic: a hairline HUD with
an animated energy flow between battery and wheel, a turning speed ring
and a power arc. Both show unread values as dashes. The Overview now
reads the car five times a second. Emulator only.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LhzAVaUyqcw5PkGjz4mWW6
2026-10-24 19:32:07 +02:00
nilsandClaude Opus 5.5 c649ff6e28 App 2.22.3: rename the Overview style Dashboard to Gauges
The stored value becomes GAUGES; DASHBOARD still selects it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LhzAVaUyqcw5PkGjz4mWW6
2026-10-24 19:25:09 +02:00
nilsandClaude Opus 5.5 c6643e7df2 App 2.22.2: gear badge shows P, R, N and D
Codes read on the owner's car with 2.22.1: 1 P, 2 R, 3 N, 4 D. Gear
maps them (unit-tested); other codes show no letter, unread "—". The
temporary gear list on the Logs tab is removed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LhzAVaUyqcw5PkGjz4mWW6
2026-10-24 19:10:03 +02:00
nilsandClaude Opus 5.5 16cc2746ef App 2.22.1: gear badge shows only P; Logs list the raw gear codes
The badge said "D" for every gear that was not P, so N and R read as D.
EVHardware now passes on the raw gear code; the badge shows P for 1,
no letter for codes not yet mapped, "—" when unread. The Logs tab lists
each change of the code with time and speed, to match R, N and D on
the car. Emulator only.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LhzAVaUyqcw5PkGjz4mWW6
2026-10-24 16:59:44 +02:00