Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 0 additions & 14 deletions .changeset/access-policies-for-shared-collections.md

This file was deleted.

32 changes: 0 additions & 32 deletions .changeset/missing-credentials-say-so.md

This file was deleted.

44 changes: 44 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,49 @@
# fiber

## 0.16.0

### Minor Changes

- [#96](https://github.com/MathiasWP/fiber/pull/96) [`f5a32b5`](https://github.com/MathiasWP/fiber/commit/f5a32b5251636745ba5f6d39a571fa63460075f2) Thanks [@MathiasWP](https://github.com/MathiasWP)! - Decide what an agent may call per endpoint, not per HTTP method. A shared
collection can carry an access policy — a jq filter answering `"allow"`, `"ask"`
or `"deny"` for each endpoint — which is the only workable guard for an API
where every operation is a POST and the method says nothing about what it does.
The filter reads whatever the manifest publishes: every scalar `x-` extension on
an OpenAPI operation is now carried through the loader, so a rule can be written
against the API's own vocabulary. `"ask"` puts the call in front of you in your
agent's client and sends it only once you approve. Section settings shows the
answers for the collection's real endpoints as you type. Collections without a
policy keep the switch they had, unchanged.

- [#94](https://github.com/MathiasWP/fiber/pull/94) [`166f130`](https://github.com/MathiasWP/fiber/commit/166f130bef4dfaaaf5b7934fd518a21a1d2f6040) Thanks [@AndersRobstad](https://github.com/AndersRobstad)! - A containerised MCP server now says when it has no credential for a collection,
instead of giving desktop advice.

The credentials file landed in 0.15.0, but only for people who migrated onto it.
A workload created before it goes on reading its frozen `FIBER_SECRETS` snapshot,
and a collection authenticated after that workload started is not stale in the
snapshot — it is absent. There is no 401, so nothing refreshes and nothing
retries; the send fails before it is made, with "not signed in — open Section
settings and sign in". In a container there are no Section settings, no window
to sign in through, and usually a user who *is* signed in.

That failure now explains itself. It names the collection and the reference,
says which source the server reads, and — for a snapshot — that the source was
frozen when the workload started and cannot pick a later sign-in up. The server
also reports its credential source at startup and warns there about every shared
collection whose credential it cannot see, and `list_sections` marks those with
`"credential": "missing"` so an agent finds out before spending a call.

Silently re-captured browser credentials reach the file too. On a 401 the app
lifts a fresh one out of a hidden webview and deliberately does not write it to
the keychain, because writing costs a password prompt. None of that reasoning
applies to the credentials file — the sealing key is already cached and the
write is a file write — but it was being skipped all the same, so a container
only ever saw a browser credential change on an explicit sign-in.

Rerunning `scripts/toolhive.sh` migrates a pre-0.15 workload, and now says so
when it does, including that the old snapshot is left behind holding stale
credentials.

## 0.15.0

### Minor Changes
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "fiber",
"private": true,
"version": "0.15.0",
"version": "0.16.0",
"type": "module",
"packageManager": "pnpm@11.22.0",
"engines": {
Expand Down
2 changes: 1 addition & 1 deletion src-tauri/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion src-tauri/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "fiber"
version = "0.15.0"
version = "0.16.0"
description = "A local-first API client"
authors = ["Mathias Picker"]
license = "MIT"
Expand Down
2 changes: 1 addition & 1 deletion src-tauri/tauri.conf.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"$schema": "../node_modules/@tauri-apps/cli/config.schema.json",
"productName": "Fiber",
"version": "0.15.0",
"version": "0.16.0",
"identifier": "dev.fiber.app",
"build": {
"frontendDist": "../build",
Expand Down