Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -62,3 +62,12 @@ SCHNELLSTART.md
SCHNELLSTART.md
backlog.txt
PLAN.md

# Tile-auth: private ops docs & any secrets. MUST NOT be published (full
# attack/defense logic + token material). Keep out of the public repo.
plan_tile_auth.md
TILE_AUTH_IMPLEMENTATION.md
TILE_AUTH_SERVER.md
tile-keys/
*.tileauth.key
secret.key
10 changes: 10 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,16 @@ und dieses Projekt folgt [Semantic Versioning](https://semver.org/lang/de/).

---

## [1.6.2.5] - 2026-08-30

### 🐛 Behoben

#### 🗺️ Tile-Download ignorierte den Karten-Modus (nutzte immer die Tile-Server-URL)
- Beim Offline-Laden von Kacheln wurde **immer** die im Feld „Tile-Server URL" stehende Adresse verwendet — unabhängig vom gewählten Karten-Modus und der Quell-Auswahl (osm/topo/dark). In Meshhessen-/Offline-Modus lud der Download so von der Custom-URL statt vom quellenrichtigen offiziellen Server.
- Jetzt gilt: Die Custom-URL ist **nur** im Modus „Eigener Tile-Server" (`online-custom`) aktiv — dort weiterhin auch der ungespeicherte Wert aus dem Textfeld, damit man ohne Speichern laden kann. In allen anderen Modi nutzt der Download den zum Quell-Dropdown passenden Server (`online-own`/offline → offizielle Meshhessen-Server, `online-osm` → public OSM, für Bulk ohnehin gesperrt). Damit sind Download und Kartenabfrage konsistent.

---

## [1.6.2.4] - 2026-08-22

### 🐛 Behoben
Expand Down
46 changes: 30 additions & 16 deletions MeshhessenClient/MainWindow.Map.cs
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,18 @@ public partial class MainWindow
_ => "https://tile.meshhessenclient.de/osm/{z}/{x}/{y}.png"
};

// The tile URL actually in effect for the current map mode and the given source.
// The configured custom URL fields apply ONLY in custom mode; every other mode
// uses its own server (online-own + offline → official Meshhessen servers,
// online-osm → public OSM). Mirrors the live-map provider selection in
// InitializeMap, so downloads and map queries stay in sync.
private string GetActiveTileUrl(string source) => _currentSettings.MapMode switch
{
"online-custom" => GetUrlForSource(source),
"online-osm" => "https://tile.openstreetmap.org/{z}/{x}/{y}.png",
_ => GetMeshhessenUrlForSource(source),
};

// Vector rendering is available in all modes except online-osm (no public vector OSM server)
private bool UseVectorMap =>
_currentSettings.MapRenderMode == "vector" && _currentSettings.MapMode != "online-osm";
Expand Down Expand Up @@ -1315,26 +1327,28 @@ private void ShowNodeInfoDialog(NodeInfo node)

