feat: premier lancement ObsiGate + section Configuration harmonisée (#160)
CI / lint (push) Successful in 2m50s
CI / security (push) Successful in 2m1s
CI / test (push) Successful in 4m44s
CI / build (push) Successful in 1m54s
CI / e2e (push) Successful in 16m25s

- Premier lancement : %USERPROFILE%\ObsiGate créé et monté comme vault de
  démarrage « ObsiGate » (remplace voute_obsidian), vault_path dessus,
  racine home nommée d'après son dernier segment (fin du « bruno » codé en
  dur), champs de fenêtre préservés.
- Document « Prise en main.md » embarqué dans le binaire
  (include_str!) et écrit dans ce répertoire si absent — jamais écrasé.
- Section « 🖥️ Vaults & dossiers (Desktop) » refondue : markup à classes
  (zéro style inline), bloc CSS desktop-roots-* sur variables (motif
  webauthn-key-item), boutons .config-btn-sm primaire/secondaire,
  cibles tactiles 44px en mobile.
- Tests : test_default_first_run_config, test_welcome_doc_embedded
  (cargo test 28 passed), suites frontend vertes, E2E 123/123.
This commit is contained in:
2026-10-03 10:02:16 -04:00
parent 649f965c52
commit fe9f7b49f7
16 changed files with 298 additions and 47 deletions
+82
View File
@@ -5041,6 +5041,15 @@ body.resizing-v {
min-height: 44px;
min-width: 44px;
}
#config-modal .desktop-roots-item {
flex-wrap: wrap;
}
#config-modal .desktop-roots-item .config-btn-sm {
min-height: 44px;
}
#config-modal .desktop-roots-actions {
flex-wrap: wrap;
}
#config-modal .hidden-files-add-row {
flex-wrap: wrap;
}
@@ -11963,6 +11972,79 @@ mark {
.webauthn-key-meta { font-size: 0.75rem; color: var(--text-muted, #888); }
.config-btn-sm { padding: 4px 10px; font-size: 0.78rem; }
/* ── #160 : Section Configuration — Vaults & dossiers (Desktop) ──────────── */
.desktop-roots-list {
display: flex;
flex-direction: column;
gap: 8px;
}
.desktop-roots-item {
display: flex;
align-items: center;
gap: 10px;
padding: 8px 10px;
background: var(--surface2, #1a1a2e);
border: 1px solid var(--border, transparent);
border-radius: 6px;
transition: border-color 150ms;
}
.desktop-roots-item:hover {
border-color: var(--accent);
}
.desktop-roots-icon {
width: 16px;
height: 16px;
flex-shrink: 0;
color: var(--accent);
}
.desktop-roots-text {
flex: 1;
min-width: 0;
display: flex;
flex-direction: column;
gap: 2px;
}
.desktop-roots-name {
font-size: 0.9rem;
font-weight: 600;
color: var(--text, #fff);
}
.desktop-roots-path {
font-size: 0.75rem;
color: var(--text-muted, #888);
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.desktop-roots-item .config-btn-sm {
display: inline-flex;
align-items: center;
gap: 6px;
flex-shrink: 0;
white-space: nowrap;
}
.desktop-roots-btn-icon {
width: 14px;
height: 14px;
}
.desktop-roots-empty {
padding: 12px;
font-size: 0.85rem;
color: var(--text-muted, #888);
background: var(--surface2, #1a1a2e);
border-radius: 6px;
}
.desktop-roots-actions {
display: flex;
justify-content: flex-end;
gap: 8px;
}
.desktop-roots-actions .config-btn-sm {
display: inline-flex;
align-items: center;
gap: 6px;
}
/* MFA Disable card */
.mfa-disable-card {
padding: 16px; border-radius: 10px;