v0.4.0
Overview
This release cuts Keychain prompts to one per session, raises the Settings
window instead of hiding it when re-clicked, and hardens the entire codebase
with strict type checking. The internals shed legacy migration code, banned the
Any type, and slimmed 914 lines of redundant comments.
✨ Features
- One Keychain prompt per session. Filbert now shares a single
authorization context across all providers. Saving API keys no longer triggers
a second prompt on verification. Cursor credentials import through the same
context. - Settings window raises on re-click. Clicking "Settings…" when the window
is already open now brings it to the front instead of leaving it buried. - Provider order shows only configured providers. The Appearance tab's
drag-and-drop list now hides providers you have not set up, with an
empty-state hint when none are configured.
📝 Changes since v0.3.1
- feat: consolidate Keychain auth via shared Core accessor (#40) (
847346a) - feat(ui): raise Settings window and filter provider order to configured (#38) (
782b8a6) - chore: remove legacy keychain and brand migration code (#39) (
5e2a88b) - ci: enforce strict type-checking and ban Any in sources (#41) (
6aedf67) - refactor: enforce minimal, why-only comments — codify the rule, then apply it everywhere (#42) (
953d16b) - refactor: update README description and clarity (#43) (
5934c6e)
Full Changelog: v0.3.1...v0.4.0
Filbert 0.4.0
Unsigned macOS build (Apple Silicon). Direct distribution, ad-hoc signed.
- DMG: Filbert-0.4.0-arm64.dmg
- SHA-256:
19a24822b252d036726e376fbb6773bfb43a74fa3a07bddf86e9e414d8aa5551
Install
- Mount the DMG and drag Filbert to /Applications.
- On first launch, macOS Gatekeeper will block the app because it is
unsigned. Do one of:-
Right-click Filbert in /Applications → Open → confirm the
prompt. Only needed once. -
Or run this in Terminal:
xattr -cr '/Applications/Filbert.app'
-
Why unsigned?
This is a transitional state. The moment an Apple Developer Program
membership is configured, releases automatically become signed and
notarized with no action on your part.