private void DownloadTiles_Click(object sender, RoutedEventArgs e)
{
// Tile-Server URL direkt aus TextBox übernehmen (auch ohne vorheriges Speichern)
var currentTileUrl = string.IsNullOrWhiteSpace(TileServerUrlTextBox.Text)
? "https://tile.meshhessenclient.de/osm/{z}/{x}/{y}.png"
: TileServerUrlTextBox.Text.Trim();
var source = _currentSettings.MapSource;

// The custom "Tile-Server URL" field is honoured ONLY in custom mode – and
// there the (possibly unsaved) textbox value wins, so the user can download
// without saving first. Every other mode downloads from its own server, so
// the source dropdown (osm/topo/dark) decides, not the URL field.
string url;
if (_currentSettings.MapMode == "online-custom")
url = string.IsNullOrWhiteSpace(TileServerUrlTextBox.Text)
? GetUrlForSource(source)
: TileServerUrlTextBox.Text.Trim();
else
url = GetActiveTileUrl(source);

// Update the appropriate URL based on current map source
switch (_currentSettings.MapSource)
switch (source)
{
case "osm":
TileDownloaderService.OSMTileUrl = currentTileUrl;
break;
case "osmtopo":
TileDownloaderService.OSMTopoTileUrl = currentTileUrl;
break;
case "osmdark":
TileDownloaderService.OSMDarkTileUrl = currentTileUrl;
break;
case "osm": TileDownloaderService.OSMTileUrl = url; break;
case "osmtopo": TileDownloaderService.OSMTopoTileUrl = url; break;
case "osmdark": TileDownloaderService.OSMDarkTileUrl = url; break;
}

var win = new TileDownloaderWindow(_currentSettings.MapSource) { Owner = this };
var win = new TileDownloaderWindow(source) { Owner = this };
win.ShowDialog();
// Nach Download: Map-Status aktualisieren
UpdateMapTileStatus();
Expand Down
6 changes: 3 additions & 3 deletions MeshhessenClient/MeshhessenClient.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@
<PublishDir>..\public\</PublishDir>

<AssemblyName>MeshhessenClient</AssemblyName>
<Version>1.6.2.4</Version>
<AssemblyVersion>1.6.2.4</AssemblyVersion>
<FileVersion>1.6.2.4</FileVersion>
<Version>1.6.2.5</Version>
<AssemblyVersion>1.6.2.5</AssemblyVersion>
<FileVersion>1.6.2.5</FileVersion>
<Company>Meshtastic Community</Company>
<Product>Meshhessen Client</Product>
<Description>Offline-fähiger Windows Client für Meshtastic Geräte</Description>
Expand Down
88 changes: 84 additions & 4 deletions docs/changelog.html
Original file line number Diff line number Diff line change
Expand Up @@ -172,10 +172,50 @@ <h1>Changelog</h1>
<div class="section active" id="de">
<main>

<!-- ── v1.6.2.3 ── -->
<!-- ── v1.6.2.5 ── -->
<div class="version-entry current">
<div class="version-header">
<span class="version-tag tag-latest">v1.6.2.3</span>
<span class="version-tag tag-latest">v1.6.2.5</span>
<span class="version-date">2026-08-30</span>
Tile-Download folgt dem Karten-Modus
</div>
<p class="version-desc">Bugfix: Das Offline-Laden von Kacheln nutzte immer die „Tile-Server URL", egal welcher Karten-Modus gewählt war.</p>

<div class="cl-section fixed">
<h3>🗺️ Tile-Download</h3>
<div class="cl-group">
<ul class="cl-list">
<li><strong>Download ignorierte den Karten-Modus</strong> — es wurde immer die Custom-URL aus dem Feld „Tile-Server URL" verwendet, unabhängig von Modus und Quell-Auswahl (osm/topo/dark). Die Custom-URL ist jetzt <strong>nur</strong> im Modus „Eigener Tile-Server" aktiv; alle anderen Modi laden vom quellenrichtigen Server (Meshhessen bzw. public OSM). Download und Kartenabfrage sind damit konsistent.</li>
</ul>
</div>
</div>
</div>

<!-- ── v1.6.2.4 ── -->
<div class="version-entry">
<div class="version-header">
<span class="version-tag">v1.6.2.4</span>
<span class="version-date">2026-08-22</span>
Kanal-Anzeige, Reply-Kanal &amp; Debug-Scroll
</div>
<p class="version-desc">Mehrere Fixes rund um Kanäle und das Debug-Log.</p>

<div class="cl-section fixed">
<h3>🐛 Behoben</h3>
<div class="cl-group">
<ul class="cl-list">
<li><strong>Kanal-Anzeige im Backlog</strong> zeigte teils „Kanal N" statt des Kanalnamens — jetzt einheitlich aus dem aktuellen Kanal-Index aufgelöst und beim Eintreffen der Kanäle neu berechnet.</li>
<li><strong>Reply wechselt wieder auf den Kanal der Nachricht</strong> — „Antworten" schaltet den aktiven Kanal auf den um, auf dem die Nachricht empfangen wurde (Live und Backlog).</li>
<li><strong>Debug-Log Auto-Scroll sprang nach oben</strong> statt dem Ende zu folgen — Reihenfolge korrigiert: erst trimmen, dann ans Ende scrollen.</li>
</ul>
</div>
</div>
</div>

<!-- ── v1.6.2.3 ── -->
<div class="version-entry">
<div class="version-header">
<span class="version-tag">v1.6.2.3</span>
<span class="version-date">2026-08-16</span>
Alert-Bell, verschlüsselte Antworten &amp; Karten-Feinschliff
</div>
Expand Down Expand Up @@ -1087,10 +1127,50 @@ <h3>✨ Hinzugefügt</h3>
<div class="section" id="en">
<main>

<!-- ── v1.6.2.3 (EN) ── -->
<!-- ── v1.6.2.5 (EN) ── -->
<div class="version-entry current">
<div class="version-header">
<span class="version-tag tag-latest">v1.6.2.3</span>
<span class="version-tag tag-latest">v1.6.2.5</span>
<span class="version-date">2026-08-30</span>
Tile download follows the map mode
</div>
<p class="version-desc">Bugfix: offline tile downloads always used the "Tile server URL", regardless of the selected map mode.</p>

<div class="cl-section fixed">
<h3>🗺️ Tile download</h3>
<div class="cl-group">
<ul class="cl-list">
<li><strong>Download ignored the map mode</strong> — it always used the custom URL from the "Tile server URL" field, regardless of mode and source selection (osm/topo/dark). The custom URL is now active <strong>only</strong> in "Own tile server" mode; every other mode downloads from the correct server for the source (Meshhessen or public OSM). Download and map query are now consistent.</li>
</ul>
</div>
</div>
</div>

<!-- ── v1.6.2.4 (EN) ── -->
<div class="version-entry">
<div class="version-header">
<span class="version-tag">v1.6.2.4</span>
<span class="version-date">2026-08-22</span>
Channel display, reply channel &amp; debug scroll
</div>
<p class="version-desc">Several fixes around channels and the debug log.</p>

<div class="cl-section fixed">
<h3>🐛 Fixed</h3>
<div class="cl-group">
<ul class="cl-list">
<li><strong>Channel display in the backlog</strong> sometimes showed "Channel N" instead of the channel name — now resolved consistently from the current channel index and recomputed when channels arrive.</li>
<li><strong>Reply switches back to the message's channel</strong> — "Reply" sets the active channel to the one the message was received on (live and backlog).</li>
<li><strong>Debug-log auto-scroll jumped to the top</strong> instead of following the end — order fixed: trim first, then scroll to end.</li>
</ul>
</div>
</div>
</div>

<!-- ── v1.6.2.3 (EN) ── -->
<div class="version-entry">
<div class="version-header">
<span class="version-tag">v1.6.2.3</span>
<span class="version-date">2026-08-16</span>
Alert bell, encrypted replies &amp; map polish
</div>
Expand Down
6 changes: 3 additions & 3 deletions docs/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@
"url": "https://smlunchen.github.io/mh_windowsclient/",
"downloadUrl": "https://github.com/SMLunchen/mh_windowsclient/releases/latest",
"author": { "@type": "Organization", "name": "Meshhessen Community", "url": "https://www.meshhessen.de" },
"softwareVersion": "1.6.2.3",
"softwareVersion": "1.6.2.5",
"screenshot": "https://raw.githubusercontent.com/SMLunchen/mh_windowsclient/master/img/map.png",
"keywords": "Meshtastic, Windows, LoRa, Mesh, Telemetrie, Traceroute, Offline-Karte, PKI"
}
Expand Down Expand Up @@ -312,7 +312,7 @@ <h1>Meshhessen Client</h1>
<main>

<div class="whats-new">
<span class="vbadge">v1.6.2.3</span>
<span class="vbadge">v1.6.2.5</span>
<span class="summary">🔔 Alert-Bell löst endlich den Hardware-Alert aus (ASCII 0x07) · 🔐 Antworten auf Info-Anfragen werden korrekt verarbeitet, PKI-DMs sofort entschlüsselt · 🗺️ „Auf Karte zeigen" auch auf der Vector-Karte.</span>
<a href="changelog.html">Changelog ansehen →</a>
</div>
Expand Down Expand Up @@ -775,7 +775,7 @@ <h2>Download &amp; Installation</h2>
<main>

<div class="whats-new">
<span class="vbadge">v1.6.2.3</span>
<span class="vbadge">v1.6.2.5</span>
<span class="summary">🔔 Alert bell finally triggers the hardware alert (ASCII 0x07) · 🔐 replies to info requests are handled correctly, PKI DMs decrypt immediately · 🗺️ "Show on map" now works on the vector map too.</span>
<a href="changelog.html">View changelog →</a>
</div>
Expand Down
Loading