79e468b40f5b4c97689f078167ab510f961ab06d
- Modèles Organization + OrgMember, migration Alembic (SQLite compatible) - organization_id nullable sur Document, Decision, Mandate, VotingProtocol - Service, schéma, router /organizations + dependency get_active_org_id - Seed : Duniter G1 + Axiom Team ; tout le contenu seed attaché à Duniter G1 - Backend : list/create filtrés par header X-Organization - Frontend : store organizations, WorkspaceSelector réel, useApi injecte l'org - Fix critique : rate_limiter exclut les requêtes OPTIONS (CORS preflight) → résout le bug "Failed to fetch /auth/me" au reload (429 sur preflight) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
libreDecision
Plateforme de décisions collectives pour la communauté Duniter/G1. Boîte à outils gouvernance multi-collectifs, architecture white-label.
Stack
- Frontend : Nuxt 4 + Vue 3 + Pinia + UnoCSS (port 3002)
- Backend : Python FastAPI + SQLAlchemy async + SQLite (port 8002)
- Auth : Duniter V2 Ed25519 challenge-response
- Sanctuaire : IPFS (kubo) + hash on-chain (system.remark)
Démarrage
# Backend
cd backend && .venv/bin/uvicorn app.main:app --host 0.0.0.0 --port 8002 --reload
# Frontend
cd frontend && npm run dev
Sections
- Décisions : processus de vote collectif avec boîte à outils (ContextMapper, consentement, advice process)
- Mandats : élection sociocratique, cycle de mandat, révocation
- Documents : documents de référence sous vote permanent, niveaux d'inertie, sanctuaire IPFS
- Protocoles : protocoles opérationnels, jalons de workflow, formules de vote
Architecture
Voir CLAUDE.md pour les conventions et docs/content/dev/ pour la documentation technique.
Description
Languages
Vue
46.5%
Python
45.5%
TypeScript
7%
CSS
0.7%
Dockerfile
0.3%