Skip to content

[local_auth] Adopt structured errors and remove useErrorDialogs - platform implementations - #10147

Merged
auto-submit[bot] merged 25 commits into
flutter:mainfrom
stuartmorgan-g:local-auth-structured-errors-impls
Oct 16, 2025
Merged

[local_auth] Adopt structured errors and remove useErrorDialogs - platform implementations#10147
auto-submit[bot] merged 25 commits into
flutter:mainfrom
stuartmorgan-g:local-auth-structured-errors-impls

Conversation

@stuartmorgan-g

Copy link
Copy Markdown
Collaborator

Platform implementation portion of #9981

  • Adds the new LocalAuthException class for structured errors.
  • Deprecates AuthenticationOptions.useErrorDialogs

Part of:

Pre-Review Checklist

Footnotes

  1. Regular contributors who have demonstrated familiarity with the repository guidelines only need to comment if the PR is not auto-exempted by repo tooling. 23

@stuartmorgan-g

Copy link
Copy Markdown
CollaboratorAuthor

This is just #9981 with the changes outside of the platform implementation packages reverted, for separate landing.

@stuartmorgan-gstuartmorgan-g added the federated: partial_changes PR that contains changes for only a single package of a federated plugin change label Sep 30, 2025

@gemini-code-assistgemini-code-assistBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request refactors the error handling across Android, Darwin, and Windows platforms to use a new structured LocalAuthException, and removes the deprecated useErrorDialogs option. The changes are comprehensive and well-aligned with the goal of modernizing the error reporting. I've identified a critical compilation issue in the Dart implementation for Darwin and provided a suggested fix. Otherwise, the platform-specific implementations and their corresponding tests are well-executed.

julien4215 added a commit to aeecleclair/Titan that referenced this pull request Oct 8, 2025
To handle the exceptions in a better way we should use the exceptions
of the package local_auth when this gets released: flutter/packages#10147.
@jmagman

Copy link
Copy Markdown
Member

This is just #9981 with the changes outside of the platform implementation packages reverted, for separate landing.

@vashworth@mboetger can check this and transfer over your LGTM to here? #9981

