Skip to content

Version Packages - #93

Merged
MathiasWP merged 1 commit into
mainfrom
changeset-release/main
Aug 27, 2026
Merged

Version Packages#93
MathiasWP merged 1 commit into
mainfrom
changeset-release/main

Conversation

@github-actions

Copy link
Copy Markdown
Contributor

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and publish to npm yourself or setup this action to publish automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

Releases

fiber@0.15.0

Minor Changes

  • #92 2414209 Thanks @MathiasWP! - Signing in again now reaches a running containerised MCP server.

    Under ToolHive the server took its credentials from FIBER_SECRETS, read once
    at startup, so a container held whatever was true when it began: you signed in,
    the keychain got the new token, and the server went on presenting the expired
    one until someone re-exported the secrets and replaced the workload.

    Credentials can now travel through the collections directory the container
    already mounts. The app rewrites that file whenever a credential changes, the
    server re-reads it, and the 401 retry that was already there picks the new value
    up — no re-export, no restart.

    The file is sealed with XChaCha20-Poly1305 and the key stays out of the mount:
    in the keychain on the app's side, in ToolHive's encrypted store on the
    container's. Its existence is the opt-in, so a desktop-only install never has
    credentials on disk. New: fiber mcp file-key and fiber mcp export-secrets --to <path>; scripts/toolhive.sh wires both up for you.

    Bearer collections needed a second fix to benefit: a static token cannot be
    refreshed by replaying a request, so a 401 never dropped it, and a zero-TTL
    cache entry has nothing else to expire it — a container would have presented
    the token it started with for the life of the workload. A rejected credential
    is now dropped from the cache whenever it came from a source that can change
    underneath the process, so the next call reads the new one. The desktop app is
    unaffected: it has no such source, and the same line there would have cost a
    keychain prompt per 401.

@MathiasWP
MathiasWP merged commit d6de744 into main Aug 27, 2026
@MathiasWP
MathiasWP deleted the changeset-release/main branch August 27, 2026 12:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant