Repository navigation
feat(quetes): quêtes de collection par fascicule - #95
Merged
Lunik merged 3 commits intoOct 24, 2026
Merged
Conversation
The manifest may now carry `collections` (Content, App#90): all the fascicule's prefixes, all its suffixes, all its common, uncommon or rare words, with their members (never a legendary) and an ink and hourglass reward. The server counts each one on the codex and returns `Etat.progression_collections` (serde default) for unlocked fascicules only, so a locked fascicule exposes no total (ADR 0069). POST /palier claims a completed collection like a long-running quest palier, through `palier_recupere`: 403 when locked or incomplete, 409 when claimed. The Quêtes › Fascicules tab shows a "Collection" block under each unlocked fascicule's jalons, reusing CartePalier with the quest title in place of the threshold; claimable ones count in the tab and nav badges. Closes #90 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0151stDRaZV3ScbhwvwjrfQ7
…udits cargo audit flagged RUSTSEC-2026-0381/0382/0383/0385 and npm audit a high advisory on vite 8.3.1 (and moderate ones on vitest): lockfile-only updates to the patched versions. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0151stDRaZV3ScbhwvwjrfQ7 (cherry picked from commit a140f55df0d3ce823acc6ff6d9534bce30e72ab8)
Contributor
Author
|
L’échec de « API et tâches (Rust) » et « PWA (TypeScript) » sur
Le commit Generated by Claude Code |
Lunik
marked this pull request as ready for review
October 24, 2026 14:09
…ment-retention-lyk0n0-collection # Conflicts: # crates/api/src/progression.rs # crates/contrat/src/lib.rs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #90. Piste 2 de
pistes-retention.html(EtymoLogique/Design#51).Les données viennent de EtymoLogique/Content#39. Le champ
collectionsdu manifeste a une valeur par défaut : cette PR fonctionne aussi avec un catalogue qui n’en déclare pas encore.Ce qui change
quete.rs) :CritereCollection, en liste fermée : préfixes, suffixes, mots communs, peu communs, rares ;Collection: identifiant de palier, critère, encre, sabliers, membres ;progression: les membres au codex, mots découverts et briques connues ;total.Manifeste.collections(avec#[serde(default)]) etJeu.collections, par fascicule.Jeu::depuispasse par une petite fonctioncompleterpour rester sous la limite de longueur de Clippy.Etat.progression_collections(palier_id,fascicule_id,progression,total, avec#[serde(default)]) : uniquement pour les fascicules débloqués, donc aucun total d’un fascicule verrouillé (ADR 0069).POST /palierrécupère aussi une collection complète, par la tablepalier_recupereexistante :403si le fascicule est verrouillé ou la collection incomplète ;409si elle est déjà récupérée ;quetesDeCollectionlit la progression du serveur et les récompenses du manifeste. Une collection récupérable compte dansrecompensesARecuperer.CartePalier, avec l’intitulé de la quête (« Tous les préfixes ») à la place du seuil.openapi.json,api.d.tset.sqlx/sont régénérés. Le catalogue d’essai déclare deux collections.Ce qui reste (noté dans la roadmap)
Vérifications
cargo fmt --check,cargo clippy -D warnings,cargo test --workspaceetcargo sqlx prepare --check: OK.403) tant qu’elle est incomplète, puis qu’elle donne 20 gouttes et 1 sablier une fois complète, et409la deuxième fois.npm run lint,npm run typechecketnpm test: OK, dont 3 nouveaux tests du service. Seul reste l’avertissement dePlis.tsx, qui existait avant cette PR.check_identitysurquetes.css: 0 erreur, 0 avertissement.Generated by Claude Code