@stuartmorgan-gstuartmorgan-g added the autosubmit Merge PR when tree becomes green via auto submit App label Oct 16, 2025
@auto-submit
auto-submitBot merged commit 835dccb into flutter:mainOct 16, 2025
80 checks passed
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Oct 16, 2025
github-merge-queueBot pushed a commit to flutter/flutter that referenced this pull request Oct 16, 2025
flutter/packages@d062181...835dccb
2025-10-16 stuartmorgan@google.com [local_auth] Adopt structured errors
and remove useErrorDialogs - platform implementations
(flutter/packages#10147)
2025-10-16 49699333+dependabot[bot]@users.noreply.github.com
[dependabot]: Bump org.mockito.kotlin:mockito-kotlin from 6.0.0 to 6.1.0
in /packages/interactive_media_ads/android (flutter/packages#10221)
2025-10-15 engine-flutter-autoroll@skia.org Manual roll Flutter from
e11e2c1 to 7cd821c (73 revisions) (flutter/packages#10229)
2025-10-15 to.sasovsky@gmail.com [go_router] feat: access GoRouter.of
from redirect methods (flutter/packages#9706)
2025-10-14 1063596+reidbaker@users.noreply.github.com [Many] Migrate non
examples (and pigeon test) to java 17 (flutter/packages#10201)
2025-10-13 49699333+dependabot[bot]@users.noreply.github.com
[dependabot]: Bump com.google.ads.interactivemedia.v3:interactivemedia
from 3.36.0 to 3.37.0 in /packages/interactive_media_ads/android
(flutter/packages#10113)
2025-10-13 10687576+bparrishMines@users.noreply.github.com [pigeon]
Fixes support for Kotlin/Java classes that override equals and hashCode
for ProxyApis (flutter/packages#10039)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-packages-flutter-autoroll
Please CC flutter-ecosystem@google.com on the revert to ensure that a
human
is aware of the problem.
To file a bug in Flutter:
https://github.com/flutter/flutter/issues/new/choose
To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
github-merge-queueBot pushed a commit to flutter/flutter that referenced this pull request Oct 16, 2025
flutter/packages@d062181...835dccb
2025-10-16 stuartmorgan@google.com [local_auth] Adopt structured errors
and remove useErrorDialogs - platform implementations
(flutter/packages#10147)
2025-10-16 49699333+dependabot[bot]@users.noreply.github.com
[dependabot]: Bump org.mockito.kotlin:mockito-kotlin from 6.0.0 to 6.1.0
in /packages/interactive_media_ads/android (flutter/packages#10221)
2025-10-15 engine-flutter-autoroll@skia.org Manual roll Flutter from
e11e2c1 to 7cd821c (73 revisions) (flutter/packages#10229)
2025-10-15 to.sasovsky@gmail.com [go_router] feat: access GoRouter.of
from redirect methods (flutter/packages#9706)
2025-10-14 1063596+reidbaker@users.noreply.github.com [Many] Migrate non
examples (and pigeon test) to java 17 (flutter/packages#10201)
2025-10-13 49699333+dependabot[bot]@users.noreply.github.com
[dependabot]: Bump com.google.ads.interactivemedia.v3:interactivemedia
from 3.36.0 to 3.37.0 in /packages/interactive_media_ads/android
(flutter/packages#10113)
2025-10-13 10687576+bparrishMines@users.noreply.github.com [pigeon]
Fixes support for Kotlin/Java classes that override equals and hashCode
for ProxyApis (flutter/packages#10039)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-packages-flutter-autoroll
Please CC flutter-ecosystem@google.com on the revert to ensure that a
human
is aware of the problem.
To file a bug in Flutter:
https://github.com/flutter/flutter/issues/new/choose
To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Marc-Andrieu pushed a commit to aeecleclair/Titan that referenced this pull request Nov 21, 2025
To handle the exceptions in a better way we should use the exceptions
of the package local_auth when this gets released: flutter/packages#10147.
Marc-Andrieu pushed a commit to aeecleclair/Titan that referenced this pull request Nov 21, 2025
To handle the exceptions in a better way we should use the exceptions of
the package local_auth when this gets released:
flutter/packages#10147.
reidbaker pushed a commit to AbdeMohlbi/flutter that referenced this pull request Dec 10, 2025
flutter/packages@d062181...835dccb
2025-10-16 stuartmorgan@google.com [local_auth] Adopt structured errors
and remove useErrorDialogs - platform implementations
(flutter/packages#10147)
2025-10-16 49699333+dependabot[bot]@users.noreply.github.com
[dependabot]: Bump org.mockito.kotlin:mockito-kotlin from 6.0.0 to 6.1.0
in /packages/interactive_media_ads/android (flutter/packages#10221)
2025-10-15 engine-flutter-autoroll@skia.org Manual roll Flutter from
e11e2c1 to 7cd821c (73 revisions) (flutter/packages#10229)
2025-10-15 to.sasovsky@gmail.com [go_router] feat: access GoRouter.of
from redirect methods (flutter/packages#9706)
2025-10-14 1063596+reidbaker@users.noreply.github.com [Many] Migrate non
examples (and pigeon test) to java 17 (flutter/packages#10201)
2025-10-13 49699333+dependabot[bot]@users.noreply.github.com
[dependabot]: Bump com.google.ads.interactivemedia.v3:interactivemedia
from 3.36.0 to 3.37.0 in /packages/interactive_media_ads/android
(flutter/packages#10113)
2025-10-13 10687576+bparrishMines@users.noreply.github.com [pigeon]
Fixes support for Kotlin/Java classes that override equals and hashCode
for ProxyApis (flutter/packages#10039)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-packages-flutter-autoroll
Please CC flutter-ecosystem@google.com on the revert to ensure that a
human
is aware of the problem.
To file a bug in Flutter:
https://github.com/flutter/flutter/issues/new/choose
To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Rotheem added a commit to ProximApp/Titan that referenced this pull request Mar 7, 2026
commit 5085d0a
Author: FastSpyder <FastSpyder321@gmail.com>
Date: Sun Mar 1 02:41:45 2026 +0100
Changing names in the deleting xxx admin interfaces (users from groups, groups and schools) to add name of the deleted entity (aeecleclair#656)
<!--BRIEF description: DON'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
When deleting someone from the admin interface, it is unclear and
misleading which entity is deleted
<!--#### Sources at the end-->
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] Changing message from deleting Group
- [x] Changing message from deleting User from a Group
- [x] Changing message from deleting School
<!--Anything relevant that does not quite fit in the summary-->
<!--Don't touch these two tags-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [x] ✨ New feature (non-breaking change which adds functionality)
- [x] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [ ] 😶‍🌫️ No impact for the end-users
- [ ] Core functionality changes
- [x] Single module changes
- [ ] Multiple modules changes
- [ ] Other: ... <!--Not module-oriented: write something!-->
- [x] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a local client using a pre-prod backend
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [x] `//` Comments
- [ ] No documentation needed
</details>
commit d9f9828
Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Sat Feb 28 13:39:45 2026 +0100
Fix README.md and various related things (aeecleclair#655)
<!--BRIEF description: DON'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
Analogous to aeecleclair/Hyperion#926
<!--#### Sources at the end-->
<!--Anything relevant that does not quite fit in the summary-->
<!--Don't touch these two tags-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [x] 😶‍🌫️ No impact for the end-users
- [ ] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [x] Other: README <!--Not module-oriented: write something!-->
- [x] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a local client using a pre-prod backend
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
This *is* documentation.
</details>
commit 603a6ac
Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Fri Feb 20 23:38:05 2026 +0100
Optimize(Web): gzip pre-compression (aeecleclair#653)
<!--BRIEF description: DON'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
The web version can be unbearably slow. One way to fix it is
compression.
- Compression = fewer data is transferred over the network = faster
loading times (even more blatant in slow networks)
- Pre-compression = compressed once (here I included this in the
building of the Docker image), served instantly from disk, no CPU
overhead, and allows more aggressive levels without downsides for the
client (source: the creator of gzip himself said so on StackOverflow) =
even faster
- gzip = already in Nginx by default. Brotli may be even faster to
decompress, and supported everywhere as well, but building a
Nginx+Brotli image really is unmaintainable for us.
<!--#### Sources at the end-->
Sources:
- https://stackoverflow.com/a/37892135/30331616
A video is better than 1000 words: ~30% faster with a fast connection.
Can go up to 2x faster in slower networks.
Consistently 12.0-12.2s for https://titan.dev.eclair.ec-lyon.fr and
8.7-9.0s for https://titan-1.dev.eclair.ec-lyon.frhttps://github.com/user-attachments/assets/a3d00882-fd46-4221-b337-1857829246a3
Subset of the draft aeecleclair#646 for Nginx pre-compression.
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] Nginx config: gzip config: gzip & gunzip, static, level 9, >512
bytes, mime types to take text-based files & avoid images,
- [x] Dockerfile: include the compression there, for >512 bytes file,
take text-based files & avoid image
- [x] Consistent params between the Nginx config and the compression
during image build.
- [x] Re-run `flutter pub run pdfx:install_web` to regenerate the PDF
script
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [x] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [ ] 😶‍🌫️ No impact for the end-users
- [x] Optimization
- [ ] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [x] Other: Dockerfile, Nginx config, index.html <!--Not
module-oriented: write something!-->
- [x] 1. Tested this locally: built and run my Docker image
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [x] 3. Tested in a local client using a pre-prod backend
- [x] 4. Created the 1st Titan pre-prod for the occasion
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `//` Comments
- [ ] No documentation needed
</details>
commit d06e20c
Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Tue Feb 10 14:30:14 2026 +0100
Update README.md and .env.template (aeecleclair#638)
<!--BRIEF description: DON'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
Titan counterpart of aeecleclair/Hyperion#845
<!--#### Sources at the end-->
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] Follow aeecleclair/Hyperion#845 style: working environment >
dependencies > fill the config file (`.env`) > launch it > beyond
- [x] Pre-fill the `.env`
<!--Anything relevant that does not quite fit in the summary-->
Go on https://github.com/aeecleclair/Titan/blob/update/readme/README.md
to see the Markdown preview.
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [x] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [x] 😶‍🌫️ No impact for the end-users
- [ ] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [x] Other: Installation guide <!--Not module-oriented: write
something!-->
This PR *is* documentation.
</details>
commit 27a10d9
Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Mon Feb 9 13:48:05 2026 +0100
Use a `web_dev_config.yaml` (a Flutter 3.38 novelty) (aeecleclair#651)
<!--BRIEF description: DON'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
`web_dev_config.yaml` is a brand-new config file, added in Flutter 3.38.
Here it's first use will be to use the port 3000 without having to type
it ever again, even in command line!
Also, sync-ed headers with the Nginx config.
Fixing the port and headers here means **reproducible** runs **aligned**
with the way (static) builds are served by Nginx.
<!--#### Sources at the end-->
Source:
https://docs.flutter.dev/platform-integration/web/web-dev-config-file
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] Add a `web_dev_config.yaml` for port 3000
- [x] Remove the `--web-port 3000` from the launch.json
- [x] Add `Cache-Control` headers and sync-ed with the Nginx config
- [x] Fix: the pubspec.lock automatically sync-ed the Dart SDK version
on the pubspec.yaml (someone modified it by hand and didn't `pub get`
afterward)
<!--Anything relevant that does not quite fit in the summary-->
<!--Don't touch these two tags-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [x] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [x] 😶‍🌫️ No impact for the end-users
- [ ] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [x] Other: Development only (file only used locally by devs) <!--Not
module-oriented: write something!-->
- [x] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [x] 3. Tested in a local client using a pre-prod backend
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `//` Comments
- [x] No documentation needed
</details>
commit cb570b2
Author: Armand Didierjean <95971503+armanddidierjean@users.noreply.github.com>
Date: Mon Feb 9 12:56:18 2026 +0100
Release 2.0.6 (aeecleclair#650)
<!--BRIEF description: DON'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
...
<!--#### Sources at the end-->
<!--Use a keyword, then #123 for the same repo or
aeecleclair/RepoName#123 for another-->
<!--Keywords: "closes", "fixes", "resolves" -->
<!--Fixes #-->
<!--Keywords: "depends on", "blocked by" -->
<!--Depends on aeecleclair/Hyperion#-->
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] ...
- [ ] ...
<!--Anything relevant that does not quite fit in the summary-->
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [ ] 😶‍🌫️ No impact for the end-users
- [ ] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [ ] Other: ... <!--Not module-oriented: write something!-->
- [ ] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a local client using a pre-prod backend
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `//` Comments
- [ ] No documentation needed
</details>
commit 02a9741
Author: Timothée Robert <114694873+Rotheem@users.noreply.github.com>
Date: Thu Feb 5 15:21:20 2026 +0100
Fix web worker (aeecleclair#649)
<!--BRIEF description: DON'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
...
<!--#### Sources at the end-->
<!--Use a keyword, then #123 for the same repo or
aeecleclair/RepoName#123 for another-->
<!--Keywords: "closes", "fixes", "resolves" -->
<!--Fixes #-->
<!--Keywords: "depends on", "blocked by" -->
<!--Depends on aeecleclair/Hyperion#-->
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] ...
- [ ] ...
<!--Anything relevant that does not quite fit in the summary-->
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [ ] 😶‍🌫️ No impact for the end-users
- [ ] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [ ] Other: ... <!--Not module-oriented: write something!-->
- [ ] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a local client using a pre-prod backend
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `//` Comments
- [ ] No documentation needed
</details>
commit f19e347
Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Fri Jan 30 16:03:33 2026 +0100
Release v2.0.5+163-alpha (aeecleclair#645)
commit 5e73e13
Author: Timothée Robert <114694873+Rotheem@users.noreply.github.com>
Date: Fri Jan 30 15:58:14 2026 +0100
Correct member filtering (aeecleclair#644)
Fix member filtering in phonebook
<!--#### Sources at the end-->
<!--Use a keyword, then #123 for the same repo or
aeecleclair/RepoName#123 for another-->
<!--Keywords: "closes", "fixes", "resolves" -->
<!--Fixes #-->
<!--Keywords: "depends on", "blocked by" -->
<!--Depends on aeecleclair/Hyperion#-->
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] ...
- [ ] ...
<!--Anything relevant that does not quite fit in the summary-->
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [ ] 😶‍🌫️ No impact for the end-users
- [ ] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [ ] Other: ... <!--Not module-oriented: write something!-->
- [ ] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a local client using a pre-prod backend
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `//` Comments
- [ ] No documentation needed
</details>
commit 4f8095a
Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Fri Jan 30 15:53:25 2026 +0100
Feat(phonebook): button to copy a pastable email list (aeecleclair#619)
As asked by the clients of this module, a button to copy to clipboard
the email list of an association's term, so that it can be pasted in and
parsed by mail clients
Not sure it's the best UI rendering, tho
<img width="1113" height="502" alt="image"
src="https://github.com/user-attachments/assets/6754bb26-24c4-4e03-b884-6bf580d3293e"
/>
commit 36e8580
Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Fri Jan 30 14:39:27 2026 +0100
Association groupement (aeecleclair#643)
<!--BRIEF description: DON'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
Assuming this is the front-end of aeecleclair/Hyperion#759
<!--#### Sources at the end-->
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] ...
- [ ] ...
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [x] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [ ] 😶‍🌫️ No impact for the end-users
- [ ] Core functionality changes
- [x] Single module changes
- [ ] Multiple modules changes
- [ ] Other: ... <!--Not module-oriented: write something!-->
- [x] 1. Tested this locally
- [x] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a local client using a pre-prod backend
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `//` Comments
- [ ] No documentation needed
</details>
---------
Co-authored-by: Thonyk <timr.web@free.fr>
commit e42acfb
Author: NakoGH <rbelahcene10@gmail.com>
Date: Tue Jan 27 19:30:08 2026 +0100
Myeclpay export history to csv (aeecleclair#641)
<!--BRIEF description: DON'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
<img width="437" height="449" alt="image"
src="https://github.com/user-attachments/assets/2d20a1c6-a185-4851-90b7-fb7a5da98d89"
/>
<!--#### Sources at the end-->
<!--Use a keyword, then #123 for the same repo or
aeecleclair/RepoName#123 for another-->
<!--Keywords: "closes", "fixes", "resolves" -->
<!--Fixes #-->
<!--Keywords: "depends on", "blocked by" -->
<!--Depends on aeecleclair/Hyperion#-->
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] ...
- [ ] ...
<!--Anything relevant that does not quite fit in the summary-->
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [x] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [ ] 😶‍🌫️ No impact for the end-users
- [ ] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [ ] Other: ... <!--Not module-oriented: write something!-->
- [x] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a local client using a pre-prod backend
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `//` Comments
- [ ] No documentation needed
</details>
commit 98b6486
Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Tue Jan 27 15:58:31 2026 +0100
Feat(Booking): manage from dialog (aeecleclair#617)
[Requested by Sid]
The point is to make the booking module more intuitive to manage a
booking you're authorized to manage (if you're manager ~~or if it's a
booking you requested~~).
You click on the colored cells in the calendar, and the popup lets you
henceforth manage it (i.e. edit, copy information, and crucially: accept
and decline). Previously, the popup was there but with read-only stuff,
now there's "write" stuff as well.
See screen recording below: on the manager page, pending booking
requests are now displayed, but translucent to distinguish them from the
accepted ones. In any case, the manager, can tap the booking to manage
it from the dialog instead of scrolling through dozens of cards, making
its life far easier.
https://github.com/user-attachments/assets/82f680ab-0583-41f0-892f-9e32eee6714b
commit 2dd1133
Author: Warix <39554785+warix8@users.noreply.github.com>
Date: Fri Jan 16 14:34:03 2026 +0100
[.env] Minimal Hyperion Version (aeecleclair#480)
These changes introduce a **minimal Hyperion version** to ensure Titan
can work properly.
When a new Titan version with a new Hyperion including breaking changes
(e.g. login system) is introduced, there will be a downtime because the
stores take a few hours to review the version.
Thus, the new version is submitted to the store, this version will work
because it will fall back to the alpha version.
No downtime anymore for introducing breaking changes.
---------
Co-authored-by: Foucauld Bellanger <63885990+Foukki@users.noreply.github.com>
Co-authored-by: Marc-Andrieu <marc.andrieu@outlook.com>
Co-authored-by: Marc-Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
commit f7c7831
Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Mon Jan 12 10:00:03 2026 +0100
Release v2.0.4+162-alpha (aeecleclair#639)
commit 02c3528
Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Mon Jan 12 09:51:04 2026 +0100
Fix(Flutter web deprecation): use worker version special token (+ HTML formatting) (aeecleclair#637)
<!--BRIEF description: DONT'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
For a long time we've had an annoying deprecation warning everytime we
launch the project locally, and today I'm fed up with it.
<!--#### Sources at the end-->
Source: https://docs.flutter.dev/platform-integration/web/initialization
<!--Use a keyword, then #123 for the same repo or
aeecleclair/RepoName#123 for another-->
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] Use the template `{{flutter_service_worker_version}}` as intended
per the docs
- [x] Format the index.html
<!--Anything relevant that does not quite fit in the summary-->
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [x] 😶‍🌫️ No impact for the end-users
- [ ] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [x] Other: follow deprecation warning <!--Not module-oriented: write
something!-->
- [ ] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [x] 3. Tested in a local client using a pre-prod backend
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `//` Comments
- [x] No documentation needed
</details>
commit cc72b0b
Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Sun Jan 11 23:46:06 2026 +0100
Fix: bump google_fonts to use the new Flutter API to find fonts (aeecleclair#636)
<!--BRIEF description: DONT'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
notes](https://docs.flutter.dev/release/release-notes/release-notes-3.38.0),
has the following breaking change:
> Remove deprecated AssetManifest.json file by @matanlurey in
[172594](flutter/flutter#172594)
But `google_fonts 6.2.1` relied on this file, until 6.3.0 where,
according to the
[changelog](https://pub.dev/packages/google_fonts/changelog#630), they:
> Update AssetManifest to use the builtin Flutter API.
That's why `google_fonts` version ought to be bumped.
NB: 7.0.0 was released 4 days ago, without breaking changes according to
the changelog, I decided to test it and it works as before aeecleclair#635
<!--#### Sources at the end-->
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] Use `google_fonts 7.0.0`
<!--Anything relevant that does not quite fit in the summary-->
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [x] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [x] 😶‍🌫️ No impact for the end-users: that's why an alpha was for:
testing
- [ ] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [x] Other: dependency <!--Not module-oriented: write something!-->
- [ ] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [x] 3. Tested in a local client using a pre-prod backend
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `//` Comments
- [x] No documentation needed
</details>
commit 517fcc8
Author: Armand Didierjean <95971503+armanddidierjean@users.noreply.github.com>
Date: Sun Jan 11 15:53:03 2026 +0100
feat: Flutter 3.38.6 and ios generated files (aeecleclair#635)
<!--BRIEF description: DONT'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
...
<!--#### Sources at the end-->
<!--Use a keyword, then #123 for the same repo or
aeecleclair/RepoName#123 for another-->
<!--Keywords: "closes", "fixes", "resolves" -->
<!--Fixes #-->
<!--Keywords: "depends on", "blocked by" -->
<!--Depends on aeecleclair/Hyperion#-->
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] ...
- [ ] ...
<!--Anything relevant that does not quite fit in the summary-->
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [ ] 😶‍🌫️ No impact for the end-users
- [ ] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [ ] Other: ... <!--Not module-oriented: write something!-->
- [ ] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a local client using a pre-prod backend
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `//` Comments
- [ ] No documentation needed
</details>
commit d48f6fd
Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Sat Jan 10 19:46:32 2026 +0100
Fix: lower the minimum Android API level to Flutter's (keep the targeted SDK version to 36) (aeecleclair#634)
<!--BRIEF description: DON'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
Accidentally bumped the Android API instead of only the SDK +
Gradle-related stuff
<!--#### Sources at the end-->
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] Change Android's so-called minSdk (they name things weirdly)
</summary>
- [x] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [x] 😶‍🌫️ No impact for the end-users: because we can't release an app
compatible with only about 2% of the market (according to the Play Store
console)
- [ ] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [x] Other: build-related stuff to ensure we're still compatible with
most of our users' phones <!--Not module-oriented: write something!-->
- [ ] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a local client using a pre-prod backend
- [x] 0. Untestable (exceptionally), will be tested in alpha directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `//` Comments
- [x] No documentation needed
</details>
---------
Co-authored-by: Armand Didierjean <95971503+armanddidierjean@users.noreply.github.com>
commit be5d7d9
Author: Timothée Robert <114694873+Rotheem@users.noreply.github.com>
Date: Sat Jan 10 02:13:56 2026 +0100
Fix mypayment root (aeecleclair#633)
<!--BRIEF description: DONT'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
...
<!--#### Sources at the end-->
<!--Use a keyword, then #123 for the same repo or
aeecleclair/RepoName#123 for another-->
<!--Keywords: "closes", "fixes", "resolves" -->
<!--Fixes #-->
<!--Keywords: "depends on", "blocked by" -->
<!--Depends on aeecleclair/Hyperion#-->
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] ...
- [ ] ...
<!--Anything relevant that does not quite fit in the summary-->
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [ ] 😶‍🌫️ No impact for the end-users
- [ ] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [ ] Other: ... <!--Not module-oriented: write something!-->
- [ ] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a local client using a pre-prod backend
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `//` Comments
- [ ] No documentation needed
</details>
commit efd6b69
Author: Timothée Robert <114694873+Rotheem@users.noreply.github.com>
Date: Sat Jan 10 01:45:11 2026 +0100
Fix root comparison for permission (aeecleclair#632)
<!--BRIEF description: DONT'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
...
<!--#### Sources at the end-->
<!--Use a keyword, then #123 for the same repo or
aeecleclair/RepoName#123 for another-->
<!--Keywords: "closes", "fixes", "resolves" -->
<!--Fixes #-->
<!--Keywords: "depends on", "blocked by" -->
<!--Depends on aeecleclair/Hyperion#-->
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] ...
- [ ] ...
<!--Anything relevant that does not quite fit in the summary-->
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [ ] 😶‍🌫️ No impact for the end-users
- [ ] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [ ] Other: ... <!--Not module-oriented: write something!-->
- [ ] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a local client using a pre-prod backend
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `//` Comments
- [ ] No documentation needed
</details>
commit 2bc5124
Author: Flaim-X2 <cecchinato.mathieu.n@gmail.com>
Date: Wed Jan 7 01:20:40 2026 +0100
AMAP in cents (aeecleclair#496)
Keeps amounts, accounts and balances in cents and calculates them in
cents, i.e. in int. Then the front-end displays in euros and takes in
euros.
---------
Co-authored-by: Maxime Roucher <maximeroucher@gmail.com>
Co-authored-by: Lühmos <guillaume.foucher.pele@gmail.com>
Co-authored-by: Maillard Antoine <145469528+cotanoine@users.noreply.github.com>
Co-authored-by: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
commit 954c031
Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Wed Jan 7 01:02:22 2026 +0100
Myeclpay to mypayment (aeecleclair#623)
- rename "MyECLPay" to "MyPayment", excepted for what is displayed in
the UI
- rename the `paiement` module to `mypayment`
commit 75c9c35
Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Mon Jan 5 23:12:48 2026 +0100
Fix: Android namespace (aeecleclair#631)
commit ef81d43
Author: Timothée Robert <114694873+Rotheem@users.noreply.github.com>
Date: Sat Jan 3 23:38:49 2026 +0100
Modular permissions (aeecleclair#618)
<img width="1911" height="814" alt="image"
src="https://github.com/user-attachments/assets/9493ff28-e01b-497e-af42-8707151042d7"
/>
<img width="1900" height="574" alt="image"
src="https://github.com/user-attachments/assets/a01ee66b-68b4-4d5b-9126-f922e88561ac"
/>
<img width="1880" height="824" alt="image"
src="https://github.com/user-attachments/assets/70761a00-c717-4cce-a95e-2719010001c0"
/>
commit 8c93ccf
Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Sat Jan 3 22:46:50 2026 +0100
Test build with google services (aeecleclair#630)
test
commit 41b0cf6
Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Wed Dec 31 22:47:24 2025 +0100
Release 1.4.1+157 (aeecleclair#627)
commit 38b119a
Author: Foucauld Bellanger <63885990+foucblg@users.noreply.github.com>
Date: Wed Dec 31 21:43:22 2025 +0100
bump mobile_scanner (aeecleclair#602)
Need to bump mobile_scanner in order to reach 16ko compatibility.
Since v.7.0.0 scanner needs to be stopped properly before a new start().
Co-authored-by: Foucauld Bellanger <63885990+Foukki@users.noreply.github.com>
commit 87ceca7
Author: NakoGH <rbelahcene10@gmail.com>
Date: Wed Dec 31 21:38:29 2025 +0100
add : button to show/hide revoked devices (aeecleclair#624)
<!--BRIEF description: DONT'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
<img width="416" height="868" alt="image"
src="https://github.com/user-attachments/assets/ce62a088-cc6d-427f-9af4-e2a853387ae9"
/>
<img width="453" height="881" alt="image"
src="https://github.com/user-attachments/assets/9282f405-2ec8-436f-8dbd-8df67fa921e0"
/>
...
<!--#### Sources at the end-->
<!--Use a keyword, then #123 for the same repo or
aeecleclair/RepoName#123 for another-->
<!--Keywords: "closes", "fixes", "resolves" -->
<!--Fixes #-->
<!--Keywords: "depends on", "blocked by" -->
<!--Depends on aeecleclair/Hyperion#-->
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] ...
- [ ] ...
<!--Anything relevant that does not quite fit in the summary-->
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [x] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [ ] 😶‍🌫️ No impact for the end-users
- [ ] Core functionality changes
- [x] Single module changes
- [ ] Multiple modules changes
- [ ] Other: ... <!--Not module-oriented: write something!-->
- [x] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a local client using a pre-prod backend
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `//` Comments
- [x] No documentation needed
</details>
commit a9e179b
Author: Maillard Antoine <145469528+cotanoine@users.noreply.github.com>
Date: Sat Dec 6 13:28:24 2025 +0100
Reloads saved preferences for module order (aeecleclair#622)
Should allow module order to be retained when reopening the app.
Co-authored-by: NakoGH <rbelahcene10@gmail.com>
commit 99be830
Author: Marc-Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Sun Nov 30 05:56:33 2025 +0100
New issue template and actual PR template (aeecleclair#620)
Change to the pull request template to improve reviews and enable quick
understanding of the nature of the changes to be reviewed.
Put it in a path that GitHub understands.
Add issue template BTW.
commit ab34a6d
Author: NakoGH <rbelahcene10@gmail.com>
Date: Sun Nov 30 05:20:48 2025 +0100
Show purchases per year in Module Purchases (aeecleclair#621)
<img width="292" height="430" alt="image"
src="https://github.com/user-attachments/assets/0f229e3e-10fb-4114-b747-8d8f077ec616"
/>
commit 52c1283
Author: julien4215 <120588494+julien4215@users.noreply.github.com>
Date: Fri Nov 21 16:42:34 2025 +0100
Handle error when getting QR code content (aeecleclair#608)
commit 8c3cc8f
Author: julien4215 <120588494+julien4215@users.noreply.github.com>
Date: Fri Nov 21 16:31:32 2025 +0100
Try/catch authentication for paiement module (aeecleclair#607)
To handle the exceptions in a better way we should use the exceptions of
the package local_auth when this gets released:
flutter/packages#10147.
commit 6710417
Author: Marc-Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Fri Nov 7 16:38:41 2025 +0100
UI: Reduce the size of the module name in TopBar and drawer (aeecleclair#616)
As a consequence of the new module "Centralassocation" whose name is too
long for the drawer
<img width="300" height="1815" alt="image"
src="https://github.com/user-attachments/assets/cfd2c44e-c0ee-4967-8ac3-ddaa884bc74e"
/>
commit 3ba130b
Author: Timothée Robert <114694873+Rotheem@users.noreply.github.com>
Date: Tue Nov 4 02:01:45 2025 +0100
Add myeclpay invoices (aeecleclair#613)
commit 33cfaf9
Author: Luhmos <guillaume.foucher.pele@gmail.com>
Date: Tue Oct 21 12:34:53 2025 +0200
New module: Centralassociation (aeecleclair#609)
New module based on Centralisation. It adapts the code to use the links
from the Centralassociation website instead, using more appropriate
classes.
commit 7f92e22
Author: Marc-Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Mon Sep 8 20:26:10 2025 +0200
Release 1.3.0+155 (aeecleclair#599)
commit 5b5b300
Author: Marc-Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Mon Sep 8 20:25:27 2025 +0200
Fix QR code scanner of purchases (strictly) (aeecleclair#600)
* [x] Fix `onScan` argument type to actually pass the scanned secret
downstream down to the request to Hyperion
* [x] replace "validate" button with "next"
commit b5a3aeb
Author: Marc-Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Mon Sep 8 14:32:26 2025 +0200
Account management - Part I (aeecleclair#575)
Fixaeecleclair#396Fixaeecleclair#305Fixaeecleclair#222
commit 02f9517
Author: Marc-Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Mon Sep 8 13:14:14 2025 +0200
Remember what store the user selected last (aeecleclair#595)
Feedback: several people scanned several times for the wrong store
because the default one was always the same.
Now we put in the storage the ID of the last store selected by the user,
so that when s/he comes back on MyECL during an event on behalf of one
club, the virtual money goes the right store.
commit 10279a1
Author: Maxime Roucher <maximeroucher@gmail.com>
Date: Mon Sep 8 13:08:24 2025 +0200
fix: migrating to new key encoding (aeecleclair#598)
commit 983bc29
Author: Marc-Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Mon Sep 1 18:41:58 2025 +0200
Fix: access memberships from admin UI (aeecleclair#590)
commit 04f9da3
Author: Maxime Roucher <maximeroucher@gmail.com>
Date: Mon Sep 1 09:47:34 2025 +0200
fix: setting interval default end time to 23:59:59 (aeecleclair#589)
commit e5adffa
Author: NakoGH <rbelahcene10@gmail.com>
Date: Wed Jul 30 21:57:14 2025 +0200
rm .yaml add .yml (aeecleclair#579)
commit d5e3bc4
Author: Timothée Robert <114694873+Rotheem@users.noreply.github.com>
Date: Sat Jul 19 19:57:16 2025 +0200
New async child (aeecleclair#567)
This PR is meant to extend the current AsyncChild to handle multiple
AsyncValues simultaneously to avoid having to use AsyncChild in
AsyncChild.
For example with Phonebook we need to fetch associations and
associationKinds and both are mixed up, thus we can't show any of them
separately and we need to wait for both to be available.
With this one widget would be sufficient.
Rotheem added a commit to ProximApp/Titan that referenced this pull request Apr 12, 2026
commit 5085d0a
Author: FastSpyder <FastSpyder321@gmail.com>
Date: Sun Mar 1 02:41:45 2026 +0100
Changing names in the deleting xxx admin interfaces (users from groups, groups and schools) to add name of the deleted entity (aeecleclair#656)
<!--BRIEF description: DON'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
When deleting someone from the admin interface, it is unclear and
misleading which entity is deleted
<!--#### Sources at the end-->
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] Changing message from deleting Group
- [x] Changing message from deleting User from a Group
- [x] Changing message from deleting School
<!--Anything relevant that does not quite fit in the summary-->
<!--Don't touch these two tags-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [x] ✨ New feature (non-breaking change which adds functionality)
- [x] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [ ] 😶‍🌫️ No impact for the end-users
- [ ] Core functionality changes
- [x] Single module changes
- [ ] Multiple modules changes
- [ ] Other: ... <!--Not module-oriented: write something!-->
- [x] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a local client using a pre-prod backend
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [x] `//` Comments
- [ ] No documentation needed
</details>
commit d9f9828
Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Sat Feb 28 13:39:45 2026 +0100
Fix README.md and various related things (aeecleclair#655)
<!--BRIEF description: DON'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
Analogous to aeecleclair/Hyperion#926
<!--#### Sources at the end-->
<!--Anything relevant that does not quite fit in the summary-->
<!--Don't touch these two tags-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [x] 😶‍🌫️ No impact for the end-users
- [ ] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [x] Other: README <!--Not module-oriented: write something!-->
- [x] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a local client using a pre-prod backend
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
This *is* documentation.
</details>
commit 603a6ac
Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Fri Feb 20 23:38:05 2026 +0100
Optimize(Web): gzip pre-compression (aeecleclair#653)
<!--BRIEF description: DON'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
The web version can be unbearably slow. One way to fix it is
compression.
- Compression = fewer data is transferred over the network = faster
loading times (even more blatant in slow networks)
- Pre-compression = compressed once (here I included this in the
building of the Docker image), served instantly from disk, no CPU
overhead, and allows more aggressive levels without downsides for the
client (source: the creator of gzip himself said so on StackOverflow) =
even faster
- gzip = already in Nginx by default. Brotli may be even faster to
decompress, and supported everywhere as well, but building a
Nginx+Brotli image really is unmaintainable for us.
<!--#### Sources at the end-->
Sources:
- https://stackoverflow.com/a/37892135/30331616
A video is better than 1000 words: ~30% faster with a fast connection.
Can go up to 2x faster in slower networks.
Consistently 12.0-12.2s for https://titan.dev.eclair.ec-lyon.fr and
8.7-9.0s for https://titan-1.dev.eclair.ec-lyon.frhttps://github.com/user-attachments/assets/a3d00882-fd46-4221-b337-1857829246a3
Subset of the draft aeecleclair#646 for Nginx pre-compression.
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] Nginx config: gzip config: gzip & gunzip, static, level 9, >512
bytes, mime types to take text-based files & avoid images,
- [x] Dockerfile: include the compression there, for >512 bytes file,
take text-based files & avoid image
- [x] Consistent params between the Nginx config and the compression
during image build.
- [x] Re-run `flutter pub run pdfx:install_web` to regenerate the PDF
script
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [x] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [ ] 😶‍🌫️ No impact for the end-users
- [x] Optimization
- [ ] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [x] Other: Dockerfile, Nginx config, index.html <!--Not
module-oriented: write something!-->
- [x] 1. Tested this locally: built and run my Docker image
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [x] 3. Tested in a local client using a pre-prod backend
- [x] 4. Created the 1st Titan pre-prod for the occasion
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `//` Comments
- [ ] No documentation needed
</details>
commit d06e20c
Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Tue Feb 10 14:30:14 2026 +0100
Update README.md and .env.template (aeecleclair#638)
<!--BRIEF description: DON'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
Titan counterpart of aeecleclair/Hyperion#845
<!--#### Sources at the end-->
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] Follow aeecleclair/Hyperion#845 style: working environment >
dependencies > fill the config file (`.env`) > launch it > beyond
- [x] Pre-fill the `.env`
<!--Anything relevant that does not quite fit in the summary-->
Go on https://github.com/aeecleclair/Titan/blob/update/readme/README.md
to see the Markdown preview.
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [x] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [x] 😶‍🌫️ No impact for the end-users
- [ ] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [x] Other: Installation guide <!--Not module-oriented: write
something!-->
This PR *is* documentation.
</details>
commit 27a10d9
Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Mon Feb 9 13:48:05 2026 +0100
Use a `web_dev_config.yaml` (a Flutter 3.38 novelty) (aeecleclair#651)
<!--BRIEF description: DON'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
`web_dev_config.yaml` is a brand-new config file, added in Flutter 3.38.
Here it's first use will be to use the port 3000 without having to type
it ever again, even in command line!
Also, sync-ed headers with the Nginx config.
Fixing the port and headers here means **reproducible** runs **aligned**
with the way (static) builds are served by Nginx.
<!--#### Sources at the end-->
Source:
https://docs.flutter.dev/platform-integration/web/web-dev-config-file
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] Add a `web_dev_config.yaml` for port 3000
- [x] Remove the `--web-port 3000` from the launch.json
- [x] Add `Cache-Control` headers and sync-ed with the Nginx config
- [x] Fix: the pubspec.lock automatically sync-ed the Dart SDK version
on the pubspec.yaml (someone modified it by hand and didn't `pub get`
afterward)
<!--Anything relevant that does not quite fit in the summary-->
<!--Don't touch these two tags-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [x] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [x] 😶‍🌫️ No impact for the end-users
- [ ] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [x] Other: Development only (file only used locally by devs) <!--Not
module-oriented: write something!-->
- [x] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [x] 3. Tested in a local client using a pre-prod backend
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `//` Comments
- [x] No documentation needed
</details>
commit cb570b2
Author: Armand Didierjean <95971503+armanddidierjean@users.noreply.github.com>
Date: Mon Feb 9 12:56:18 2026 +0100
Release 2.0.6 (aeecleclair#650)
<!--BRIEF description: DON'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
...
<!--#### Sources at the end-->
<!--Use a keyword, then #123 for the same repo or
aeecleclair/RepoName#123 for another-->
<!--Keywords: "closes", "fixes", "resolves" -->
<!--Fixes #-->
<!--Keywords: "depends on", "blocked by" -->
<!--Depends on aeecleclair/Hyperion#-->
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] ...
- [ ] ...
<!--Anything relevant that does not quite fit in the summary-->
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [ ] 😶‍🌫️ No impact for the end-users
- [ ] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [ ] Other: ... <!--Not module-oriented: write something!-->
- [ ] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a local client using a pre-prod backend
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `//` Comments
- [ ] No documentation needed
</details>
commit 02a9741
Author: Timothée Robert <114694873+Rotheem@users.noreply.github.com>
Date: Thu Feb 5 15:21:20 2026 +0100
Fix web worker (aeecleclair#649)
<!--BRIEF description: DON'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
...
<!--#### Sources at the end-->
<!--Use a keyword, then #123 for the same repo or
aeecleclair/RepoName#123 for another-->
<!--Keywords: "closes", "fixes", "resolves" -->
<!--Fixes #-->
<!--Keywords: "depends on", "blocked by" -->
<!--Depends on aeecleclair/Hyperion#-->
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] ...
- [ ] ...
<!--Anything relevant that does not quite fit in the summary-->
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [ ] 😶‍🌫️ No impact for the end-users
- [ ] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [ ] Other: ... <!--Not module-oriented: write something!-->
- [ ] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a local client using a pre-prod backend
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `//` Comments
- [ ] No documentation needed
</details>
commit f19e347
Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Fri Jan 30 16:03:33 2026 +0100
Release v2.0.5+163-alpha (aeecleclair#645)
commit 5e73e13
Author: Timothée Robert <114694873+Rotheem@users.noreply.github.com>
Date: Fri Jan 30 15:58:14 2026 +0100
Correct member filtering (aeecleclair#644)
Fix member filtering in phonebook
<!--#### Sources at the end-->
<!--Use a keyword, then #123 for the same repo or
aeecleclair/RepoName#123 for another-->
<!--Keywords: "closes", "fixes", "resolves" -->
<!--Fixes #-->
<!--Keywords: "depends on", "blocked by" -->
<!--Depends on aeecleclair/Hyperion#-->
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] ...
- [ ] ...
<!--Anything relevant that does not quite fit in the summary-->
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [ ] 😶‍🌫️ No impact for the end-users
- [ ] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [ ] Other: ... <!--Not module-oriented: write something!-->
- [ ] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a local client using a pre-prod backend
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `//` Comments
- [ ] No documentation needed
</details>
commit 4f8095a
Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Fri Jan 30 15:53:25 2026 +0100
Feat(phonebook): button to copy a pastable email list (aeecleclair#619)
As asked by the clients of this module, a button to copy to clipboard
the email list of an association's term, so that it can be pasted in and
parsed by mail clients
Not sure it's the best UI rendering, tho
<img width="1113" height="502" alt="image"
src="https://github.com/user-attachments/assets/6754bb26-24c4-4e03-b884-6bf580d3293e"
/>
commit 36e8580
Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Fri Jan 30 14:39:27 2026 +0100
Association groupement (aeecleclair#643)
<!--BRIEF description: DON'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
Assuming this is the front-end of aeecleclair/Hyperion#759
<!--#### Sources at the end-->
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] ...
- [ ] ...
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [x] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [ ] 😶‍🌫️ No impact for the end-users
- [ ] Core functionality changes
- [x] Single module changes
- [ ] Multiple modules changes
- [ ] Other: ... <!--Not module-oriented: write something!-->
- [x] 1. Tested this locally
- [x] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a local client using a pre-prod backend
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `//` Comments
- [ ] No documentation needed
</details>
---------
Co-authored-by: Thonyk <timr.web@free.fr>
commit e42acfb
Author: NakoGH <rbelahcene10@gmail.com>
Date: Tue Jan 27 19:30:08 2026 +0100
Myeclpay export history to csv (aeecleclair#641)
<!--BRIEF description: DON'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
<img width="437" height="449" alt="image"
src="https://github.com/user-attachments/assets/2d20a1c6-a185-4851-90b7-fb7a5da98d89"
/>
<!--#### Sources at the end-->
<!--Use a keyword, then #123 for the same repo or
aeecleclair/RepoName#123 for another-->
<!--Keywords: "closes", "fixes", "resolves" -->
<!--Fixes #-->
<!--Keywords: "depends on", "blocked by" -->
<!--Depends on aeecleclair/Hyperion#-->
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] ...
- [ ] ...
<!--Anything relevant that does not quite fit in the summary-->
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [x] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [ ] 😶‍🌫️ No impact for the end-users
- [ ] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [ ] Other: ... <!--Not module-oriented: write something!-->
- [x] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a local client using a pre-prod backend
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `//` Comments
- [ ] No documentation needed
</details>
commit 98b6486
Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Tue Jan 27 15:58:31 2026 +0100
Feat(Booking): manage from dialog (aeecleclair#617)
[Requested by Sid]
The point is to make the booking module more intuitive to manage a
booking you're authorized to manage (if you're manager ~~or if it's a
booking you requested~~).
You click on the colored cells in the calendar, and the popup lets you
henceforth manage it (i.e. edit, copy information, and crucially: accept
and decline). Previously, the popup was there but with read-only stuff,
now there's "write" stuff as well.
See screen recording below: on the manager page, pending booking
requests are now displayed, but translucent to distinguish them from the
accepted ones. In any case, the manager, can tap the booking to manage
it from the dialog instead of scrolling through dozens of cards, making
its life far easier.
https://github.com/user-attachments/assets/82f680ab-0583-41f0-892f-9e32eee6714b
commit 2dd1133
Author: Warix <39554785+warix8@users.noreply.github.com>
Date: Fri Jan 16 14:34:03 2026 +0100
[.env] Minimal Hyperion Version (aeecleclair#480)
These changes introduce a **minimal Hyperion version** to ensure Titan
can work properly.
When a new Titan version with a new Hyperion including breaking changes
(e.g. login system) is introduced, there will be a downtime because the
stores take a few hours to review the version.
Thus, the new version is submitted to the store, this version will work
because it will fall back to the alpha version.
No downtime anymore for introducing breaking changes.
---------
Co-authored-by: Foucauld Bellanger <63885990+Foukki@users.noreply.github.com>
Co-authored-by: Marc-Andrieu <marc.andrieu@outlook.com>
Co-authored-by: Marc-Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
commit f7c7831
Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Mon Jan 12 10:00:03 2026 +0100
Release v2.0.4+162-alpha (aeecleclair#639)
commit 02c3528
Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Mon Jan 12 09:51:04 2026 +0100
Fix(Flutter web deprecation): use worker version special token (+ HTML formatting) (aeecleclair#637)
<!--BRIEF description: DONT'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
For a long time we've had an annoying deprecation warning everytime we
launch the project locally, and today I'm fed up with it.
<!--#### Sources at the end-->
Source: https://docs.flutter.dev/platform-integration/web/initialization
<!--Use a keyword, then #123 for the same repo or
aeecleclair/RepoName#123 for another-->
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] Use the template `{{flutter_service_worker_version}}` as intended
per the docs
- [x] Format the index.html
<!--Anything relevant that does not quite fit in the summary-->
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [x] 😶‍🌫️ No impact for the end-users
- [ ] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [x] Other: follow deprecation warning <!--Not module-oriented: write
something!-->
- [ ] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [x] 3. Tested in a local client using a pre-prod backend
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `//` Comments
- [x] No documentation needed
</details>
commit cc72b0b
Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Sun Jan 11 23:46:06 2026 +0100
Fix: bump google_fonts to use the new Flutter API to find fonts (aeecleclair#636)
<!--BRIEF description: DONT'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
notes](https://docs.flutter.dev/release/release-notes/release-notes-3.38.0),
has the following breaking change:
> Remove deprecated AssetManifest.json file by @matanlurey in
[172594](flutter/flutter#172594)
But `google_fonts 6.2.1` relied on this file, until 6.3.0 where,
according to the
[changelog](https://pub.dev/packages/google_fonts/changelog#630), they:
> Update AssetManifest to use the builtin Flutter API.
That's why `google_fonts` version ought to be bumped.
NB: 7.0.0 was released 4 days ago, without breaking changes according to
the changelog, I decided to test it and it works as before aeecleclair#635
<!--#### Sources at the end-->
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] Use `google_fonts 7.0.0`
<!--Anything relevant that does not quite fit in the summary-->
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [x] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [x] 😶‍🌫️ No impact for the end-users: that's why an alpha was for:
testing
- [ ] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [x] Other: dependency <!--Not module-oriented: write something!-->
- [ ] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [x] 3. Tested in a local client using a pre-prod backend
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `//` Comments
- [x] No documentation needed
</details>
commit 517fcc8
Author: Armand Didierjean <95971503+armanddidierjean@users.noreply.github.com>
Date: Sun Jan 11 15:53:03 2026 +0100
feat: Flutter 3.38.6 and ios generated files (aeecleclair#635)
<!--BRIEF description: DONT'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
...
<!--#### Sources at the end-->
<!--Use a keyword, then #123 for the same repo or
aeecleclair/RepoName#123 for another-->
<!--Keywords: "closes", "fixes", "resolves" -->
<!--Fixes #-->
<!--Keywords: "depends on", "blocked by" -->
<!--Depends on aeecleclair/Hyperion#-->
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] ...
- [ ] ...
<!--Anything relevant that does not quite fit in the summary-->
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [ ] 😶‍🌫️ No impact for the end-users
- [ ] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [ ] Other: ... <!--Not module-oriented: write something!-->
- [ ] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a local client using a pre-prod backend
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `//` Comments
- [ ] No documentation needed
</details>
commit d48f6fd
Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Sat Jan 10 19:46:32 2026 +0100
Fix: lower the minimum Android API level to Flutter's (keep the targeted SDK version to 36) (aeecleclair#634)
<!--BRIEF description: DON'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
Accidentally bumped the Android API instead of only the SDK +
Gradle-related stuff
<!--#### Sources at the end-->
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] Change Android's so-called minSdk (they name things weirdly)
</summary>
- [x] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [x] 😶‍🌫️ No impact for the end-users: because we can't release an app
compatible with only about 2% of the market (according to the Play Store
console)
- [ ] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [x] Other: build-related stuff to ensure we're still compatible with
most of our users' phones <!--Not module-oriented: write something!-->
- [ ] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a local client using a pre-prod backend
- [x] 0. Untestable (exceptionally), will be tested in alpha directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `//` Comments
- [x] No documentation needed
</details>
---------
Co-authored-by: Armand Didierjean <95971503+armanddidierjean@users.noreply.github.com>
commit be5d7d9
Author: Timothée Robert <114694873+Rotheem@users.noreply.github.com>
Date: Sat Jan 10 02:13:56 2026 +0100
Fix mypayment root (aeecleclair#633)
<!--BRIEF description: DONT'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
...
<!--#### Sources at the end-->
<!--Use a keyword, then #123 for the same repo or
aeecleclair/RepoName#123 for another-->
<!--Keywords: "closes", "fixes", "resolves" -->
<!--Fixes #-->
<!--Keywords: "depends on", "blocked by" -->
<!--Depends on aeecleclair/Hyperion#-->
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] ...
- [ ] ...
<!--Anything relevant that does not quite fit in the summary-->
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [ ] 😶‍🌫️ No impact for the end-users
- [ ] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [ ] Other: ... <!--Not module-oriented: write something!-->
- [ ] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a local client using a pre-prod backend
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `//` Comments
- [ ] No documentation needed
</details>
commit efd6b69
Author: Timothée Robert <114694873+Rotheem@users.noreply.github.com>
Date: Sat Jan 10 01:45:11 2026 +0100
Fix root comparison for permission (aeecleclair#632)
<!--BRIEF description: DONT'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
...
<!--#### Sources at the end-->
<!--Use a keyword, then #123 for the same repo or
aeecleclair/RepoName#123 for another-->
<!--Keywords: "closes", "fixes", "resolves" -->
<!--Fixes #-->
<!--Keywords: "depends on", "blocked by" -->
<!--Depends on aeecleclair/Hyperion#-->
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] ...
- [ ] ...
<!--Anything relevant that does not quite fit in the summary-->
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [ ] 😶‍🌫️ No impact for the end-users
- [ ] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [ ] Other: ... <!--Not module-oriented: write something!-->
- [ ] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a local client using a pre-prod backend
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `//` Comments
- [ ] No documentation needed
</details>
commit 2bc5124
Author: Flaim-X2 <cecchinato.mathieu.n@gmail.com>
Date: Wed Jan 7 01:20:40 2026 +0100
AMAP in cents (aeecleclair#496)
Keeps amounts, accounts and balances in cents and calculates them in
cents, i.e. in int. Then the front-end displays in euros and takes in
euros.
---------
Co-authored-by: Maxime Roucher <maximeroucher@gmail.com>
Co-authored-by: Lühmos <guillaume.foucher.pele@gmail.com>
Co-authored-by: Maillard Antoine <145469528+cotanoine@users.noreply.github.com>
Co-authored-by: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
commit 954c031
Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Wed Jan 7 01:02:22 2026 +0100
Myeclpay to mypayment (aeecleclair#623)
- rename "MyECLPay" to "MyPayment", excepted for what is displayed in
the UI
- rename the `paiement` module to `mypayment`
commit 75c9c35
Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Mon Jan 5 23:12:48 2026 +0100
Fix: Android namespace (aeecleclair#631)
commit ef81d43
Author: Timothée Robert <114694873+Rotheem@users.noreply.github.com>
Date: Sat Jan 3 23:38:49 2026 +0100
Modular permissions (aeecleclair#618)
<img width="1911" height="814" alt="image"
src="https://github.com/user-attachments/assets/9493ff28-e01b-497e-af42-8707151042d7"
/>
<img width="1900" height="574" alt="image"
src="https://github.com/user-attachments/assets/a01ee66b-68b4-4d5b-9126-f922e88561ac"
/>
<img width="1880" height="824" alt="image"
src="https://github.com/user-attachments/assets/70761a00-c717-4cce-a95e-2719010001c0"
/>
commit 8c93ccf
Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Sat Jan 3 22:46:50 2026 +0100
Test build with google services (aeecleclair#630)
test
commit 41b0cf6
Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Wed Dec 31 22:47:24 2025 +0100
Release 1.4.1+157 (aeecleclair#627)
commit 38b119a
Author: Foucauld Bellanger <63885990+foucblg@users.noreply.github.com>
Date: Wed Dec 31 21:43:22 2025 +0100
bump mobile_scanner (aeecleclair#602)
Need to bump mobile_scanner in order to reach 16ko compatibility.
Since v.7.0.0 scanner needs to be stopped properly before a new start().
Co-authored-by: Foucauld Bellanger <63885990+Foukki@users.noreply.github.com>
commit 87ceca7
Author: NakoGH <rbelahcene10@gmail.com>
Date: Wed Dec 31 21:38:29 2025 +0100
add : button to show/hide revoked devices (aeecleclair#624)
<!--BRIEF description: DONT'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
<img width="416" height="868" alt="image"
src="https://github.com/user-attachments/assets/ce62a088-cc6d-427f-9af4-e2a853387ae9"
/>
<img width="453" height="881" alt="image"
src="https://github.com/user-attachments/assets/9282f405-2ec8-436f-8dbd-8df67fa921e0"
/>
...
<!--#### Sources at the end-->
<!--Use a keyword, then #123 for the same repo or
aeecleclair/RepoName#123 for another-->
<!--Keywords: "closes", "fixes", "resolves" -->
<!--Fixes #-->
<!--Keywords: "depends on", "blocked by" -->
<!--Depends on aeecleclair/Hyperion#-->
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] ...
- [ ] ...
<!--Anything relevant that does not quite fit in the summary-->
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [x] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [ ] 😶‍🌫️ No impact for the end-users
- [ ] Core functionality changes
- [x] Single module changes
- [ ] Multiple modules changes
- [ ] Other: ... <!--Not module-oriented: write something!-->
- [x] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a local client using a pre-prod backend
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `//` Comments
- [x] No documentation needed
</details>
commit a9e179b
Author: Maillard Antoine <145469528+cotanoine@users.noreply.github.com>
Date: Sat Dec 6 13:28:24 2025 +0100
Reloads saved preferences for module order (aeecleclair#622)
Should allow module order to be retained when reopening the app.
Co-authored-by: NakoGH <rbelahcene10@gmail.com>
commit 99be830
Author: Marc-Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Sun Nov 30 05:56:33 2025 +0100
New issue template and actual PR template (aeecleclair#620)
Change to the pull request template to improve reviews and enable quick
understanding of the nature of the changes to be reviewed.
Put it in a path that GitHub understands.
Add issue template BTW.
commit ab34a6d
Author: NakoGH <rbelahcene10@gmail.com>
Date: Sun Nov 30 05:20:48 2025 +0100
Show purchases per year in Module Purchases (aeecleclair#621)
<img width="292" height="430" alt="image"
src="https://github.com/user-attachments/assets/0f229e3e-10fb-4114-b747-8d8f077ec616"
/>
commit 52c1283
Author: julien4215 <120588494+julien4215@users.noreply.github.com>
Date: Fri Nov 21 16:42:34 2025 +0100
Handle error when getting QR code content (aeecleclair#608)
commit 8c3cc8f
Author: julien4215 <120588494+julien4215@users.noreply.github.com>
Date: Fri Nov 21 16:31:32 2025 +0100
Try/catch authentication for paiement module (aeecleclair#607)
To handle the exceptions in a better way we should use the exceptions of
the package local_auth when this gets released:
flutter/packages#10147.
commit 6710417
Author: Marc-Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Fri Nov 7 16:38:41 2025 +0100
UI: Reduce the size of the module name in TopBar and drawer (aeecleclair#616)
As a consequence of the new module "Centralassocation" whose name is too
long for the drawer
<img width="300" height="1815" alt="image"
src="https://github.com/user-attachments/assets/cfd2c44e-c0ee-4967-8ac3-ddaa884bc74e"
/>
commit 3ba130b
Author: Timothée Robert <114694873+Rotheem@users.noreply.github.com>
Date: Tue Nov 4 02:01:45 2025 +0100
Add myeclpay invoices (aeecleclair#613)
commit 33cfaf9
Author: Luhmos <guillaume.foucher.pele@gmail.com>
Date: Tue Oct 21 12:34:53 2025 +0200
New module: Centralassociation (aeecleclair#609)
New module based on Centralisation. It adapts the code to use the links
from the Centralassociation website instead, using more appropriate
classes.
commit 7f92e22
Author: Marc-Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Mon Sep 8 20:26:10 2025 +0200
Release 1.3.0+155 (aeecleclair#599)
commit 5b5b300
Author: Marc-Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Mon Sep 8 20:25:27 2025 +0200
Fix QR code scanner of purchases (strictly) (aeecleclair#600)
* [x] Fix `onScan` argument type to actually pass the scanned secret
downstream down to the request to Hyperion
* [x] replace "validate" button with "next"
commit b5a3aeb
Author: Marc-Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Mon Sep 8 14:32:26 2025 +0200
Account management - Part I (aeecleclair#575)
Fixaeecleclair#396Fixaeecleclair#305Fixaeecleclair#222
commit 02f9517
Author: Marc-Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Mon Sep 8 13:14:14 2025 +0200
Remember what store the user selected last (aeecleclair#595)
Feedback: several people scanned several times for the wrong store
because the default one was always the same.
Now we put in the storage the ID of the last store selected by the user,
so that when s/he comes back on MyECL during an event on behalf of one
club, the virtual money goes the right store.
commit 10279a1
Author: Maxime Roucher <maximeroucher@gmail.com>
Date: Mon Sep 8 13:08:24 2025 +0200
fix: migrating to new key encoding (aeecleclair#598)
commit 983bc29
Author: Marc-Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Mon Sep 1 18:41:58 2025 +0200
Fix: access memberships from admin UI (aeecleclair#590)
commit 04f9da3
Author: Maxime Roucher <maximeroucher@gmail.com>
Date: Mon Sep 1 09:47:34 2025 +0200
fix: setting interval default end time to 23:59:59 (aeecleclair#589)
commit e5adffa
Author: NakoGH <rbelahcene10@gmail.com>
Date: Wed Jul 30 21:57:14 2025 +0200
rm .yaml add .yml (aeecleclair#579)
commit d5e3bc4
Author: Timothée Robert <114694873+Rotheem@users.noreply.github.com>
Date: Sat Jul 19 19:57:16 2025 +0200
New async child (aeecleclair#567)
This PR is meant to extend the current AsyncChild to handle multiple
AsyncValues simultaneously to avoid having to use AsyncChild in
AsyncChild.
For example with Phonebook we need to fetch associations and
associationKinds and both are mixed up, thus we can't show any of them
separately and we need to wait for both to be available.
With this one widget would be sufficient.
Rotheem added a commit to ProximApp/Titan that referenced this pull request Apr 12, 2026
* Squashed commit of the following:
commit 5085d0a
Author: FastSpyder <FastSpyder321@gmail.com>
Date: Sun Mar 1 02:41:45 2026 +0100
Changing names in the deleting xxx admin interfaces (users from groups, groups and schools) to add name of the deleted entity (aeecleclair#656)
<!--BRIEF description: DON'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
When deleting someone from the admin interface, it is unclear and
misleading which entity is deleted
<!--#### Sources at the end-->
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] Changing message from deleting Group
- [x] Changing message from deleting User from a Group
- [x] Changing message from deleting School
<!--Anything relevant that does not quite fit in the summary-->
<!--Don't touch these two tags-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [x] ✨ New feature (non-breaking change which adds functionality)
- [x] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [ ] 😶‍🌫️ No impact for the end-users
- [ ] Core functionality changes
- [x] Single module changes
- [ ] Multiple modules changes
- [ ] Other: ... <!--Not module-oriented: write something!-->
- [x] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a local client using a pre-prod backend
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [x] `//` Comments
- [ ] No documentation needed
</details>
commit d9f9828
Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Sat Feb 28 13:39:45 2026 +0100
Fix README.md and various related things (aeecleclair#655)
<!--BRIEF description: DON'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
Analogous to aeecleclair/Hyperion#926
<!--#### Sources at the end-->
<!--Anything relevant that does not quite fit in the summary-->
<!--Don't touch these two tags-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [x] 😶‍🌫️ No impact for the end-users
- [ ] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [x] Other: README <!--Not module-oriented: write something!-->
- [x] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a local client using a pre-prod backend
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
This *is* documentation.
</details>
commit 603a6ac
Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Fri Feb 20 23:38:05 2026 +0100
Optimize(Web): gzip pre-compression (aeecleclair#653)
<!--BRIEF description: DON'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
The web version can be unbearably slow. One way to fix it is
compression.
- Compression = fewer data is transferred over the network = faster
loading times (even more blatant in slow networks)
- Pre-compression = compressed once (here I included this in the
building of the Docker image), served instantly from disk, no CPU
overhead, and allows more aggressive levels without downsides for the
client (source: the creator of gzip himself said so on StackOverflow) =
even faster
- gzip = already in Nginx by default. Brotli may be even faster to
decompress, and supported everywhere as well, but building a
Nginx+Brotli image really is unmaintainable for us.
<!--#### Sources at the end-->
Sources:
- https://stackoverflow.com/a/37892135/30331616
A video is better than 1000 words: ~30% faster with a fast connection.
Can go up to 2x faster in slower networks.
Consistently 12.0-12.2s for https://titan.dev.eclair.ec-lyon.fr and
8.7-9.0s for https://titan-1.dev.eclair.ec-lyon.frhttps://github.com/user-attachments/assets/a3d00882-fd46-4221-b337-1857829246a3
Subset of the draft aeecleclair#646 for Nginx pre-compression.
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] Nginx config: gzip config: gzip & gunzip, static, level 9, >512
bytes, mime types to take text-based files & avoid images,
- [x] Dockerfile: include the compression there, for >512 bytes file,
take text-based files & avoid image
- [x] Consistent params between the Nginx config and the compression
during image build.
- [x] Re-run `flutter pub run pdfx:install_web` to regenerate the PDF
script
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [x] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [ ] 😶‍🌫️ No impact for the end-users
- [x] Optimization
- [ ] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [x] Other: Dockerfile, Nginx config, index.html <!--Not
module-oriented: write something!-->
- [x] 1. Tested this locally: built and run my Docker image
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [x] 3. Tested in a local client using a pre-prod backend
- [x] 4. Created the 1st Titan pre-prod for the occasion
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `//` Comments
- [ ] No documentation needed
</details>
commit d06e20c
Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Tue Feb 10 14:30:14 2026 +0100
Update README.md and .env.template (aeecleclair#638)
<!--BRIEF description: DON'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
Titan counterpart of aeecleclair/Hyperion#845
<!--#### Sources at the end-->
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] Follow aeecleclair/Hyperion#845 style: working environment >
dependencies > fill the config file (`.env`) > launch it > beyond
- [x] Pre-fill the `.env`
<!--Anything relevant that does not quite fit in the summary-->
Go on https://github.com/aeecleclair/Titan/blob/update/readme/README.md
to see the Markdown preview.
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [x] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [x] 😶‍🌫️ No impact for the end-users
- [ ] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [x] Other: Installation guide <!--Not module-oriented: write
something!-->
This PR *is* documentation.
</details>
commit 27a10d9
Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Mon Feb 9 13:48:05 2026 +0100
Use a `web_dev_config.yaml` (a Flutter 3.38 novelty) (aeecleclair#651)
<!--BRIEF description: DON'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
`web_dev_config.yaml` is a brand-new config file, added in Flutter 3.38.
Here it's first use will be to use the port 3000 without having to type
it ever again, even in command line!
Also, sync-ed headers with the Nginx config.
Fixing the port and headers here means **reproducible** runs **aligned**
with the way (static) builds are served by Nginx.
<!--#### Sources at the end-->
Source:
https://docs.flutter.dev/platform-integration/web/web-dev-config-file
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] Add a `web_dev_config.yaml` for port 3000
- [x] Remove the `--web-port 3000` from the launch.json
- [x] Add `Cache-Control` headers and sync-ed with the Nginx config
- [x] Fix: the pubspec.lock automatically sync-ed the Dart SDK version
on the pubspec.yaml (someone modified it by hand and didn't `pub get`
afterward)
<!--Anything relevant that does not quite fit in the summary-->
<!--Don't touch these two tags-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [x] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [x] 😶‍🌫️ No impact for the end-users
- [ ] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [x] Other: Development only (file only used locally by devs) <!--Not
module-oriented: write something!-->
- [x] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [x] 3. Tested in a local client using a pre-prod backend
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `//` Comments
- [x] No documentation needed
</details>
commit cb570b2
Author: Armand Didierjean <95971503+armanddidierjean@users.noreply.github.com>
Date: Mon Feb 9 12:56:18 2026 +0100
Release 2.0.6 (aeecleclair#650)
<!--BRIEF description: DON'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
...
<!--#### Sources at the end-->
<!--Use a keyword, then #123 for the same repo or
aeecleclair/RepoName#123 for another-->
<!--Keywords: "closes", "fixes", "resolves" -->
<!--Fixes #-->
<!--Keywords: "depends on", "blocked by" -->
<!--Depends on aeecleclair/Hyperion#-->
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] ...
- [ ] ...
<!--Anything relevant that does not quite fit in the summary-->
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [ ] 😶‍🌫️ No impact for the end-users
- [ ] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [ ] Other: ... <!--Not module-oriented: write something!-->
- [ ] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a local client using a pre-prod backend
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `//` Comments
- [ ] No documentation needed
</details>
commit 02a9741
Author: Timothée Robert <114694873+Rotheem@users.noreply.github.com>
Date: Thu Feb 5 15:21:20 2026 +0100
Fix web worker (aeecleclair#649)
<!--BRIEF description: DON'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
...
<!--#### Sources at the end-->
<!--Use a keyword, then #123 for the same repo or
aeecleclair/RepoName#123 for another-->
<!--Keywords: "closes", "fixes", "resolves" -->
<!--Fixes #-->
<!--Keywords: "depends on", "blocked by" -->
<!--Depends on aeecleclair/Hyperion#-->
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] ...
- [ ] ...
<!--Anything relevant that does not quite fit in the summary-->
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [ ] 😶‍🌫️ No impact for the end-users
- [ ] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [ ] Other: ... <!--Not module-oriented: write something!-->
- [ ] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a local client using a pre-prod backend
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `//` Comments
- [ ] No documentation needed
</details>
commit f19e347
Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Fri Jan 30 16:03:33 2026 +0100
Release v2.0.5+163-alpha (aeecleclair#645)
commit 5e73e13
Author: Timothée Robert <114694873+Rotheem@users.noreply.github.com>
Date: Fri Jan 30 15:58:14 2026 +0100
Correct member filtering (aeecleclair#644)
Fix member filtering in phonebook
<!--#### Sources at the end-->
<!--Use a keyword, then #123 for the same repo or
aeecleclair/RepoName#123 for another-->
<!--Keywords: "closes", "fixes", "resolves" -->
<!--Fixes #-->
<!--Keywords: "depends on", "blocked by" -->
<!--Depends on aeecleclair/Hyperion#-->
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] ...
- [ ] ...
<!--Anything relevant that does not quite fit in the summary-->
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [ ] 😶‍🌫️ No impact for the end-users
- [ ] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [ ] Other: ... <!--Not module-oriented: write something!-->
- [ ] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a local client using a pre-prod backend
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `//` Comments
- [ ] No documentation needed
</details>
commit 4f8095a
Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Fri Jan 30 15:53:25 2026 +0100
Feat(phonebook): button to copy a pastable email list (aeecleclair#619)
As asked by the clients of this module, a button to copy to clipboard
the email list of an association's term, so that it can be pasted in and
parsed by mail clients
Not sure it's the best UI rendering, tho
<img width="1113" height="502" alt="image"
src="https://github.com/user-attachments/assets/6754bb26-24c4-4e03-b884-6bf580d3293e"
/>
commit 36e8580
Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Fri Jan 30 14:39:27 2026 +0100
Association groupement (aeecleclair#643)
<!--BRIEF description: DON'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
Assuming this is the front-end of aeecleclair/Hyperion#759
<!--#### Sources at the end-->
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] ...
- [ ] ...
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [x] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [ ] 😶‍🌫️ No impact for the end-users
- [ ] Core functionality changes
- [x] Single module changes
- [ ] Multiple modules changes
- [ ] Other: ... <!--Not module-oriented: write something!-->
- [x] 1. Tested this locally
- [x] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a local client using a pre-prod backend
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `//` Comments
- [ ] No documentation needed
</details>
---------
Co-authored-by: Thonyk <timr.web@free.fr>
commit e42acfb
Author: NakoGH <rbelahcene10@gmail.com>
Date: Tue Jan 27 19:30:08 2026 +0100
Myeclpay export history to csv (aeecleclair#641)
<!--BRIEF description: DON'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
<img width="437" height="449" alt="image"
src="https://github.com/user-attachments/assets/2d20a1c6-a185-4851-90b7-fb7a5da98d89"
/>
<!--#### Sources at the end-->
<!--Use a keyword, then #123 for the same repo or
aeecleclair/RepoName#123 for another-->
<!--Keywords: "closes", "fixes", "resolves" -->
<!--Fixes #-->
<!--Keywords: "depends on", "blocked by" -->
<!--Depends on aeecleclair/Hyperion#-->
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] ...
- [ ] ...
<!--Anything relevant that does not quite fit in the summary-->
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [x] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [ ] 😶‍🌫️ No impact for the end-users
- [ ] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [ ] Other: ... <!--Not module-oriented: write something!-->
- [x] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a local client using a pre-prod backend
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `//` Comments
- [ ] No documentation needed
</details>
commit 98b6486
Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Tue Jan 27 15:58:31 2026 +0100
Feat(Booking): manage from dialog (aeecleclair#617)
[Requested by Sid]
The point is to make the booking module more intuitive to manage a
booking you're authorized to manage (if you're manager ~~or if it's a
booking you requested~~).
You click on the colored cells in the calendar, and the popup lets you
henceforth manage it (i.e. edit, copy information, and crucially: accept
and decline). Previously, the popup was there but with read-only stuff,
now there's "write" stuff as well.
See screen recording below: on the manager page, pending booking
requests are now displayed, but translucent to distinguish them from the
accepted ones. In any case, the manager, can tap the booking to manage
it from the dialog instead of scrolling through dozens of cards, making
its life far easier.
https://github.com/user-attachments/assets/82f680ab-0583-41f0-892f-9e32eee6714b
commit 2dd1133
Author: Warix <39554785+warix8@users.noreply.github.com>
Date: Fri Jan 16 14:34:03 2026 +0100
[.env] Minimal Hyperion Version (aeecleclair#480)
These changes introduce a **minimal Hyperion version** to ensure Titan
can work properly.
When a new Titan version with a new Hyperion including breaking changes
(e.g. login system) is introduced, there will be a downtime because the
stores take a few hours to review the version.
Thus, the new version is submitted to the store, this version will work
because it will fall back to the alpha version.
No downtime anymore for introducing breaking changes.
---------
Co-authored-by: Foucauld Bellanger <63885990+Foukki@users.noreply.github.com>
Co-authored-by: Marc-Andrieu <marc.andrieu@outlook.com>
Co-authored-by: Marc-Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
commit f7c7831
Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Mon Jan 12 10:00:03 2026 +0100
Release v2.0.4+162-alpha (aeecleclair#639)
commit 02c3528
Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Mon Jan 12 09:51:04 2026 +0100
Fix(Flutter web deprecation): use worker version special token (+ HTML formatting) (aeecleclair#637)
<!--BRIEF description: DONT'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
For a long time we've had an annoying deprecation warning everytime we
launch the project locally, and today I'm fed up with it.
<!--#### Sources at the end-->
Source: https://docs.flutter.dev/platform-integration/web/initialization
<!--Use a keyword, then #123 for the same repo or
aeecleclair/RepoName#123 for another-->
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] Use the template `{{flutter_service_worker_version}}` as intended
per the docs
- [x] Format the index.html
<!--Anything relevant that does not quite fit in the summary-->
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [x] 😶‍🌫️ No impact for the end-users
- [ ] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [x] Other: follow deprecation warning <!--Not module-oriented: write
something!-->
- [ ] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [x] 3. Tested in a local client using a pre-prod backend
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `//` Comments
- [x] No documentation needed
</details>
commit cc72b0b
Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Sun Jan 11 23:46:06 2026 +0100
Fix: bump google_fonts to use the new Flutter API to find fonts (aeecleclair#636)
<!--BRIEF description: DONT'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
notes](https://docs.flutter.dev/release/release-notes/release-notes-3.38.0),
has the following breaking change:
> Remove deprecated AssetManifest.json file by @matanlurey in
[172594](flutter/flutter#172594)
But `google_fonts 6.2.1` relied on this file, until 6.3.0 where,
according to the
[changelog](https://pub.dev/packages/google_fonts/changelog#630), they:
> Update AssetManifest to use the builtin Flutter API.
That's why `google_fonts` version ought to be bumped.
NB: 7.0.0 was released 4 days ago, without breaking changes according to
the changelog, I decided to test it and it works as before aeecleclair#635
<!--#### Sources at the end-->
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] Use `google_fonts 7.0.0`
<!--Anything relevant that does not quite fit in the summary-->
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [x] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [x] 😶‍🌫️ No impact for the end-users: that's why an alpha was for:
testing
- [ ] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [x] Other: dependency <!--Not module-oriented: write something!-->
- [ ] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [x] 3. Tested in a local client using a pre-prod backend
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `//` Comments
- [x] No documentation needed
</details>
commit 517fcc8
Author: Armand Didierjean <95971503+armanddidierjean@users.noreply.github.com>
Date: Sun Jan 11 15:53:03 2026 +0100
feat: Flutter 3.38.6 and ios generated files (aeecleclair#635)
<!--BRIEF description: DONT'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
...
<!--#### Sources at the end-->
<!--Use a keyword, then #123 for the same repo or
aeecleclair/RepoName#123 for another-->
<!--Keywords: "closes", "fixes", "resolves" -->
<!--Fixes #-->
<!--Keywords: "depends on", "blocked by" -->
<!--Depends on aeecleclair/Hyperion#-->
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] ...
- [ ] ...
<!--Anything relevant that does not quite fit in the summary-->
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [ ] 😶‍🌫️ No impact for the end-users
- [ ] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [ ] Other: ... <!--Not module-oriented: write something!-->
- [ ] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a local client using a pre-prod backend
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `//` Comments
- [ ] No documentation needed
</details>
commit d48f6fd
Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Sat Jan 10 19:46:32 2026 +0100
Fix: lower the minimum Android API level to Flutter's (keep the targeted SDK version to 36) (aeecleclair#634)
<!--BRIEF description: DON'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
Accidentally bumped the Android API instead of only the SDK +
Gradle-related stuff
<!--#### Sources at the end-->
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] Change Android's so-called minSdk (they name things weirdly)
</summary>
- [x] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [x] 😶‍🌫️ No impact for the end-users: because we can't release an app
compatible with only about 2% of the market (according to the Play Store
console)
- [ ] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [x] Other: build-related stuff to ensure we're still compatible with
most of our users' phones <!--Not module-oriented: write something!-->
- [ ] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a local client using a pre-prod backend
- [x] 0. Untestable (exceptionally), will be tested in alpha directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `//` Comments
- [x] No documentation needed
</details>
---------
Co-authored-by: Armand Didierjean <95971503+armanddidierjean@users.noreply.github.com>
commit be5d7d9
Author: Timothée Robert <114694873+Rotheem@users.noreply.github.com>
Date: Sat Jan 10 02:13:56 2026 +0100
Fix mypayment root (aeecleclair#633)
<!--BRIEF description: DONT'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
...
<!--#### Sources at the end-->
<!--Use a keyword, then #123 for the same repo or
aeecleclair/RepoName#123 for another-->
<!--Keywords: "closes", "fixes", "resolves" -->
<!--Fixes #-->
<!--Keywords: "depends on", "blocked by" -->
<!--Depends on aeecleclair/Hyperion#-->
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] ...
- [ ] ...
<!--Anything relevant that does not quite fit in the summary-->
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [ ] 😶‍🌫️ No impact for the end-users
- [ ] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [ ] Other: ... <!--Not module-oriented: write something!-->
- [ ] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a local client using a pre-prod backend
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `//` Comments
- [ ] No documentation needed
</details>
commit efd6b69
Author: Timothée Robert <114694873+Rotheem@users.noreply.github.com>
Date: Sat Jan 10 01:45:11 2026 +0100
Fix root comparison for permission (aeecleclair#632)
<!--BRIEF description: DONT'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
...
<!--#### Sources at the end-->
<!--Use a keyword, then #123 for the same repo or
aeecleclair/RepoName#123 for another-->
<!--Keywords: "closes", "fixes", "resolves" -->
<!--Fixes #-->
<!--Keywords: "depends on", "blocked by" -->
<!--Depends on aeecleclair/Hyperion#-->
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] ...
- [ ] ...
<!--Anything relevant that does not quite fit in the summary-->
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [ ] 😶‍🌫️ No impact for the end-users
- [ ] Core functionality changes
- [ ] Single module changes
- [ ] Multiple modules changes
- [ ] Other: ... <!--Not module-oriented: write something!-->
- [ ] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a local client using a pre-prod backend
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `//` Comments
- [ ] No documentation needed
</details>
commit 2bc5124
Author: Flaim-X2 <cecchinato.mathieu.n@gmail.com>
Date: Wed Jan 7 01:20:40 2026 +0100
AMAP in cents (aeecleclair#496)
Keeps amounts, accounts and balances in cents and calculates them in
cents, i.e. in int. Then the front-end displays in euros and takes in
euros.
---------
Co-authored-by: Maxime Roucher <maximeroucher@gmail.com>
Co-authored-by: Lühmos <guillaume.foucher.pele@gmail.com>
Co-authored-by: Maillard Antoine <145469528+cotanoine@users.noreply.github.com>
Co-authored-by: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
commit 954c031
Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Wed Jan 7 01:02:22 2026 +0100
Myeclpay to mypayment (aeecleclair#623)
- rename "MyECLPay" to "MyPayment", excepted for what is displayed in
the UI
- rename the `paiement` module to `mypayment`
commit 75c9c35
Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Mon Jan 5 23:12:48 2026 +0100
Fix: Android namespace (aeecleclair#631)
commit ef81d43
Author: Timothée Robert <114694873+Rotheem@users.noreply.github.com>
Date: Sat Jan 3 23:38:49 2026 +0100
Modular permissions (aeecleclair#618)
<img width="1911" height="814" alt="image"
src="https://github.com/user-attachments/assets/9493ff28-e01b-497e-af42-8707151042d7"
/>
<img width="1900" height="574" alt="image"
src="https://github.com/user-attachments/assets/a01ee66b-68b4-4d5b-9126-f922e88561ac"
/>
<img width="1880" height="824" alt="image"
src="https://github.com/user-attachments/assets/70761a00-c717-4cce-a95e-2719010001c0"
/>
commit 8c93ccf
Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Sat Jan 3 22:46:50 2026 +0100
Test build with google services (aeecleclair#630)
test
commit 41b0cf6
Author: Marc Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Wed Dec 31 22:47:24 2025 +0100
Release 1.4.1+157 (aeecleclair#627)
commit 38b119a
Author: Foucauld Bellanger <63885990+foucblg@users.noreply.github.com>
Date: Wed Dec 31 21:43:22 2025 +0100
bump mobile_scanner (aeecleclair#602)
Need to bump mobile_scanner in order to reach 16ko compatibility.
Since v.7.0.0 scanner needs to be stopped properly before a new start().
Co-authored-by: Foucauld Bellanger <63885990+Foukki@users.noreply.github.com>
commit 87ceca7
Author: NakoGH <rbelahcene10@gmail.com>
Date: Wed Dec 31 21:38:29 2025 +0100
add : button to show/hide revoked devices (aeecleclair#624)
<!--BRIEF description: DONT'T EXPLAIN the code: JUSTIFY what this PR is
for!-->
<img width="416" height="868" alt="image"
src="https://github.com/user-attachments/assets/ce62a088-cc6d-427f-9af4-e2a853387ae9"
/>
<img width="453" height="881" alt="image"
src="https://github.com/user-attachments/assets/9282f405-2ec8-436f-8dbd-8df67fa921e0"
/>
...
<!--#### Sources at the end-->
<!--Use a keyword, then #123 for the same repo or
aeecleclair/RepoName#123 for another-->
<!--Keywords: "closes", "fixes", "resolves" -->
<!--Fixes #-->
<!--Keywords: "depends on", "blocked by" -->
<!--Depends on aeecleclair/Hyperion#-->
<!--DESCRIBE the changes: tell the BIG STEPS, use a CHECKLIST to show
progress. You can explain below how the code works.-->
- [x] ...
- [ ] ...
<!--Anything relevant that does not quite fit in the summary-->
<!--Don't touch thses two tags-->
<details>
<summary>
</summary>
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [x] ✨ New feature (non-breaking change which adds functionality)
- [ ] 🔨 Refactor (non-breaking change that neither fixes a bug nor adds
a feature)
- [ ] 🔧 Infra CI/CD (changes to configs of workflows)
- [ ] 💥 BREAKING CHANGE (fix or feature that require a new minimal
version of the front-end)
- [ ] 😶‍🌫️ No impact for the end-users
- [ ] Core functionality changes
- [x] Single module changes
- [ ] Multiple modules changes
- [ ] Other: ... <!--Not module-oriented: write something!-->
- [x] 1. Tested this locally
- [ ] 2. Added/modified tests that pass the CI (or tested in a
downstream fork)
- [ ] 3. Tested in a local client using a pre-prod backend
- [ ] 0. Untestable (exceptionally), will be tested in prod directly
- [ ] Updated [the docs](docs.myecl.fr) accordingly : <!--[Docs#0 -
Title](https://github.com/aeecleclair/myecl-documentation/pull/0)-->
- [ ] `//` Comments
- [x] No documentation needed
</details>
commit a9e179b
Author: Maillard Antoine <145469528+cotanoine@users.noreply.github.com>
Date: Sat Dec 6 13:28:24 2025 +0100
Reloads saved preferences for module order (aeecleclair#622)
Should allow module order to be retained when reopening the app.
Co-authored-by: NakoGH <rbelahcene10@gmail.com>
commit 99be830
Author: Marc-Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Sun Nov 30 05:56:33 2025 +0100
New issue template and actual PR template (aeecleclair#620)
Change to the pull request template to improve reviews and enable quick
understanding of the nature of the changes to be reviewed.
Put it in a path that GitHub understands.
Add issue template BTW.
commit ab34a6d
Author: NakoGH <rbelahcene10@gmail.com>
Date: Sun Nov 30 05:20:48 2025 +0100
Show purchases per year in Module Purchases (aeecleclair#621)
<img width="292" height="430" alt="image"
src="https://github.com/user-attachments/assets/0f229e3e-10fb-4114-b747-8d8f077ec616"
/>
commit 52c1283
Author: julien4215 <120588494+julien4215@users.noreply.github.com>
Date: Fri Nov 21 16:42:34 2025 +0100
Handle error when getting QR code content (aeecleclair#608)
commit 8c3cc8f
Author: julien4215 <120588494+julien4215@users.noreply.github.com>
Date: Fri Nov 21 16:31:32 2025 +0100
Try/catch authentication for paiement module (aeecleclair#607)
To handle the exceptions in a better way we should use the exceptions of
the package local_auth when this gets released:
flutter/packages#10147.
commit 6710417
Author: Marc-Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Fri Nov 7 16:38:41 2025 +0100
UI: Reduce the size of the module name in TopBar and drawer (aeecleclair#616)
As a consequence of the new module "Centralassocation" whose name is too
long for the drawer
<img width="300" height="1815" alt="image"
src="https://github.com/user-attachments/assets/cfd2c44e-c0ee-4967-8ac3-ddaa884bc74e"
/>
commit 3ba130b
Author: Timothée Robert <114694873+Rotheem@users.noreply.github.com>
Date: Tue Nov 4 02:01:45 2025 +0100
Add myeclpay invoices (aeecleclair#613)
commit 33cfaf9
Author: Luhmos <guillaume.foucher.pele@gmail.com>
Date: Tue Oct 21 12:34:53 2025 +0200
New module: Centralassociation (aeecleclair#609)
New module based on Centralisation. It adapts the code to use the links
from the Centralassociation website instead, using more appropriate
classes.
commit 7f92e22
Author: Marc-Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Mon Sep 8 20:26:10 2025 +0200
Release 1.3.0+155 (aeecleclair#599)
commit 5b5b300
Author: Marc-Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Mon Sep 8 20:25:27 2025 +0200
Fix QR code scanner of purchases (strictly) (aeecleclair#600)
* [x] Fix `onScan` argument type to actually pass the scanned secret
downstream down to the request to Hyperion
* [x] replace "validate" button with "next"
commit b5a3aeb
Author: Marc-Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Mon Sep 8 14:32:26 2025 +0200
Account management - Part I (aeecleclair#575)
Fixaeecleclair#396Fixaeecleclair#305Fixaeecleclair#222
commit 02f9517
Author: Marc-Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Mon Sep 8 13:14:14 2025 +0200
Remember what store the user selected last (aeecleclair#595)
Feedback: several people scanned several times for the wrong store
because the default one was always the same.
Now we put in the storage the ID of the last store selected by the user,
so that when s/he comes back on MyECL during an event on behalf of one
club, the virtual money goes the right store.
commit 10279a1
Author: Maxime Roucher <maximeroucher@gmail.com>
Date: Mon Sep 8 13:08:24 2025 +0200
fix: migrating to new key encoding (aeecleclair#598)
commit 983bc29
Author: Marc-Andrieu <146140470+Marc-Andrieu@users.noreply.github.com>
Date: Mon Sep 1 18:41:58 2025 +0200
Fix: access memberships from admin UI (aeecleclair#590)
commit 04f9da3
Author: Maxime Roucher <maximeroucher@gmail.com>
Date: Mon Sep 1 09:47:34 2025 +0200
fix: setting interval default end time to 23:59:59 (aeecleclair#589)
commit e5adffa
Author: NakoGH <rbelahcene10@gmail.com>
Date: Wed Jul 30 21:57:14 2025 +0200
rm .yaml add .yml (aeecleclair#579)
commit d5e3bc4
Author: Timothée Robert <114694873+Rotheem@users.noreply.github.com>
Date: Sat Jul 19 19:57:16 2025 +0200
New async child (aeecleclair#567)
This PR is meant to extend the current AsyncChild to handle multiple
AsyncValues simultaneously to avoid having to use AsyncChild in
AsyncChild.
For example with Phonebook we need to fetch associations and
associationKinds and both are mixed up, thus we can't show any of them
separately and we need to wait for both to be available.
With this one widget would be sufficient.
* fix: first batch of fixes
* sort translations
* fix: second batch of fixes
* fix: amap text direction conflict
* fix: clean up
* fix: feed_permissions and tests
* fix: router
* fix: rebase
* fix: deprecation
creatorpiyush pushed a commit to creatorpiyush/packages that referenced this pull request Jun 10, 2026
…tform implementations (flutter#10147)
Platform implementation portion of flutter#9981
- Adds the new `LocalAuthException` class for structured errors.
- Deprecates `AuthenticationOptions.useErrorDialogs`
Part of:
- flutter/flutter#113687
- flutter/flutter#175125
## Pre-Review Checklist
[^1]: Regular contributors who have demonstrated familiarity with the repository guidelines only need to comment if the PR is not auto-exempted by repo tooling.
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

autosubmitMerge PR when tree becomes green via auto submit Appfederated: partial_changesPR that contains changes for only a single package of a federated plugin changep: local_authplatform-androidplatform-iosplatform-macosplatform-windows

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@stuartmorgan-g@jmagman@mboetger@vashworth