Fusion de la tête du chantier (924a40d : lots B2 et F) dans le lot D
Les deux côtés gardés partout. Aux coutures : - une objection (redit / contredit) porte sur deux articles, jamais sur un module ; un ordre ne se corrige pas, ni par son auteur ni par un autre ; une coquille du titre suit le chemin de F (l'auteur du titre, un administrateur pour le titre de départ, ou 3 jours), et documents.title suit à l'application ; - votable() couvre les modules ; leurs totaux passent par shown_tally, à l'écran et dans document.json ; - « Modules à voter » ne compte plus une version retenue par une objection (test vu rouge) ; la liste du groupe la compte toujours parmi les propositions en cours ; - le panier : une fonction pour les articles et les modules, avec les versions retenues de F ; un nouvel article se propose dans une section, à sa fin, et peut répondre à une objection ; - migrations 0007 (modules) puis 0008 (objections) ; - C25 et C26 supportent un groupe d'essai où une voix suffit (dès 16 membres). Boucle : fmt, clippy -D warnings, cargo test (227), svelte-check 0, vitest 55, build, e2e 35 / 35 (C1–C33 et M1). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -36,22 +36,29 @@ crates/
|
||||
ld-engine/ # PUR (zéro I/O) : threshold (formule inertielle), inertia (cinq crans, médiane,
|
||||
# référence, échelle), edit (coquille vs fond, diff), assist (découpage, similarité,
|
||||
# longueur), compose (adoption, aperçus), ballot (bulletin scellé ld1:, le dernier
|
||||
# fait foi, jugement d'une transaction), address (SS58, préfixe g1), order (l'ordre
|
||||
# fait foi, jugement d'une transaction), address (SS58, préfixe g1), objection
|
||||
# (redit / contredit : la dernière arrivée retenue, les tours, l'échéance), correction
|
||||
# (la coquille d'un autre : attendre, valider, refuser, l'échéance), order (l'ordre
|
||||
# d'une section : qui en est, complété à la fin, places), pending (modules à voter)
|
||||
trustin-access/ # règles d'accès de trustinWallet : sees / opens / manages_access, vote_way (serveur ou
|
||||
# chaîne), groupes par défaut
|
||||
# chaîne), answers_typo, lifts_objection / reiterates_objection, reads_message,
|
||||
# groupes par défaut
|
||||
ld-server/
|
||||
migrations/ # schéma SQLite — additif seulement
|
||||
src/ # lib.rs (routes, csrf, run) · config.rs (LD_*) · auth.rs (connect OAuth2, invitations,
|
||||
# dev, bootstrap) · team.rs (liens d'équipe) · docs.rs (lecture, aperçus) · proposals.rs (écrire, voter, signaler,
|
||||
# traduire) · adoption.rs (balayage, verrou) · participation.rs (p̃, une fois par
|
||||
# dev, bootstrap) · team.rs (liens d'équipe) · docs.rs (lecture, aperçus) · proposals.rs (écrire, voter,
|
||||
# traduire) · objections.rs (faire, lever, réitérer, la version retenue) · typos.rs
|
||||
# (les coquilles des autres) · messages.rs (la boîte « Messages ») · deadlines.rs
|
||||
# (les échéances de 3 jours) · clock.rs (horloge injectable) · adoption.rs
|
||||
# (balayage, verrou) · participation.rs (p̃, une fois par
|
||||
# jour) · publish.rs (file → git) · wot.rs (W sur la chaîne) · seed.rs ·
|
||||
# seed_amend.rs / inertia_amend.rs (amendements gardés) · ballots.rs (vote groupé,
|
||||
# bulletins de la chaîne Ğ1, confirmation, « ton vote ») · indexer.rs (txComments)
|
||||
# · modules.rs / order.rs / doc_title.rs (les modules, ADR 0009 : l'ordre d'une
|
||||
# section, le titre du document) · module_amend.rs (ajout gardé) · web.rs (sert web/build)
|
||||
tests/ # api.rs (scénarios bout en bout) · ballots.rs (vote par la chaîne, indexeur simulé) ·
|
||||
# modules.rs (ordre, titre, ajout gardé)
|
||||
# objections.rs · typos.rs (lot F, horloge avancée, migration 0008) · modules.rs (ordre,
|
||||
# titre, ajout gardé)
|
||||
seeds/ # acte-engagement-certification.json (trilingue, 33 articles, I1/E1/E2 en vigueur ;
|
||||
# inertie 3, E1/E2 à 4 ; modules : le titre à 4, l'ordre de chaque section à 2)
|
||||
# upcoming/<groupe>.json : les « À venir » des outils d'un groupe (fr, en, es), lus au démarrage
|
||||
@@ -62,14 +69,16 @@ web/src/
|
||||
# OrderModule / OrderEditor (l'ordre d'une section, la liste où l'on clique),
|
||||
# TitleBar / TitlePropose (le titre du document), Seal…
|
||||
lib/wallet/ # injected.ts (portefeuille injectedWeb3, polkadot-api chargé à la signature) · gecko.ts
|
||||
lib/basket.ts # PUR : sections, tout pour / tout contre, versions en concurrence, modules
|
||||
lib/basket.ts # PUR : sections, tout pour / tout contre, versions en concurrence, versions retenues, modules
|
||||
lib/objections.ts # où l'auteur répond à une objection · lib/diff.ts : le diff resserré d'une coquille
|
||||
lib/order.ts # PUR : placer, monter / descendre, ce qui a bougé
|
||||
routes/ # / (accueil + choix du groupe) · connexion · invitation · equipe · g/[group] (piliers, en cours) ·
|
||||
# g/[group]/docs · g/[group]/docs/[doc] (lecteur,
|
||||
# vote déplié ?vote=, panneau ?onglet=panier|propositions|proposer|details|reglages)
|
||||
# · g/[group]/decisions · g/[group]/mandats ·
|
||||
# g/[group]/protocoles (à venir) · acces (trustinWallet) ; /groupes, /decisions… redirigent
|
||||
web/e2e/ # Playwright C1–C27 + M1 ; serve.sh = serveur jetable /tmp/ld-e2e sur :8092 et
|
||||
# g/[group]/protocoles (à venir) · acces (trustinWallet) · messages (la boîte) ;
|
||||
# /groupes, /decisions… redirigent
|
||||
web/e2e/ # Playwright C1–C33 + M1 ; serve.sh = serveur jetable /tmp/ld-e2e sur :8092 et
|
||||
# chain-mock.mjs (nœud et indexeur Ğ1 simulés) ; faux portefeuille dans helpers.ts
|
||||
docker/ # app.Dockerfile · app-compose.yml (sonic)
|
||||
.woodpecker/ # app.yml · maquette.yml
|
||||
@@ -91,7 +100,7 @@ maquette/ # v2 intacte (frontend Nuxt, backend FastAPI, docker, docs-v
|
||||
```bash
|
||||
export PATH=$HOME/.cargo/bin:$PATH
|
||||
cargo fmt --all --check && cargo clippy --workspace --all-targets -- -D warnings && cargo test --workspace
|
||||
cd web && npm run check && npm test && npm run build && npm run e2e # e2e : 29 contrôles
|
||||
cd web && npm run check && npm test && npm run build && npm run e2e # e2e : 34 contrôles (35 tests, C25 en deux)
|
||||
|
||||
LD_DEV_LOGIN=1 cargo run -p ld-server # :8002, sert web/build
|
||||
cd web && npm run dev # :3002 à chaud
|
||||
@@ -106,8 +115,10 @@ docker build -f docker/app.Dockerfile --target production . # rejoue toute la
|
||||
- **Moteur pur** : une règle de vote / édition / composition s'écrit et se teste dans
|
||||
`ld-engine` avant d'être câblée. Le serveur ne décide jamais l'accès seul : `trustin-access`.
|
||||
- **Invariants** : une seule voix ne fait jamais passer un texte (C = 50 pour Monnaie libre) ;
|
||||
une coquille ne demande pas de vote, un changement de fond si ; un signalement de
|
||||
contradiction bloque ; l'inertie de l'inertie hérite du cran de l'article (cinq crans, ADR 0007) ;
|
||||
une coquille ne demande pas de vote, un changement de fond si ; la coquille d'un autre attend
|
||||
son auteur (un administrateur pour le seed) ou 3 jours, et en vigueur seule une coquille validée
|
||||
change le texte ; une objection rend la dernière arrivée non votable jusqu'à sa levée (jamais un
|
||||
texte en vigueur ; ADR 0010) ; l'inertie de l'inertie hérite du cran de l'article (cinq crans, ADR 0007) ;
|
||||
le groupe d'essai ne publie jamais ; dans Monnaie libre, un vote est une transaction Ğ1 et le
|
||||
dernier fait foi dans l'ordre de la chaîne (ADR 0008) — **jamais de transaction réelle en test**
|
||||
(chaîne simulée ; un essai réel est un acte « paye » d'Yvv).
|
||||
|
||||
Reference in New Issue
Block a user