Skip to content

Releases: jhbruhn/eiermann

v2.0.0

Choose a tag to compare

@github-actions github-actions released this 08 Sep 07:57

2.0.0 (2026-08-26)

⚠ BREAKING CHANGES

  • audit: retire audit_entries and its seven call sites
  • urgency is an integer wire contract in three places at once — spot_overview computes it, the server sorts on it (urgency,name,id, with keyset paging riding on that order), and it travels in /spots?urgency=N links readers keep. The rung could not be appended at 7, which would sort it below the closed Spots, so prospect, paused and closed move to 5, 6 and 7. An old client against a new server labels the Erkundungen "Erfassung ausstehend".

Features

  • audit: a retention window, off by default, and the guard it needs (a97072b)
  • audit: audit_events, the log in the shape the shared emitter writes (191f3af)
  • audit: retire audit_entries and its seven call sites (afb77c0)
  • audit: sign-ins, failed attempts and OAuth2 provisioning (7ab689c)
  • audit: the routes, the export and the cron (e853809)
  • audit: the screen reads the new row shape (8b7e5f0)
  • audit: the vocabulary and the binding onto zugvogel's machinery (854a44a)
  • audit: Tier A — one generic hook per verb over the registry (6b8cc6d)
  • findings: correct a Fund's description after the fact (0f006e7)
  • give "noch nicht erfasst" a rung instead of a borrowed due rank (bea931f)

Bug Fixes

  • areas: refuse removing a Bereich photo out from under its pins (9cb17b6)
  • areas: the pin canvas reserves its box while the photo loads (fc696cd)
  • platform: let a German iPhone speak German, and keep Android's backup out (2e7b1fc)
  • rhythm: a Halbgelege follow-up is not the client's to delete (dc5fc16)
  • rhythm: recompute the Spot when a follow-up is written through the API (f06a7a6)
  • rules: a closing date is the server's, on both write paths (a38d4c9)
  • rules: who recorded a fact, and when, stop being client-writable (ccf18ff)
  • spots: a dossier section heading breaks instead of overflowing (0fa1704)
  • spots: name the survey rung for both ways of arriving on it (84bb321)
  • spots: the pin picker's search text sits on the icons' centre line (427474c)

v1.1.1

Choose a tag to compare

@github-actions github-actions released this 23 Aug 13:54

1.1.1 (2026-08-23)

Bug Fixes

  • android: declare INTERNET so a release build has a network (bb4c310)
  • app: capitalise the app name in the platform shells (e590b2e)

v1.1.0

Choose a tag to compare

@github-actions github-actions released this 23 Aug 13:17
4c1828a

1.1.0 (2026-08-23)

Features

  • auth: sign in through an identity provider (5317004)

Bug Fixes

  • auth: let a sign-in through an identity provider create its account (d252263)

v1.0.0

Choose a tag to compare

@github-actions github-actions released this 23 Aug 09:52
e29dcaa

1.0.0 (2026-08-23)

⚠ BREAKING CHANGES

  • zurück auf Flutter 3.44.3, zugvogel-Pin auf 030c35a
  • areas: Ein Client, der pins_need_review nicht senken kann, kann einen Bereich nach einem Fotowechsel nicht mehr aus der Warnung holen.
  • nests: nest_state — the dossier's nest list in one query
  • spots: the pin is the location, the address is a label
  • hooks: hooks no longer send user-facing messages. A client that displayed message must map data keys to its own strings.

Features

  • android: signed APKs in the release job, universal and per ABI (ad87804)
  • app: one account menu and a management hub, after federfall (0ca72e3)
  • areas: Area model and AreasRepository (5d17b85)
  • areas: Bereichsfoto aufnehmen, zuschneiden, hochladen (efce069)
  • areas: der Fotowechsel ist ein Prüfdurchlauf, kein Feld-Update (be857ae)
  • areas: die Pins stehen auch auf dem Vorschaufoto im Dossier (3b17cf9)
  • audit: who changed what, and what it used to say (0abe583)
  • auth: OIDC als optionaler Pfad — Mock-Provider, Umgebungsdoku, Hook (9174100)
  • backend: areas, nests, the protected-species guard, delete-effect registry (f000c40)
  • backend: species_labels — das Vokabular waechst aus dem Gebrauch (2f5bf88)
  • backend: spots, contacts and the overview view (0f48d52)
  • backend: the Spot lifecycle, enforced by a hook (4940c0b)
  • backend: the visit transaction and the rhythm — Phase 04's cut (8f55233)
  • data: spot repositories, with a keyset the view can actually resume (425a640)
  • findings: bauliche Veraenderung bietet das Schliessen an — danach (adc6d25)
  • findings: Funde im Besuchsablauf — im selben Body wie die Pruefungen (d7ff66a)
  • history: eine Chronologie — Besuche, Pruefungen, Funde, plus die Zahl (205a9bb)
  • hooks: refuse with a code, let the client write the sentence (fa3cc32)
  • l10n: every string exists in both languages, and a sweep keeps it that way (c4dfd0a)
  • models: Spot, SpotContact and SpotOverview (4b8d908)
  • nav: Karte, Liste und Dashboard als Ziele einer adaptiven Leiste (4bfa99f)
  • nests: die Nestliste im Dossier — Inhalt und Alter, dringend zuerst (3a0d50d)
  • nests: eigenes Nestfoto — und ein Weg hinein, der keinen Pin braucht (ec1046c)
  • nests: Nest model and NestsRepository (26092e2)
  • nests: nest_state — the dossier's nest list in one query (46fcba0)
  • nests: Pins setzen und verschieben, auf dem Bereichsfoto (9836585)
  • nests: refuse a pin on a Bereich that has no photo (2769042)
  • reports: die Berichtstabelle steht einmal, drei Rahmungen lesen sie (ba3695f)
  • reports: Statistikscreen und Export — der Client aggregiert nichts (9e44138)
  • rhythm: eine Zeile sagt den Tageszaehler, nicht den Rangnamen (6da444e)
  • rhythm: the numbers behind every due date are editable (2efbec1)
  • species: Artbezeichnung als Freitext, mit Vorschlaegen aus dem Gebrauch (fb74ec8)
  • spots: a paused Spot comes back by itself (352f379)
  • spots: a pin, and the difference between guessing it and standing there (955ffec)
  • spots: Erkundungsfunnel als eigener Screen, nach Stufe gruppiert (e514071)
  • spots: geocoding through our own proxy, and a way to configure it (82e1fd0)
  • spots: Karte mit Filterchips, entprellter Suche und "in meiner Nähe" (f4deff1)
  • spots: placing a pin fills the address fields that are still empty (c4627f9)
  • spots: the handover half — one tap to the access note, and a way out for a wrong number (f2b5f00)
  • spots: the list, the dossier and the two sheets (22ff63e)
  • spots: the map — one query, urgency in colour and shape, clustering that earns its place (9529fcb)
  • spots: the phase chip offers the moves, and the dialogs collect the reason (152512c)
  • spots: the pin is the location, the address is a label (1edabb4)
  • spots: the pin picker opens where the person is standing (e55d5cd)
  • spots: the Spot list can be narrowed to one urgency rank (a388022)
  • team: invite, admit, end access — the same logic as federfall (b5b1e1f)
  • the Phase 01 foundation — app, schema, hooks, and a green rule suite (67e42b8)
  • tours: Phase 05 — "Tour 1 starten" funktioniert wortwörtlich (e58c0b4)
  • visits: das Uebersichtsfoto ist die Arbeitsflaeche im Besuchsablauf (a222ba4)
  • visits: Phase 04 ist durch — Gelege, Besuch, Rhythmus in der Hand (39d3e8e)

Bug Fixes

  • docker: the shipped image had no way in on its first boot (752f9a0)
  • hooks: the geocode proxy never worked, and nothing noticed (ff774a6)
  • ios: the three usage descriptions without which the app crashes (b1c9e75)
  • rhythm: das Faelligkeitsfenster ist ein Viertel des Intervalls, keine Woche (bcee980)
  • spots: a phase change re-derives the due date (e0c01d1)
  • spots: a Spot added from the map now appears on the map (90a130b)
  • spots: the edit sheet now says WHY a save was refused (e5d8d8b)
  • web: no ...
Read more