---
title: "What's new in siteBits · Changelog"
description: "What changed in each released version of siteBits, with security notes for operators."
url: https://sitebits.de/changelog/
lang: en
software_version: "0.10.3"
---

Changelog

# What's new.

Every released version with everything added, changed or fixed, and a security section for operators. The same file is part of the source code on GitHub.

Each version starts with a short English summary. The full notes are in German, like the interface of siteBits today; an English interface is planned.

- **Latest version:** siteBits 0.10.3
- **Versions:** 4

## 0.10.3 19 Oct 2026

First public release on GitHub. Functionally the same as 0.10.2, plus the documents for the public repository (links to source, issues and releases, English issue and pull request templates with a confidential route for security reports, and a security policy for the supported 0.10.x line) and a few quirks for the curious in the console and command line. Operators: just update, no migration and no new required variables.

Full notes in German below. [German notes for 0.10.3 ](https://sitebits.de/de/neu/#v0-10-3)

Erste öffentliche Version auf GitHub. Inhaltlich wie 0.10.2, dazu Dokumente für die öffentliche Ablage und ein paar Eigenheiten für Neugierige. Keine Migration, keine neuen Pflicht-Variablen.

**Betreiber:** nur aktualisieren.

### Hinzugefügt

- Ein paar Eigenheiten für Neugierige in Konsole und Kommandozeile.

### Dokumentation

- Öffentliche Repo-Dokumente für den ersten GitHub-Push vorbereitet: Links zu Quelltext, Issues und Releases, englische Issue- und Pull-Request-Vorlagen samt vertraulichem Sicherheitsmeldeweg.
- Sicherheitsrichtlinie: unterstützte Versionslinie 0.10.x und zusätzlicher Schlüssel-Download über sitebits.de, mit unverändertem Fingerabdruck.
- GitHub-Vorlagen in Positivliste und REUSE-Abdeckung aufgenommen; Verweise auf die interne Entwicklungsumgebung in der öffentlichen Dokumentation bereinigt.

### Sicherheit

- Keine behobenen Schwachstellen. Maßnahmen der Betreiber: keine.

## 0.10.2 18 Oct 2026

Patch for use on phones: closing an area while measuring, the toolbar on narrow screens (less used tools move behind “More”), hints, measurement labels and landscape layout. No migration and no new variables, so operators only need to update.

Full notes in German below. [German notes for 0.10.2 ](https://sitebits.de/de/neu/#v0-10-2)

Patch für die Bedienung auf dem Handy: Flächen schließen, Werkzeugleiste, Hinweise, Messbeschriftungen, Querformat. Keine Migration, keine neuen Pflicht-Variablen.

**Betreiber:** nur aktualisieren.

### Behoben

- Fläche messen auf dem Handy: Ein Tipp in der Nähe des ersten Eckpunkts schließt die Fläche (Fang 36 px mit dem Finger, 16 px mit der Maus, ab drei Eckpunkten); nach dem dritten Punkt sagt eine Meldung, wie man schließt. Abschließen und Verwerfen stehen beim Zeichnen vorn in der Leiste: vorher lagen sie auf dem iPhone abgeschnitten am Ende.
- Werkzeugleiste auf schmalen Bildschirmen: Teilen, Messliste, Hilfe, Einstellungen und Vollbild liegen hinter „Mehr“ statt abgeschnitten am Rand. Am Desktop unverändert.
- Hinweise auf dem Handy (Scan-Filter im Panorama, Bedienhinweise) liegen über dem Panel statt darauf; der Hinweis zum Scan-Filter lässt sich wegtippen und kommt erst bei einer anderen Filterart wieder.
- Messbeschriftungen: der Messwert steht allein in der ersten Zeile, Zusätze (nicht eben, Modellmaß, Vorschlag) kleiner und umbrechend darunter; auf dem Handy nur an der ausgewählten Messung, sonst ein Zeichen ⚠/ⓘ. Vorher lief eine einzige lange Zeile über den Bildschirmrand und überlagerte andere Messungen.
- Handy quer: bekommt jetzt das mobile Layout mit dem Panel als Leiste rechts (vorher schwebende Desktop-Panels, die das Bild zudeckten).

### Sicherheit

- Keine behobenen Schwachstellen. Maßnahmen der Betreiber: keine.

## 0.10.1 17 Oct 2026

First release under the name siteBits, plus a patch for phones. Mesh import can add a lighter mobile level that phones and tablets load instead of the full mesh, the import source code is now part of the public repository, and vulnerability reports go to security@sitebits.de. Operators: just update; for phones it is worth adding the mobile level to large meshes.

Full notes in German below. [German notes for 0.10.1 ](https://sitebits.de/de/neu/#v0-10-1)

Erste öffentliche Version unter dem Namen **siteBits**, dazu ein Patch für Handys. Ausgeliefert werden Viewer und Portal (`web`), der Plattform-Server (`server`) und der MCP-Server (`mcp-server`). Der Quelltext des Imports (`import/`) ist ab dieser Version Teil des öffentlichen Repos. Keine Migration, keine neuen Pflicht-Variablen.

**Betreiber:** nur aktualisieren. Für Handys lohnt es sich, große Mesh-Ebenen mit`scanview-import mobilstufe` um eine Mobilstufe zu ergänzen und das Paket neu bereitzustellen.

### Hinzugefügt

- Mesh-Import: dritte Stufe `layers/mesh/mobile.glb` für Handys (Standard 400 000 Dreiecke, Texturen KTX2-ETC1S bis 2048 px; `--mobil-dreiecke 0` schaltet sie ab), geprüft wie die Vollstufe, Warnung über 100 MiB. In`project.json` stehen `mobileUrl`, `mobileSizeBytes` und `mobileTriangleCount`. Der neue Befehl`scanview-import mobilstufe <quelle> <ziel>` ergänzt ein vorhandenes Paket ohne Originalquelle aus seiner`model.glb`, als neues Paket (Hardlink-Kopie, `revision` \+ 1); das Quellpaket bleibt unverändert. Nur-Lese-Links geben die Mobilstufe für Gäste frei.
- Viewer: Mesh-Ebenen mit Mobilstufe (`mobileUrl`) laden auf Handy und Tablet diese statt der Vollstufe. Sie ist vereinfacht und dient nur der Anzeige; Messen auf dem Mesh bleibt der Vollstufe vorbehalten (Desktop).

### Geändert

- Neuer Produktname **siteBits**: Seitentitel, Portal, Viewer-Meldungen, Web-App-Name, OpenAPI-Titel, Standardname der Passkey-Anmeldung (`SCANVIEW_RP_NAME`, falls nicht gesetzt) und README. Bezeichner im Code (Pakete, Befehle, Umgebungsvariablen, Pfade, Dienste) bleiben `scanview`; Upgrades ändern daran nichts.
- Meldestelle für Schwachstellen ist jetzt `security@sitebits.de`, Meldungen lassen sich mit OpenPGP verschlüsseln (Fingerabdruck in `SECURITY.md`).
- README: Herkunftsvermerk (KI-Anteil, Lizenz gilt, soweit Schutzrechte bestehen) und Supportgrenze.

### Behoben

- Viewer auf schmalen Bildschirmen (Handy): Die Werkzeugleiste war breiter als das Display, Einstellungen und Vollbild waren nicht erreichbar. Sie ist jetzt höchstens bildschirmbreit und seitlich wischbar, die Texte „Markieren“/„Teilen“ entfallen dort. Die Meldungszeile liegt mobil unter der Leiste statt darunter verdeckt.
- Vollbild-Knopf auch auf dem iPhone: Er erklärt dort den Weg über „Zum Home-Bildschirm“ (iPhone-Safari erlaubt Webseiten kein Vollbild); im eigenen Fenster entfällt er.
- Leistungsanzeige (Debug) sitzt jetzt klein unten links und lässt sich per Tipp oder Enter einklappen; auf Handy und Tablet startet sie eingeklappt. Vorher lag sie unten rechts über den Schaltern des Panels.
- Viewer auf Handy und Tablet: Eine Mesh-Vollstufe über 128 MB wird nicht mehr geladen, die Vorschau bleibt stehen, mit Meldung. Vorher lud der Viewer die ganze Datei und prüfte das Grafikbudget erst nach dem Entpacken; bei einem Mesh von 390 MB beendete Safari auf dem iPhone den Tab. Desktop unverändert.
- `deploy/platform/test/caddy-pruefen.sh` brach gelegentlich mit Exit-Code 141 ab (SIGPIPE beim Lesen des Statuscodes unter `pipefail`); der Statuscode wird jetzt ohne Pipe gelesen. Betrifft nur das Prüfskript.
- Mesh-Import: glTF-Primitive, die sich einen Vertexpuffer teilen (je Material ein Primitive), wurden beim Lesen je Primitive kopiert. Prüfberichte wiesen dadurch ein Vielfaches der Vertices aus, und an Materialgrenzen entstanden offene Ränder. Betroffen waren nur Prüfung und Mobilstufe, nicht die ausgelieferte Vollstufe.

### Sicherheit

- Keine behobenen Schwachstellen. Maßnahmen der Betreiber: keine.

## Older versions

Versions before 0.10 are in the full changelog in the repository.

#### 0.10.016 Oct 2026

Feature release: AI suggestions that only count once a person accepts them, Gaussian splats, coordinates, point classes and accuracy in the viewer, finding the photos that show a spot, and the webcam window effect. Fixes a low severity issue (B-RL-N1, versions 0.1.0 to 0.9.2): package files could stay readable in the browser cache after logout. Operators: migration 0013 runs during the update, the outer Caddy block needs ?Permissions-Policy, and anyone reading the measurement or server CSV by column name or position has to adjust.

Full notes in German below. [German notes for 0.10.0 ](https://sitebits.de/de/neu/#v0-10-0)

Funktionsversion: KI-Vorschläge mit menschlicher Prüfung, Gaussian Splats, Koordinaten, Punktklassen und Genauigkeit im Viewer, Fotos zu einer Stelle finden, Fenster-Effekt. Ausgeliefert werden `web`, `server` und`mcp-server`.

**Betreiber:** Migration **0013** (`befund_eintraege` wird neu aufgebaut, Inhalte und Sperren bleiben) läuft beim Update; vorher sichert das Update die Datenbank wie gewohnt. `scanview.caddy` ist geändert (Kamera nur auf`/ansicht`); im äußeren Caddy-Block `?Permissions-Policy` statt `Permissions-Policy` setzen, sonst bleibt der Fenster-Effekt gesperrt (deploy/platform/README.md). Wer die Mess- oder Server-CSV über Spaltennamen oder -positionen liest, muss anpassen (siehe „Geändert“). Keine neuen Pflicht-Variablen.

### Hinzugefügt

- KI-Agenten im Tokenformular kennzeichnen; Vorschläge im Portal unter „Zu prüfen“ einzeln oder gesammelt prüfen.
- Viewer kennzeichnet Vorschläge mit Text und gestricheltem Schild, bietet Prüfknöpfe und einen Ebenenschalter (`kv=0` im Ansichtslink). Exporte lassen Vorschläge aus.
- Befund-Fäden zeigen KI-Herkunft, offene Vorschläge und verknüpfte Entscheidungen.
- Große Gaussian-Sichtschichten als RAD/RADC: externes, per SHA256 geprüftes Spark-build-lod v2.3.0, Bhattacharyya-LoD und Rückprüfung sämtlicher Blattpositionen; Herkunft im Paketbericht.
- RAD-Viewer lädt Details mit begrenztem Pager nach; Ladeanzeige bis zum ersten gefüllten Bild. Das 1-Millionen-Gate bleibt für SPZ/PLY. Paketinhalt nennt RAD-Format, Chunks und LoD-Methode.
- Gaussian-Sichtschicht als Ebene `splats` (Spark 2.3.0), schaltbar und als Startebene über`initialView.layers`; Messen/Fangen bleibt auf Punktwolke/Mesh. Ressourcenbudget und LOD.
- Generischer Viewerstart ohne Punktwolke für Mesh-/Splat-Pakete, Bounds aus den Ebenen.
- Import `add-splats`: PLY/SPLAT/SPZ v2/v3, Rahmenbeleg über gleiche Koordinaten oder COLMAP-Kamerapaare/Ähnlichkeit, explizite Residuen-Gates und Drehung/Erhalt von SH Grad 1 bis 3\. Standardausgabe SPZ v3 mit quantisierungsbasierter Positionsrückprüfung, PLY als expliziter Notweg; höchstens eine Million Gaussians ohne RAD-Paging.
- Optionale Startkamera aus ausdrücklich angegebenen Trainings-Weltzentren; SPZ/SH-Viewer mit Float32-Mittelpunkten und SH-Pufferbudget.
- Paketinhalt für Agenten enthält Splat-Format, Chunkanzahl, SH-Grad und Rahmen-/Kamerabericht.
- KI-Vorschläge (G7, Server/API/MCP): Ein API-Token lässt sich als „für einen KI-Agenten“ markieren (`"agent": true`). Was darüber angelegt oder geändert wird, ist ein Vorschlag, bis ein Mensch ihn annimmt: POIs und Messungen tragen `herkunft` und `pruefstand`, Löschen wird zum Löschvorschlag (HTTP 202), Status, Frist und Zuständigkeit im Befund-Faden werden ein Eintrag`vorschlag` (HTTP 202). Neue Routen `…/annehmen` und `…/verwerfen` (nur Menschen) und`GET …/zu-pruefen` (ab Bearbeiter). `GET …/pois|messungen` zeigt fremde offene Vorschläge nur mit`?vorschlaege=1`; ohne Parameter bleibt die Antwort wie bisher. Exporte und Git-Export enthalten nur Gültiges. Neue Felder in Antworten (`herkunft`, `pruefstand`, `loeschenVorgeschlagen`, Faden-Einträge `herkunft`, `bezug`) sind zusätzlich. Migration 0013 baut `befund_eintraege` neu auf (Inhalte und Sperren bleiben).
- Koordinate am Zeiger (F23): Taste C blendet unten links eine Statuszeile ein (im Ansichtslink `ko=1`), sie zeigt E/N/H mit Koordinaten- und Höhensystem bzw. „lokal“. Ruht der Zeiger, wird der Punkt wie beim Messen genau gesucht und festgehalten; Klick auf die Zeile oder Taste U kopiert ihn als`E;N;H;System;Höhensystem` (Dezimalpunkt, für GIS).
- Punktklassen und Echos im Viewer (F30): Farbmodus „Klassen“ (ASPRS-Farben, deutsche Namen), Ordner „Klassen und Echos“ mit einem Schalter je vorhandener Klasse und dem Filter „nur erste Echos“. Der Filter wirkt beim Dekodieren: ausgeblendete Klassen werden in jedem Farbmodus weder gezeigt noch beim Messen getroffen. Zustand im Ansichtslink (`kx=` ausgeblendete Klassen, `ec=1` erste, `ec=2` letzte Echos).
- „Nur letzte Echos“ (F30): Der Punktimport markiert bei LAS/LAZ-Quellen mit Mehrfachechos die letzten Echos im Standardfeld UserData (= 1) und meldet das als Attribut `returnsLast`; `verify` prüft die Markierung. Benutzt die Quelle UserData schon, wird nichts überschrieben und der Filter nicht angeboten. Grund: Giro3D filtert beim Dekodieren nur Standardfelder gegen feste Werte.
- Genauigkeit im Viewer (F15 Teil 1): Das Ebenen-Panel zeigt je Punktwolke und Mesh einen Abschnitt „Genauigkeit“ mit Lage, Maßstab, Quelle und Bericht, ohne Nachweis „kein Genauigkeitsnachweis“. Messwerte aus einer Ebene mit Nachweis tragen statt „Maßstab nicht belegt“ den genauen Stand, etwa „Maßstab aus 1 Strecke gesetzt (A-B Laser), nicht geprüft“ oder „Maßstab geprüft: +0,05 % an 1 Kontrollstrecke“; das gilt auch für die Spalte „Hinweis“ der Mess-CSV. Ausgleichsresiduen und Kamera-GNSS ergeben nie einen ±-Wert. Ein fehlerhafter Nachweis im Paket bricht das Laden ab.
- MCP: neue Werkzeuge `poi_loeschen`, `messung_loeschen` (weich, mit `version`), `link_anlegen`,`zustaendig_setzen`, `frist_setzen`, `gewerke_lesen` und `paket_lesen` (neue Route `GET …/paket`: Ebenen, Koordinaten-/Höhensystem, Zweithöhe, Punktklassen; Fotos-Ebene nur für berechtigte Rollen): damit decken Agenten alles am Befund-Faden ab, was die Oberfläche kann. Die Projektkarte (`projekt_lesen`) nennt zusätzlich `einheit` (Koordinaten- und Höhensystem). Übersicht Funktion → API → MCP mit Begründungen: `docs/ki-paritaet.md`.
- Fenster-Effekt (F32): Ordner „Fenster-Effekt (Webcam)“ im Viewer. Eingeschaltet folgt die Perspektive im Orbit dem Kopf (Webcam, Gesichtserkennung MediaPipe lokal im Browser), der Bildschirm wirkt wie ein Fenster in den Scan. Aus ab Werk, Kamera erst auf Klick, das Bild verlässt den Browser nicht; Hinweis mit Aus-Knopf, beim Wechsel des Tabs geht die Kamera aus. Solange er an ist, wird nicht gemessen; im Panorama pausiert er. Für eine Person vor dem Bildschirm (Laptop), nicht für Beamer. Neue Abhängigkeit `@mediapipe/tasks-vision` (Apache-2.0), Modell und Wasm vom eigenen Host; die eingebaute Nutzungsstatistik des Pakets (Versand an Google) entfernt der Bau. **Betrieb:** Kamera nur auf `/ansicht` erlaubt: im äußeren Caddy-Block`?Permissions-Policy` setzen (deploy/platform/README.md). Doku zu Koordinaten, Punktklassen, Genauigkeit und Fenster-Effekt: `docs/public/koordinaten-klassen-genauigkeit.md`.
- Genauigkeit in API, MCP und Exporten (F15 Teil 1): Die Projektkarte (`projekt_lesen`) nennt je Punktwolke und Mesh `genauigkeit` mit denselben Zeilen wie das Ebenen-Panel. Die Server-CSV`export.csv` hat eine neue letzte Spalte „Hinweis“ mit den Messhinweisen wie im Viewer (vor den Befund-Faden-Spalten; wer Spalten nach Position liest, muss anpassen). `export.json` trägt`genauigkeit`, die Mängelliste nennt Lage und Maßstab in Zeile 1, und der Git-Export legt`genauigkeit.json` ins Repository (im Commit der jeweiligen Bearbeitung, nur bei Änderung).
- Genauigkeitsnachweis im Import (F15 Teil 1): `scanview-import genauigkeit` liest `genauigkeit.json`(Pass-/Kontrollpunkte, Maßstabsstrecken, Kamera-GNSS je Gruppe), rechnet RMSE/max selbst und schreibt`provenance.accuracy` an die messbaren Ebenen. Nur Kontrollpunkte und -strecken zählen als Nachweis; Ausgleichsresiduen werden nie als ±-Wert ausgewiesen. Bericht-PDF nur per Prüfsumme vermerkt.
- Fotos zu einer Stelle finden (F4): Werkzeug im Panel „Fotos“ für einen Punkt, ein geklicktes Polygon, eine Flächenmessung oder die Schnittbox. Es sucht die Fotos, die die Stelle sehen, prüft Verdeckung an der Punktwolke und sortiert nach Abdeckung und Auflösung (mm/px). Ein Punkt zählt ab einer sichtbaren Stelle, ein Bereich ab 10 % sichtbarer Stichproben. Treffer erscheinen in der Bildleiste der geteilten Ansicht.
- Geteilte Ansicht 3D | Foto mit verschiebbarem Trenner (Maus, Finger, Tasten), quer oder auf Touch-Geräten hochkant, gemerkt je Browser; Bildleiste mit denselben Vorschaubildern wie das Panel „Fotos“.
- Rahmengröße der Kamerapyramiden (0,1 bis 20 m) im Panel „Fotos“, je Projekt gemerkt.
- Zweithöhe in der Koordinaten-Statuszeile (F23), wenn das Paket eine Geoidundulation (`frame.undulation`) mitbringt; gesetzt vom Import.
- Restore-Probe für Betreiber: `deploy/platform/test/restore-probe.sh` spielt eine Sicherung auf eine Wegwerf-Instanz zurück und prüft Integrität, Schema, Protokoll und Start; Ergebnis als JSON-Nachweis (docs/public/betrieb.md).

### Geändert

- Koordinatensystem und Höhensystem beim Messen benannt (F23): Die Koordinatenspalte der Mess-CSV heißt jetzt `Koordinaten X Y Z [m, <System>, <Höhensystem>]`, z. B. `[m, ETRS89/UTM33, NHN]`, bei lokalen Paketen `[m, lokal]`. Wer die Spalte über ihren Namen liest, muss den Abgleich anpassen. Dasselbe gilt für den Server-Export `export.csv`; die Mängelliste (`maengelliste.xlsx`) nennt beides in der ersten Zeile.
- Die Merkmalskanten für den Kantenfang auf Meshes rechnet ein Web Worker; der Viewer bleibt dabei bedienbar (Pilotpaket: Vorbereitung 7,2 s → 0,8 s im Hauptfaden).
- `scanview.caddy`: `Permissions-Policy` mit `camera=(self)` nur für `/ansicht` (Fenster-Effekt).

### Behoben

- Portal: Scheiterte „Link anlegen“ (Nur-Lese-Link) an einer zu alten Anmeldung, stand der Hinweis oben außerhalb des Sichtfelds und der Klick wirkte wirkungslos. Die Anleitung erscheint jetzt am Formular.
- SBOM: MediaPipe-Dateien und das Face-Landmarker-Modell des Fenster-Effekts sind belegt.

### Sicherheit

- **B-RL-N1** (niedrig, betroffen 0.1.0 bis 0.9.2): Paketdateien bleiben bis zu einer Stunde privat im Browser-Cache. Nach dem Abmelden konnte eine andere Person im selben Browser sie ohne Rechteprüfung aus dem Cache laden. Anmelden, Einladung einlösen und Abmelden senden jetzt `Clear-Site-Data: "cache"`(Cookies und lokale Entwürfe des Viewers bleiben; der erste Aufruf nach einer Anmeldung lädt die Programmdateien neu). Betreiber: nur aktualisieren.
- KI-Agenten-Token schreiben nur noch Vorschläge; gültig wird ein Eintrag erst durch einen Menschen. Keine neuen Zugänge.

[What comes next ](https://sitebits.de/roadmap/)· [Source: CHANGELOG.md in the repository ](https://github.com/sitebits/sitebits/blob/main/CHANGELOG.md)
