Commit Graph

720 Commits

Author SHA1 Message Date
r-zakarya 247771bfec docs: formulaire d'edition, scan QR 2FA, synchro et reseau, Copy / Fill
CLAUDE.md : interrupteur Copy / Fill de la recherche rapide et pourquoi le
tray copie seulement ; QR lu mais pas de 2FA ; nom par defaut data.json,
messages de commit neutres, 8 s / 3 essais sur le reseau.
README Android : edition de l'entree entiere en un commit, oeil, icone depuis
la galerie, scan 2FA ; verification a l'ouverture, depot vide = creation ; les
pieges 'view' qui defocalisait les champs et 'toast' qui etait un <div>.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 18:42:12 +01:00
r-zakarya 8d3e20b702 docs(fillbar): info-bulle et detour NOTOPMOST, les deux pieges corriges
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 18:40:38 +01:00
r-zakarya 1309868f27 fix(fillbar): plus de detour par NOTOPMOST pour remonter la barrette
Le passage NOTOPMOST puis TOPMOST la faisait descendre sous les fenetres
ordinaires un instant - un flash a chaque battement ou elle se croyait
recouverte, donc souvent quand elle est posee sur la barre des taches. Et il
ne gagnait rien contre la barre des taches active, mesure faite. TOPMOST seul
suffit contre une fenetre TOPMOST ordinaire.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 18:38:55 +01:00
r-zakarya e786d8fe14 fix(fillbar): l'info-bulle ne fait plus clignoter la barrette en boucle
La remontee automatique voyait l'info-bulle d'un bouton - posee par-dessus la
barrette - comme un recouvrement : NOTOPMOST puis TOPMOST, la barrette
disparaissait un instant, l'info-bulle se fermait puis se rouvrait sous la
souris immobile. Les fenetres de notre propre processus ne comptent plus.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 18:25:25 +01:00
r-zakarya 28349c10c8 fix(quick-search): Esc ne sort plus du cadre, et la note dit qu'elle se copie
Le champ de recherche gardait la largeur de son texte d'aide (min-width par
defaut) et poussait l'interrupteur et Esc hors du panneau. Le texte d'aide
parlait aussi de copier alors que Fill est souvent actif : il dit "Search..."
tout court. Et le bouton d'une note precise, en mode Fill, qu'une note n'est
jamais tapee.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 12:12:06 +01:00
r-zakarya 7c26716831 feat(quick-search): interrupteur Copy / Fill quand une fenetre cible existe
Ouverte par Ctrl+Shift+Q ou la barrette, la recherche remplissait toujours ;
copier restait impossible alors que le remplissage echoue vers une application
lancee en administrateur, ou quand le gestionnaire de Chrome s'en mele. Sans
cible (tray, palette), l'interrupteur n'apparait pas : remplir n'aurait rien a
viser. Le choix est retenu en pref DPAPI, les verbes des boutons et l'aide
suivent.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 12:07:57 +01:00
r-zakarya 5e4fcfad0f fix(qr): dire "ce QR n'est pas un code 2FA" au lieu de "aucun QR"
Un QR de texte, ou un QR dynamique qui encode un lien de suivi, etait lu puis
ecarte en silence : l'exe repondait "aucun QR 2FA trouve", l'APK continuait de
viser sans rien dire. Le texte d'un autre QR ne part toujours pas a la page ;
seul le fait qu'un QR a ete lu est signale.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 11:29:12 +01:00
r-zakarya 3acf78b1ca feat(apk): afficher/masquer les secrets, scanner le QR 2FA, et toast() reparé
- Mot de passe et secret 2FA naissent masques dans la creation et l'edition,
  avec un oeil pour les reveler.
- Un bouton QR dans le champ 2FA ouvre la camera du scan des reglages ; le lien
  otpauth:// lu part a la page, qui n'en garde que le secret. Le journal ne note
  que le fait.
- toast() designait l'element <div id="toast"> (chaque id est une variable
  globale) : sept appels de la page levaient "toast is not a function" et leur
  message ne s'affichait jamais. Une vraie fonction globale les repare tous.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 11:20:31 +01:00
