Skip to content

perf(storage): resolve connection secrets lazily and handle Keychain errors gracefully (#916) - #947

Merged
ZhuchkaTriplesix merged 1 commit into
devfrom
issue/916-lazy-secrets-keychain-error-handling
Sep 25, 2026
Merged

ZhuchkaTriplesix merged 1 commit into
devfrom
issue/916-lazy-secrets-keychain-error-handling

Conversation

@ZhuchkaTriplesix

Copy link
Copy Markdown
Member

Summary

  • Avoid unbounded parallel OS Keychain / D-Bus secret reads on app startup by making LocalDb.getConnections() lazy by default (hydrateSecrets: false), as the sidebar connection tree only requires basic metadata.
  • Wrap ConnectionSecretsStore.readForConnection and LocalDb._hydrateConnection in try/catch to gracefully swallow platform Keychain / D-Bus errors without failing connection tree rendering.
  • Expose on-demand hydration helpers (LocalDb.hydrateConnection and getConnectionById) while keeping driver on-connect secret resolution intact.
  • Update tests and test memory backend with failNextRead to verify graceful degradation and lazy secret resolution.

Linked issue

Closes #916

Checklist

  • flutter analyze passes locally
  • Scope matches the linked issue only (no drive-by refactors)
  • PR targets dev

@github-actions github-actions Bot added bug Something isn't working performance Theme parser epic label: performance core Core library logic and services connections Database connections, URI parsing, pools labels Sep 25, 2026
@github-actions github-actions Bot added this to the 0.4.18 milestone Sep 25, 2026
@ZhuchkaTriplesix
ZhuchkaTriplesix merged commit b538285 into dev Sep 25, 2026
3 checks passed
@ZhuchkaTriplesix
ZhuchkaTriplesix deleted the issue/916-lazy-secrets-keychain-error-handling branch September 28, 2026 08:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working connections Database connections, URI parsing, pools core Core library logic and services performance Theme parser epic label: performance

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant