-
1.0.8-rc11
Pre-releasereleased this
2026-08-31 13:38:05 +01:00 | -13 commits to main since this releaseAdded
nothing
Changed
- [Yavsc.Api.Test] Mise a jour de
Microsoft.EntityFrameworkCore.Sqlitevers10.0.11afin de supprimer l'alerte NU1903 liee aSQLitePCLRaw.lib.e_sqlite32.1.11. - [Yavsc.Org] Nettoyage de la configuration NuGet pour le restore: suppression du fichier local
Directory.Packages.propsau profit du fichier racine centralise. - [Yavsc.Org] Suppression de references de packages redondantes dans le projet, sans impact fonctionnel attendu.
Fixed
- [Yavsc.Api.Test] Le restore n'emet plus le warning de vulnerabilite
NU1903surSQLitePCLRaw.lib.e_sqlite3. - [Yavsc.Org] Suppression d'une vulnerabilite de severite elevee sur AutoMapper apres publication et consommation de la nouvelle version candidate de
HigginsSoft.IdentityServer8.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- [Yavsc.Api.Test] Mise a jour de
-
1.0.8-rc10
Pre-releaseAll checks were successfulForgejo Release / release (push) Successful in 10m6sreleased this
2026-08-31 12:19:33 +01:00 | -10 commits to main since this releaseAdded
- [PostIt] Une page d'historique des commandes billing permet maintenant d'ouvrir une commande existante.
- [PostIt] Une vue "Demandes en cours" en lecture seule est disponible pour le performer, filtrée sur les statuts actifs (Inserted, Accepted, InProgress).
- [Yavsc.Org] Nouvelles entités
CountryetPerformerCodeInputValidationpour piloter la validation du code entreprise performer par pays.
Changed
- [PostIt] La page détail billing se préremplit depuis une commande existante (Rdv, Brush, MBrush) et passe en mode mise à jour.
- [Yavsc.Org] Le formulaire
Manage/SetActivityinclut désormais le pays d'exercice (fr,en,pt) et applique la regex associée au champSIREN. - [Yavsc.Org] La vérification externe du numéro d'entreprise est conservée uniquement pour le pays
fr.
Fixed
- [PostIt] Le flux historique n'est plus limité à une simple liste: l'action d'ouverture charge la commande cible puis navigue vers la page détail.
- [Yavsc.Org] Le champ
SIRENn'est plus validé avec une règle unique indépendante du pays d'exercice.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
1.0.8-rc9
Pre-releasereleased this
2026-08-30 19:51:57 +01:00 | 0 commits to main since this releaseAdded
nothing
Changed
masquage non-owner côté backend de l'ACL du billet
Fixed
On a maintenant le comportement attendu bout en bout:
ACL chargée depuis le BlogPostDto
noms de cercles affichés dans le dialogue ACL côté PostItDownloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Source code (ZIP)
-
1.0.8-rc8
Pre-releasereleased this
2026-08-29 19:15:28 +01:00 | 8 commits to main since this releaseAdded
nothing
Changed
nothing
Fixed
The PostIt publish toggle button
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
1 download
-
Source code (ZIP)
-
1.0.8-rc7
Pre-releasereleased this
2026-08-29 18:14:28 +01:00 | 11 commits to main since this releaseAdded
- [PostIt] The search pattern now persists
Changed
- The blog spot path is now
/api/v1/blogspot(yet in last release)
Fixed
- [Yavsc.Org] (Ticket #45) La forme de l'email de l'utilisateur est maintenant validée avant l'envoi du formulaire d'enregistrement
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
1.0.8-rc6
Pre-releasereleased this
2026-08-29 02:50:27 +01:00 | 24 commits to main since this releaseAdded
- a code cleanup,
- a first Xamarin.UITest is successful, but disabled, because breaking the actual CI process,
- Android app starts, the login process succeeds
Changed
L'identifiant de l'application client Android a changé, il passe en minuscules :
fr.pschneider.postitFixed
a bug posting and retrieving ACL from the backend,
the ACL now comes along with the article,
[TODO][PostIt] keep ACL along with the articleDownloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
1.0.8-rc1
Pre-releasereleased this
2026-08-21 23:09:56 +01:00 | 145 commits to main since this releaseAdded
-
BlogAclApiTests.PostCircleAuthorization_returns_201_when_payload_mirrors_PostIt_shape_against_existing_circle_named_test- test de non-régression qui épingle la forme exacte du payload
que PostIt envoie àPOST /api/v1/blogacl(un objet
PostAccessControlRulePayloadavecCircleIdetBlogPostId).
C'est le verrou côté test du fix applicatif PostIt + serveur.
BlogAclApiTests.PostCircleAuthorization_never_returns_500: une
[Theory]couvrant quatre shapes de payload ({ circleId },
corps vide,{ blogPostId }seul,{ circleId, blogPostId: 0 })
qui doivent tous retourner un statut différent de 500. Toute
réintroduction d'un chemin 500 dans le futur fera rougir ce test.BlogAclApiTests.PostCircleAuthorization_dosent_return_500et
..._dosent_return_500_on_success: entry points[Fact]qui
appellent la[Theory]ci-dessus avec un payload spécifique
chacun, pour pouvoir filtrer en isolation depuis la ligne de
commande ou le CI.- Règle « Pas de
objectdans le code source applicatif » ajoutée
àCONTRIBUTING.md: types de retour, paramètres, champs,
propriétés, variables locales doivent être typés statiquement.
dynamicest interdit pour les mêmes raisons.
Changed
BlogAclApiController.CheckOwnerdevientCheckOwnerAsyncet
utiliseFirstOrDefaultAsyncau lieu deFirst, supprimant
l'appel LINQ synchrone sur le fil de la requête et retournant
falsesur cercle manquant (le contrôleur mappe déjà cela vers
ChallengeResult).BlogsWebServerFixtureseedalice, sonCircleet son
BlogPostune seule fois au démarrage du host, sur la
SqliteConnectionpartagée (Cache=Shared). Le précédent
EnsureDeletedau début de chaque test fermait la connexion
statique et détruisait le store:memory:pour tous les autres
DbContext; il est retiré au profit d'unEnsureCreated
idempotent.
Fixed
POST /api/v1/blogaclne retourne plus 500 sur les payloads
dontBlogPostIdest absent ou à zéro. Le contrôleur rejette
BlogPostId <= 0avec400 BadRequestavant que la requête
n'atteigneSaveChangesAsync. L'incident de prod du 2026-08-21
sur mercure (PostIt envoyant seulementcircleId, le serveur
voyantBlogPostId = default(long) = 0et EF Core levant
InvalidOperationExceptionsur l'INSERT) n'est plus atteignable.- PostIt
PostAclDialogViewModel.AddAsyncenvoie désormais le
payload explicitePostAccessControlRulePayload { CircleId, BlogPostId }au lieu de l'ancienCircleAuthorization { CircleId }. Le DTO serveurPostAccessControlRulePayloadest
introduit dansYavsc.Abstractpour porter le contrat.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
1 download
-
-
1.0.7
Pre-releasereleased this
2026-08-18 18:40:43 +01:00 | 193 commits to main since this releaseAdded
- Per-post ACL in PostIt: a new “Manage ACL” page, opened from the ACL
button on a selected post, lets the post author grant or revoke
grants for individuals or circles. The server scopes each grant
operation tocaller == post.AuthorIdand returns404(not403)
for posts the caller does not own, so the existence of another
user's post is not leaked. - Circle membership API + UI: three new REST endpoints under
/api/circle/{id}/members(GETlist,POSTadd,DELETE
remove) and a new “Members” column on the My Circles page with an
“Add a member” button that opens a search modal. The search modal
reusesIUserDirectory(introduced by theIContactServicesplit
in this same release) — exactly the use case the abstraction was
carved out for. - Publish toggle for blog posts: a new
PUT /api/BlogApi/{id}/publish
endpoint, and aPublishedcheckbox in the post toolbar that
toggles aBlogSpotPublicationrow for the post. The publish
signal flows through the pre-existingPermissionHandler.IsPublic
path, so no new column was needed and the server-side authorisation
logic is unchanged. UserSearchApiControllerinYavsc.Blogs:
GET /api/user-search?q=...&e=...&take=.... Any-authenticated-
caller endpoint that exposes the user's email under a closed-
community assumption (documented in the controller's XML doc).
Wired to the PostIt Desktop address book so the user search modal
picks it up.IYavscApiClientabstraction inYavsc.Api.Client. The transport
for the blog/circle/blog-acl/user-search clients is now accessed
through this interface, soPostIt.Testscan stub the HTTP layer
without spinning up a real WebAPI host.- Forgejo Actions release workflow: a
.forgejo/workflows/release.yml
pipeline that builds and publishes a release with the PostIt APK
on tag push. Written in pure bash (the runner image has no Node),
usesjqfor JSON body construction and response parsing, uses the
runner-providedGITHUB_TOKEN(no repo-level secret needed),
validates the CHANGELOG section heading before allowing the tag
to ship. make release V=<version>target: creates arelease/<V>branch
frommain, bumps the<Version>property in every.csprojvia
dotnet-gitversion /updateprojectfiles, commits the bump on the
release branch, and pushes toorigin. Fails fast if the working
tree is dirty or ifHEADis not onmain.- Forgejo status badges in the README.
Changed
- The new Publish toggle replaces the “Visibility enum” approach
originally drafted in this branch: the existingBlogSpotPublication
table already carried enough information to expose a publish
switch, so no schema change was needed. The originalfeat(blog): add Visibility { Private, Public }commit and its EF migration
were reverted in favour of the endpoint-only toggle. BlogPostDTO andIBlogPostmoved fromPostIt.Modelsto
Yavsc.Abstract.Blogspot, the shared assembly where the server-side
entity and the wire DTO both live. RenamedYavsc.Blogspot.BlogPost
toBlogPostDtoto make the wire/entity distinction explicit.BlogAclApiControllerandCircleApiControllermoved from
Yavsc.Api(not yet enabled in production) toYavsc.Blogs, where
they belong next to theBlogSpotServicethey depend on.IContactServicesplit fromIUserDirectory: the two interfaces
previously conflated the local address-book access (mobile-only,
viaContacts.Default) and the Yavsc user-search access
(Desktop-only, via/api/user-search) behind a single facade. The
split restores theContactDto.Emailsmulti-value shape that was
being silently flattened to a single string before.- CI: the Forgejo Actions build now compiles
.csprojprojects
directly inside the runner container (which ships the .NET SDK +
Android workload), instead of relying on a separate Docker build
step. Node-based third-party actions were replaced with bash + curljq. The validate-release job parses the CHANGELOG section
heading to derive the channel (stable/preview/unstable)
rather than the patch-version parity alone.
Fixed
CircleApiControllerused to read the caller's user id via
FindFirstValue(ClaimTypes.NameIdentifier), which does not match
when JWT Bearer middleware hasMapInboundClaims = false. Switched
toUser.GetUserId()(triessubfirst, then
ClaimTypes.NameIdentifier, thennameid). This was a latent
bug visible in tests but easy to ship to production if a host
ever disabled the remap.CircleApiControllerandBlogAclApiControllerreads and writes
were not always scoped to the caller's own data. Tightened the
authorisation checks: cross-user reads now return404, not the
raw record.validate-releaseCHANGELOG channel check used to parse the
patch-version parity only, which disagreed with the channel
suffix in the section heading (e.g.## [1.0.7] - preview
would be flagged asstablefrom the parity alone). The job now
inspects the heading line and trusts the suffix when present..forgejo/workflows/release.yml: the asset-upload URL now carries
the asset name as a query-string parameter instead of acurl
positional argument. The previous shape triggered Forgejo's
“Missingnameparameter” 400 in some cases.
Removed
- The
## [Unreleased]block has been moved into this section. - The abandoned
Visibility { Private, Public }enum and its EF
migration, reverted in this release. The publish toggle covers
the same user-visible switch without a schema change.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Per-post ACL in PostIt: a new “Manage ACL” page, opened from the ACL
-
1.0.6
Stablereleased this
2026-08-17 05:44:12 +01:00 | 235 commits to main since this releaseAdded
- Self-hosted Forgejo Actions runner now drives the CI build for the
yavsc repository, using the
pazof/yavsc-build-env:debian12-dotnet10-android36-v2image pulled
from Docker Hub. Workflow runs end-to-end: clone, restore, build,
test, with NuGet.config picking up theisn.pschneider.frfeed. - The build-env image now ships
jq(Debian package, ≥ 1.7), so the
release workflow can build JSON bodies and parse API responses
without a hand-rolledsed-based extractor that was matching the
wrongidfield on minified responses.
Changed
- CI workflow
.forgejo/workflows/buildAndTest.ymlno longer relies on
actions/checkout(the runner image has no Node); clones yavsc via
git, fetches the ref under test, and initializes submodules over
HTTPS.
Fixed
DockerfileandDockerfile.backendno longer carry a redundant
dotnet nuget add sourcestep that conflicted with the GitHub
Actions APK build (--allow-insecure-connectionson an HTTPS
endpoint, exit 1).NuGet.configat the repo root supplies the
isn.pschneider.frfeed for every restore, including inside Docker..forgejo/workflows/release.yml: PATCH on/releases/{id}no longer
404s on existing releases. The previoussed-basedjson_field
matched the lastidon the line (the author's), so it tried to
PATCH/releases/1(the first user of the instance) instead of the
actual release id. Switched tojqfor both body construction and
field extraction.
Downloads
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
1 download
- Self-hosted Forgejo Actions runner now drives the CI build for the