r-zakarya 22c418f933 fix(sync): le poste aussi abandonne vite une adresse morte, et reessaie
140.82.121.5 est une adresse de GitHub injoignable depuis ce reseau - verifie
par l'application ET par un navigateur, sur deux appareils. Un navigateur passe
a la suivante aussitot ; le poste attendait dix secondes puis abandonnait. Huit
secondes pour la poignee de main et trois essais, mais seulement quand la
requete n'a pas abouti : un 404 ou un 409 sont des reponses, pas des echecs.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-26 18:50:46 +01:00
r-zakarya 64195fc641 fix(apk): attente de connexion courte et trois essais
Mesure sur ce telephone : api.github.com rend plusieurs adresses, 140.82.121.6
repond en 0,22 s et 140.82.121.5 n'est pas joignable. Un navigateur passe a la
suivante aussitot ; l'application attendait son delai entier sur la mauvaise.
Huit secondes pour la poignee de main, trente pour la reponse, trois essais.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-26 18:42:22 +01:00
r-zakarya 074e6f92e7 feat(sync): messages de commit neutres des deux cotes
L'historique du depot affichait "sync from <utilisateur du coffre>" a chaque
envoi du poste, et le telephone y ecrivait ce qu'il venait de faire ("new entry
from phone", "icon fetched from phone", "entries deleted from phone"). Le
contenu est chiffre, ces lignes ne l'etaient pas. Il ne reste que l'appareil
d'origine - le detail vit dans le journal local, ou il sert au diagnostic sans
quitter l'appareil.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-26 14:26:21 +01:00
r-zakarya 75a1169dc9 feat(sync): nom par defaut neutre (data.json), et plus de clavier pendant une synchro
Un fichier nomme "vault-sync.json" annonce un coffre a qui parcourt la liste
des depots ; le contenu est chiffre, le nom ne l'etait pas. Les configurations
existantes gardent leur nom - c'est l'URL complete qui est enregistree - et le
QR du poste ne raccourcit plus que le nom par defaut courant, sinon le
telephone rallongerait vers un autre fichier.

Synchroniser coffre ferme ouvre d'abord le coffre : ce chemin depliait le
clavier de recherche au milieu d'une synchro.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-26 14:24:11 +01:00
r-zakarya a89e227272 fix(apk): verdict honnete de la verification, et plus de connexion reutilisee
"unchanged (HTTP 0)" confondait "rien n'a change" et "je n'ai pas pu demander".
Et quand le Wi-Fi se reconnecte avec une autre IP, la pile Java garde des
sockets sur l'interface morte : mesure faite, curl atteint les deux adresses de
GitHub depuis le shell du telephone pendant que l'application expire sur
l'ancienne.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-26 13:12:02 +01:00
r-zakarya fc7e89a5d5 feat(apk): l'ouverture ne tire plus l'instantane, elle demande seulement s'il a bouge
Ouvrir depuis le cache puis retelecharger tout faisait changer la liste sous
les yeux au gre du reseau, et montrait une panne en plein ecran pour un simple
lancement. Une requete conditionnelle suffit : si le depot a bouge, le temoin
de synchro s'allume et l'utilisateur tire quand il veut.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-26 12:29:17 +01:00
r-zakarya 24614d71ba fix(apk): depot vide = creation, et deux essais reseau au lieu d'un long
404 a la lecture pendant une publication etait traite comme un echec : sur un
depot neuf, rien ne partait jamais. Sans sha, l'API des contenus cree le
fichier. Et le lien Wi-Fi de ce telephone perd des paquets (ping 71-236 ms
alors que le port 443 s'ouvre depuis le shell) : deux essais de 20 s valent
mieux qu'une attente unique de 40 s.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-25 17:29:37 +01:00
r-zakarya 329588dc1c ui(apk): l'icone accompagne le titre a la lecture aussi
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-25 17:09:55 +01:00
r-zakarya 9ae7b58767 fix(apk): le formulaire garde la vue 'detail', sinon chaque champ perdait le focus
Un gardien defocalise tout ce qui prend le focus hors de l'ecran courant, en
comparant 'view' a l'identifiant de l'ecran. Le formulaire vit dans l'ecran
'detail' ; poser view='edit' le faisait donc blurer a chaque focusin - clavier
ouvert, pas de curseur, rien ne rentrait. Un drapeau 'editing' dit desormais
qu'on modifie, et 'view' continue de nommer l'ecran.

Mesure au protocole DevTools sur le telephone : le champ etait bien atteignable
et focalise, ce qui a elimine le DOM et le CSS.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-25 17:03:27 +01:00
r-zakarya 2a461cad26 fix(apk): depot vide + changements en attente = premiere publication, et delais reseau plus longs
Le telephone verifiait le mot de passe de synchro en telechargeant
l'instantane et s'arretait sur 404 : rien ne partait jamais vers un depot
neuf. Mesure : un 404 de GitHub a pris 16,3 s, au-dela du delai de 15 s du
client et sous le garde-fou de 25 s - d'ou les 'HTTP 0' intermittents.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-25 16:31:16 +01:00
r-zakarya e0f8bf441f fix(apk): l'icone se pose a cote du titre de l'en-tete, le nom n'est plus ecrit deux fois
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-25 15:39:38 +01:00
r-zakarya 49738d0b74 fix(apk): retour depuis le formulaire = revenir a l'entree, pas a la liste
Le formulaire se declare comme une vue ('state?view=edit') : la fleche de
l'en-tete et la touche retour du telephone le referment d'abord.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-25 15:27:14 +01:00
r-zakarya 29f737b831 ui(apk): icone et nom en tete du formulaire, arrondis unifies, retour au formulaire apres une action d'icone
L'icone se commet comme un champ : Delphi rouvrait l'entree et la vue de
lecture reprenait la place au milieu d'une modification. Le formulaire est
maintenant rouvert avec ce qui y etait deja tape.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-25 15:18:41 +01:00
r-zakarya 0f90b816fc fix(apk): le crayon par ligne disparait, l'edition passe par le formulaire
L'editeur d'une ligne n'a plus de bouton : sa machinerie part avec lui. Seule
la liste des dossiers en est gardee (folderSelect), pour que le champ Folder du
formulaire reste un choix et non une faute de frappe.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-25 15:05:58 +01:00
r-zakarya 0c12997ad4 feat(apk): edition de l'entree entiere en un seul enregistrement, et icone choisie dans la galerie
Un crayon ouvre un formulaire pre-rempli : tous les champs modifiables a la
fois, un seul Save, donc UN commit au lieu d'un par champ ('setfields',
plusieurs PatchEntryField dans le meme CommitChange).

