Bilan #1a — Schema migration + balance.service skeleton + AccountsPage comptes #138
Labels
No labels
autopilot:pending-human
source:analyste
source:defenseur
source:human
source:medic
status:approved
status:blocked
status:in-progress
status:needs-clarification
status:needs-fix
status:ready
status:review
status:triage
type:bug
type:feature
type:infra
type:refactor
type:schema
type:security
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: maximus/Simpl-Resultat#138
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Refs: spec-decisions-bilan.md + spec-plan-bilan.md (v2 + overnight-2026-04-26)
Issue mise à jour suite à /review-spec et /plan-overnight (2026-04-25). CRUD via TypeScript+getDb, migration inline lib.rs v9, currency hardcoded CAD pour MVP.
Tâches
Hors scope (déplacé)
Décisions prises ce soir
Critères dacceptation
/review-spec — findings critiques + améliorations
Review adversariale du spec (3 agents : Sécurité / Architecture / Technique). Voir spec-plan-bilan.md (annotations inline + section "Revision — Synthese").
🔴 Critiques bloquants
1. CRUD via service TypeScript, pas via commandes Tauri (Architecture)
Les services existants utilisent
getDb()+tauri-plugin-sqldirectement depuis TS (96 occurrences dans 15 services). Les commandes Tauri sont réservées au filesystem, OAuth, license, profils, feedback — pas au CRUD domaine. Les ~17 commandes balance proposées dupliquent la couche SQL en Rust pour rien.Fix : Tout le CRUD passe dans
balance.service.tsavecgetDb(). Les commandes Rust se réduisent à 2 :fetch_price(Issue 5) etcompute_account_return(Issue 4).2. Migration inline dans
lib.rs, pas de fichier séparé (Architecture+Technique)Le path
src-tauri/migrations/NNNN_balance_schema.sqlest faux — ce dossier n'existe pas. Toutes les 8 migrations existantes sont inline viatauri_plugin_sql::Migrationdanslib.rs. Contredit.claude/rules/sql-migrations.md.Fix : Ajouter
Migration { version: 9, description: "create balance schema", sql: BALANCE_SCHEMA, kind: MigrationKind::Up }dans leVec<Migration>delib.rs. Le SQL peut vivre comme constante dansdatabase/mod.rs(mirror deSCHEMA+SEED_CATEGORIES).🟡 Améliorations
/balancevers AccountsPage placeholder est une UX confuse en transition.Migration { version: 9, ... }explicitement (pas "à déterminer") — éviter de modifier accidentellement une migration existante (checksums protégés).balance_snapshot_lines:CHECK ((quantity IS NULL AND unit_price IS NULL) OR (quantity IS NOT NULL AND unit_price IS NOT NULL)).balance.service.test.ts,useBalance.test.ts,#[cfg(test)] mod testscôté Rust.Bilan #1 — Schéma SQL + saisie manuelle simple kindto Bilan #1a — Schema migration + balance.service skeleton + AccountsPage comptes