diff --git a/AGENTS.md b/AGENTS.md index 6b7440a..582ebcb 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,6 +1,6 @@ # AGENTS.md — Project state, review findings, open items, and working rules -**Last updated: 2026-09-07** (Überschrittene Servicetermine werden markiert, Abschnitt DJ). Davor: 2026-09-06 (Die Batteriehistorie zeichnete stehende Werte als frische Messungen auf - der Vorschlag aus CB war messbar falsch, Abschnitt DI; davor: die ausgelieferte .ipa registriert zwei eigene Plugins nicht, Abschnitt DH). Davor: 2026-09-05, Audit-Durchgang, Abschnitt DC. (Tankstelle zweizeilig und antippbar, die Belegkarte sagt bei +**Last updated: 2026-09-10** (Zwei Push-Ziele: Gitea und ein lokaler Spiegel, Abschnitt DK). Davor: 2026-09-07 (Überschrittene Servicetermine werden markiert, Abschnitt DJ). Davor: 2026-09-06 (Die Batteriehistorie zeichnete stehende Werte als frische Messungen auf - der Vorschlag aus CB war messbar falsch, Abschnitt DI; davor: die ausgelieferte .ipa registriert zwei eigene Plugins nicht, Abschnitt DH). Davor: 2026-09-05, Audit-Durchgang, Abschnitt DC. (Tankstelle zweizeilig und antippbar, die Belegkarte sagt bei fehlender Position die Wahrheit statt einen toten Knopf zu zeigen, der Regler bekommt einen Speichern-Knopf, und die Share-Erweiterung trug eine andere Versionsnummer als die App; dazu die Kopfmarke statt der Firmierung des Betreibers und ein @@ -12948,3 +12948,42 @@ zurückgestellt und geprüft: **Nicht gesehen: das Panel.** Dafür fehlt weiterhin eine angemeldete HA-Sitzung; es ist über den Paritätstest und den Modul-Parse belegt, nicht über ein Bild. + +--- + +## DK. Two push targets: Gitea and a local mirror (2026-09-10) + +`origin` now carries **two push URLs**, so one `git push` writes to both: + +``` +fetch https://gitea.nothaft.cloud/paul/audi-app.git +push https://gitea.nothaft.cloud/paul/audi-app.git +push C:/Users/tobia/Projekte/audi-app.git +``` + +The mirror is a plain bare repository - no remotes of its own, nothing to +maintain - seeded from every branch Gitea had, so the two started out identical +(`main`, `umsetzung-datametric360`, no tags). Same arrangement DM180 already +uses (`Projekte/Data-Metric-180.git`), so both projects now behave alike. + +**Fetching still comes from Gitea alone.** Git allows exactly one fetch URL, and +that is the right one: Gitea stays the authority on what `origin/main` means, the +mirror is a second copy of it. This matters for `ios-signieren.sh`, whose whole +guard is built on `origin/main` - it keeps comparing against the server, not +against a local directory that might be a push behind. + +Two consequences worth knowing: + +* A push that reaches one target and fails at the other leaves them apart. Git + pushes to the URLs in order and reports each, so the failure is visible - but + it is not a transaction. Repeating the push repairs it; nothing else is needed. +* Anything done **only** locally against the mirror (a force-push straight into + it, say) would make it drift silently, because nothing ever reads from it. + Treat it as write-only: push through `origin`, never into the mirror directly. + +Verifying they agree is one command: + +```bash +diff <(git ls-remote https://gitea.nothaft.cloud/paul/audi-app.git | grep refs/heads | sort) \ + <(git ls-remote C:/Users/tobia/Projekte/audi-app.git | grep refs/heads | sort) +```