L'icone quitte le menu de l'entree pour ce formulaire : From site (recherche),
Image... (galerie, reduite a 128 px, provenance custom) et Remove.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-25 14:57:58 +01:00
r-zakarya 5f1a98df7d ui(apk): le formulaire de nouvelle entree devient une seule carte
Sept champs faisaient sept cartes, chacune contenant un champ avec son propre
fond et ses coins - rectangle dans rectangle. Une carte, des lignes dedans, le
champ reduit a son trait de saisie ; le bouton Save sort de sa carte.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-25 14:39:31 +01:00
r-zakarya 6a98f113ee fix(apk): pas de menu Duplicate/Delete sur l'ecran d'une nouvelle entree
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-25 14:33:59 +01:00
r-zakarya 29d569c7ba docs(fillbar): la barre des taches active passe devant, mesures a l'appui
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-22 15:56:58 +01:00
r-zakarya 1ae1d482f0 fix(fillbar): remonte la barrette quand elle est recouverte, au lieu de la deplacer
Elle a le droit de se poser sur la barre des taches. Redemander HWND_TOPMOST
quand on l'est deja ne change rien : le shell restait devant au demarrage de
session et au menu Demarrer. Le passage NOTOPMOST -> TOPMOST force la remontee,
fait seulement quand le centre de la barrette appartient a une autre fenetre.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-22 15:38:05 +01:00
r-zakarya c1c7d9cd59 fix(fillbar): la position retenue est ramenee dans la zone de travail
Posee sur la barre des taches (TOPMOST elle aussi), la barrette passait
derriere elle au demarrage de Windows et a l'ouverture du menu Demarrer.
Mesure avant/apres sur ce poste : y=1037 (barre = 1032..1080) -> y=992.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-22 15:33:03 +01:00
r-zakarya 652815ea98 feat(quick-search): boutons par entree - utilisateur, mot de passe ou note, code 2FA (s'ils existent)
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-18 23:15:49 +01:00
r-zakarya cfa2a798e5 docs(build): build-both.cmd sauvegarde les exe precedents dans PMServer-previous.zip
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-18 22:58:39 +01:00
r-zakarya dcb1ac63ce fix(totp): pas de notification 'toujours dans le tray' pendant le scan du QR
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-18 22:40:00 +01:00
r-zakarya e3904236a7 fix(totp): scan QR ecran - indices Byte dans ZXing (boucle infinie a 100 % CPU)
ZXing.Delphi declarait rgbIndex/luminanceIndex en Byte dans les conversions
octets bruts -> luminance : au-dela de 255 ils repassaient a 0, la boucle ne
finissait jamais. L'APK n'y passait pas (CreateFromBitmap). Mesure apres
correctif : 60 ms sur un ecran 1920x1080 avec TRY_HARDER, 86 ms sans QR.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-18 22:35:49 +01:00
r-zakarya 72f9acd733 feat(totp): scanner le QR 2FA affiche a l'ecran (capture + ZXing), seul un otpauth:// part vers la page
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-18 22:24:35 +01:00
r-zakarya 508d5345bf feat(fillbar): option fond transparent (cle de couleur), l'opacite reste sur les boutons
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-18 22:12:37 +01:00
r-zakarya 9d74839ec3 fix(settings): la section Sync renommee retrouve son onglet
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-18 16:19:57 +01:00
r-zakarya df2d0f55b9 docs(sync): libelle 'Git repository (Gitea or GitHub)' au lieu de Gitea seul
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-18 16:16:03 +01:00
r-zakarya 67b726e08c fix(sync): la verification 'depot public' se fait sans jeton, avant tout le reste
Un jeton faux faisait repondre 401 a GitHub avant tout verdict : le refus
d'un depot public ne pouvait pas s'exprimer. Public = visible en anonyme.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-18 16:04:50 +01:00
r-zakarya a2ac0e393b fix(sync): l'URL enregistree est convertie aussi a la lecture des reglages
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-18 16:00:10 +01:00
r-zakarya 329b0e3ce5 feat(sync): le PC accepte l'adresse du depot (github.com/O/R.git, Gitea) et la convertit en URL d'API
Garde : un dernier segment qui ressemble a un fichier (.json) reste une URL
WebDAV.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-18 15:40:45 +01:00
r-zakarya 365ee2f596 docs(autofill): note l'idee de la case no-autofill dans l'editeur
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-18 15:31:11 +01:00
r-zakarya 994aaccac4 docs(autofill): etiquette no-autofill
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-18 15:29:37 +01:00
r-zakarya ab1da7e319 feat(autofill): etiquette no-autofill pour exclure une entree, copie du mot de passe toujours visible en vue tableau
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-18 15:22:14 +01:00
r-zakarya f1b7dd9bff docs(apk): note les idees 'identifiant puis mot de passe' et 'remplissage automatique Android'
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-18 15:06:21 +01:00
r-zakarya e4930f448b docs(apk): recherche prete, retour apres copie, grace de 2 min, bouton 2FA
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-18 15:03:58 +01:00
r-zakarya 0e32a51bf1 feat(apk): bouton de copie du code 2FA sur chaque ligne de la liste
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-18 14:58:09 +01:00
r-zakarya 255d685e73 fix(apk): 2 min de grace apres une copie, retour automatique decoche par defaut
Android ne laisse pas choisir l'app qui passe devant : moveTaskToBack
ramenait souvent l'ecran d'accueil. Le coffre se reverrouillait aussi
apres 30 s, avant qu'on revienne chercher le mot de passe.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-18 14:48:23 +01:00
r-zakarya f99fb90ed8 fix(apk): compilation des reglages Copy and search (declarations et TPath de System.IOUtils)
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-18 14:35:45 +01:00
r-zakarya f7ad65c02d feat(apk): Settings -> Copy and search, deux cases pour le retour apres copie et le clavier sur la recherche
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-18 14:33:18 +01:00
r-zakarya 946880ecf4 feat(apk): copier renvoie a l'app d'avant, recherche prete a l'ouverture et au retour
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-18 14:28:52 +01:00
r-zakarya 9a09cc5d29 feat: survol a l'accent sur la barrette, grande fleche de retour dans l'APK
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-18 14:16:45 +01:00