Quickshell / notifications : borner et regrouper les rafraîchissements des libellés d’actions #12
Labels
No labels
Agent/Autonomous OK
Agent/Demeter
Agent/Hermes
Agent/Human
Agent/Needs Review
Area/API
Area/Auth
Area/CLI
Area/Data
Area/Docs
Area/Infra
Area/UI
CI/Failing
CI/Flaky
CI/Green
CI/Needs Runner
CI/Needs Workflow
Compat/Backward Compatible
Compat/Breaking
Compat/Migration
Deploy/Ansible
Deploy/Blocked
Deploy/Homelab
Deploy/Needs Config
Deploy/Needs Secret
Deploy/Ready
Deploy/Rollback
Kind/Bug
Kind/Chore
Kind/Design
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Refactor
Kind/Security
Kind/Spike
Kind/Testing
Ops/Backup
Ops/Incident
Ops/Maintenance
Ops/Monitoring
Ops/Upgrade
Priority
Critical
Priority
High
Priority
Low
Priority
Medium
Priority
Someday
Reviewed
Confirmed
Reviewed
Duplicate
Reviewed
Invalid
Reviewed
Won't Fix
Risk
Critical
Risk
High
Risk
Low
Risk
Medium
Security/Auth
Security/Disclosure
Security/Hardening
Security/Secret
Size
L
Size
M
Size
S
Size
XL
Size
XS
Stack/Ansible
Stack/Docker
Stack/Forgejo
Stack/Hermes
Stack/Node
Stack/Postgres
Stack/Python
Stack/Systemd
Status
Abandoned
Status
Blocked
Status
In Progress
Status
In Review
Status
Need More Info
Status
Ready
chantier-racine
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
mathieu/dotfiles#12
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?
Problème confirmé
Dans
mathieu/NotificationService.qml:57–64,132–137, chaque action, y compris au-delà des huit affichées, possède un observateurtextChanged. Chaque signal appelle immédiatementrefreshActionLabels(), qui parcourt les notifications actives, filtre leurs listes complètes d’actions et sérialise les snapshots.Reproduction sur le binaire 0.3.2, avec bus D-Bus et HOME temporaires : remplacer 800 libellés en conservant leurs identifiants déclenche 800 traitements globaux synchrones. Pour M actions, le filtrage répété est quadratique. Un expéditeur de notifications sur le bus de session peut ainsi dégrader fortement la réactivité du shell.
Résultat attendu
refresh()existant, plutôt que sauver tout l’historique pour chaque libellé.Validation
Articulation
Traiter en premier ; le ticket sur la cohérence des remplacements réutilisera ce chemin regroupé. La limitation des données natives fait l’objet d’un ticket distinct.
Référence
Revue du code au commit
5e350a8, avec Quickshell 0.3.2. Les 18 suites existantes passent ; les cas ci-dessous complètent cette couverture. Chantier : #11.Corrigé et intégré sur
main, contenu distant vérifié au commit e8ec9ad.Commits de correction signés :
3783be790802e6fe16762d324c9a222b9ab75af3 / 8a0eea49eb74197b3daad21a7283c4369192280d.Test natif rouge : 800 sauvegardes avec le code initial ; vert : 1 pour les libellés visibles, 0 pour les libellés cachés. Les fenêtres de mesure traversent volontairement un tick de maintenance. Identifiants changés, reload, actions natives, DND/verrouillage et comptage testés. La revue indépendante a fait corriger une contamination initiale du compteur par le timer ; relecture propre après correction.
Gate parent sur la composition finale : 20/20 suites passent, chacune avec HOME/XDG/bus/audio isolés (
run-suites.pyparent ; scripts du dépôt inchangés hors tests ajoutés). Signatures vérifiées avec la clé publique configurée et un fichier de confiance temporaire, sans modifier Git global.Publication du code seulement : le checkout actif de la session reste à
5e350a8, donc aucune activation/reload ni validation sur données personnelles n’est revendiquée.