Skip to content

refactor(aether-auth): Store credentials as opaque JSON values, so we can store MCP creds as serialized rmcp::StoredCredentials - #345

Merged
jcarver989 merged 4 commits into
mainfrom
refactor/credential-storage
Aug 14, 2026
Merged

refactor(aether-auth): Store credentials as opaque JSON values, so we can store MCP creds as serialized rmcp::StoredCredentials#345
jcarver989 merged 4 commits into
mainfrom
refactor/credential-storage

Conversation

@jcarver989

Copy link
Copy Markdown
Contributor

Summary

This PR refactors OAuthCredentialStorage to persist opaque JSON values instead of OAuthCredential. This simplifies the code as it allows us to store MCP credentials directly as serialized rmcp::StoredCredentials.

Previously, we translated rmcp::StoredCredentials into Aether’s OAuthCredential type. This required custom logic for scopes, token timing, refresh tokens, and expiry reconstruction, and could not represent tokenless client registrations or newer rmcp fields.

@jcarver989
jcarver989 enabled auto-merge (squash) August 14, 2026 11:28
@jcarver989 jcarver989 changed the title Refactor/credential storage refactor(aether-auth): Credential storage Aug 14, 2026
@jcarver989 jcarver989 changed the title refactor(aether-auth): Credential storage refactor(aether-auth): Store credentials as opaque JSON values, so we can directly serialize rmcp::StoredCredentials Aug 14, 2026
@jcarver989 jcarver989 changed the title refactor(aether-auth): Store credentials as opaque JSON values, so we can directly serialize rmcp::StoredCredentials refactor(aether-auth): Store credentials as opaque JSON values, so we can store MCP creds as serialized rmcp::StoredCredentials Aug 14, 2026
@jcarver989
jcarver989 merged commit 468df40 into main Aug 14, 2026
13 checks passed
@jcarver989
jcarver989 deleted the refactor/credential-storage branch August 14, 2026 11:33
jcarver989 pushed a commit that referenced this pull request Aug 19, 2026
## 🤖 New release

* `aether-auth`: 0.1.11 -> 0.1.12
* `aether-utils`: 0.2.11 -> 0.2.12
* `aether-llm-codegen`: 0.2.18 -> 0.2.19
* `aether-llm`: 0.7.26 -> 0.7.27
* `aether-mcp-utils`: 0.5.31 -> 0.5.32
* `aether-acp-utils`: 0.3.37 -> 0.3.38
* `aether-agent-core`: 0.6.31 -> 0.6.32
* `aether-lspd`: 0.1.31 -> 0.1.32
* `aether-project`: 0.5.32 -> 0.5.33
* `aether-telemetry`: 0.1.12 -> 0.1.13
* `aether-mcp-servers`: 0.4.38 -> 0.4.39
* `aether-tui`: 0.2.19 -> 0.2.20
* `aether-wisp`: 0.4.39 -> 0.4.40
* `aether-agent-cli`: 0.7.35 -> 0.7.36
* `aether-evals`: 0.2.24 -> 0.2.25
* `aether-schemas`: 0.1.19 -> 0.1.20

<details><summary><i><b>Changelog</b></i></summary><p>

## `aether-auth`

<blockquote>

##
[0.1.12](aether-auth-v0.1.11...aether-auth-v0.1.12)
- 2026-08-19

### Added

- *(mcp)* support Client ID Metadata Documents
([#348](#348))

### Other

- Refactor/credential storage
([#345](#345))
</blockquote>

## `aether-utils`

<blockquote>

##
[0.2.12](aether-utils-v0.2.11...aether-utils-v0.2.12)
- 2026-08-19

### Added

- Allow proxying tools within a MCP server
([#341](#341))
</blockquote>

## `aether-llm-codegen`

<blockquote>

##
[0.2.19](aether-llm-codegen-v0.2.18...aether-llm-codegen-v0.2.19)
- 2026-08-19

### Other

- scheduled code-cleanup
([#331](#331))
</blockquote>

## `aether-llm`

<blockquote>

##
[0.7.27](aether-llm-v0.7.26...aether-llm-v0.7.27)
- 2026-08-19

### Added

- *(mcp)* support Client ID Metadata Documents
([#348](#348))

### Other

- Update models
([#363](#363))
- Update models
([#359](#359))
- Update models
([#349](#349))
- Refactor/credential storage
([#345](#345))
- cleanup warnings
- Update models
([#336](#336))
</blockquote>

## `aether-mcp-utils`

<blockquote>

##
[0.5.32](aether-mcp-utils-v0.5.31...aether-mcp-utils-v0.5.32)
- 2026-08-19

### Added

- Deferred (proxied) tools can now be composed via the Bash tool
([#360](#360))
- *(mcp)* support Client ID Metadata Documents
([#348](#348))
- Allow proxying tools within a MCP server
([#341](#341))
- *(mcp-servers)* Bash and Sub-agents can now be run in foreground or
background by main agent
([#340](#340))
- Support MCP tasks
([#339](#339))

### Fixed

- *(mcp)* classify OAuth challenges accurately
([#347](#347))

### Other

- *(deps)* bump agent-client-protocol from 0.14.0 to 2.0.0
([#285](#285))
- remove nested Cargo lockfiles
([#352](#352))
- Upgrade to rmcp 3.1.1 and MCP tool calls now use multi round trip
requests (MRTR)
([#337](#337))
- Prefer connecting with new 7-28-2026 mcp protocol
([#332](#332))
</blockquote>

## `aether-acp-utils`

<blockquote>

##
[0.3.38](aether-acp-utils-v0.3.37...aether-acp-utils-v0.3.38)
- 2026-08-19

### Added

- Deferred (proxied) tools can now be composed via the Bash tool
([#360](#360))

### Other

- *(deps)* bump agent-client-protocol from 0.14.0 to 2.0.0
([#285](#285))
- Upgrade to rmcp 3.1.1 and MCP tool calls now use multi round trip
requests (MRTR)
([#337](#337))
</blockquote>

## `aether-agent-core`

<blockquote>

##
[0.6.32](aether-agent-core-v0.6.31...aether-agent-core-v0.6.32)
- 2026-08-19

### Added

- Deferred (proxied) tools can now be composed via the Bash tool
([#360](#360))
- *(mcp)* support Client ID Metadata Documents
([#348](#348))
- Allow proxying tools within a MCP server
([#341](#341))
- *(mcp-servers)* Bash and Sub-agents can now be run in foreground or
background by main agent
([#340](#340))
- Support MCP tasks
([#339](#339))

### Fixed

- *(mcp)* classify OAuth challenges accurately
([#347](#347))

### Other

- *(deps)* bump agent-client-protocol from 0.14.0 to 2.0.0
([#285](#285))
- remove nested Cargo lockfiles
([#352](#352))
- Upgrade to rmcp 3.1.1 and MCP tool calls now use multi round trip
requests (MRTR)
([#337](#337))
- scheduled code-cleanup
([#329](#329))
</blockquote>

## `aether-lspd`

<blockquote>

##
[0.1.32](aether-lspd-v0.1.31...aether-lspd-v0.1.32)
- 2026-08-19

### Other

- scheduled code-cleanup
([#328](#328))
</blockquote>

## `aether-project`

<blockquote>

##
[0.5.33](aether-project-v0.5.32...aether-project-v0.5.33)
- 2026-08-19

### Added

- Deferred (proxied) tools can now be composed via the Bash tool
([#360](#360))

### Other

- scheduled code-cleanup
([#328](#328))
</blockquote>

## `aether-telemetry`

<blockquote>

##
[0.1.13](aether-telemetry-v0.1.12...aether-telemetry-v0.1.13)
- 2026-08-19

### Other

- *(deps)* bump agent-client-protocol from 0.14.0 to 2.0.0
([#285](#285))
- Upgrade to rmcp 3.1.1 and MCP tool calls now use multi round trip
requests (MRTR)
([#337](#337))
- scheduled code-cleanup
([#329](#329))
</blockquote>

## `aether-mcp-servers`

<blockquote>

##
[0.4.39](aether-mcp-servers-v0.4.38...aether-mcp-servers-v0.4.39)
- 2026-08-19

### Added

- Deferred (proxied) tools can now be composed via the Bash tool
([#360](#360))
- *(mcp-servers)* Bash and Sub-agents can now be run in foreground or
background by main agent
([#340](#340))
- Support MCP tasks
([#339](#339))

### Other

- scheduled code-cleanup
([#331](#331))
- Upgrade to rmcp 3.1.1 and MCP tool calls now use multi round trip
requests (MRTR)
([#337](#337))
- scheduled code-cleanup
([#328](#328))
- release ([#325](#325))
</blockquote>

## `aether-tui`

<blockquote>

##
[0.2.20](aether-tui-v0.2.19...aether-tui-v0.2.20)
- 2026-08-19

### Other

- scheduled code-cleanup
([#331](#331))
</blockquote>

## `aether-wisp`

<blockquote>

##
[0.4.40](aether-wisp-v0.4.39...aether-wisp-v0.4.40)
- 2026-08-19

### Added

- Deferred (proxied) tools can now be composed via the Bash tool
([#360](#360))
- Support MCP tasks
([#339](#339))

### Other

- *(deps)* bump agent-client-protocol from 0.14.0 to 2.0.0
([#285](#285))
- Upgrade to rmcp 3.1.1 and MCP tool calls now use multi round trip
requests (MRTR)
([#337](#337))
</blockquote>

## `aether-agent-cli`

<blockquote>

##
[0.7.36](aether-agent-cli-v0.7.35...aether-agent-cli-v0.7.36)
- 2026-08-19

### Added

- Deferred (proxied) tools can now be composed via the Bash tool
([#360](#360))
- Allow proxying tools within a MCP server
([#341](#341))
- *(mcp-servers)* Bash and Sub-agents can now be run in foreground or
background by main agent
([#340](#340))
- Support MCP tasks
([#339](#339))

### Other

- *(deps)* bump agent-client-protocol from 0.14.0 to 2.0.0
([#285](#285))
- Refactor/credential storage
([#345](#345))
- Upgrade to rmcp 3.1.1 and MCP tool calls now use multi round trip
requests (MRTR)
([#337](#337))
- scheduled code-cleanup
([#329](#329))
- release ([#325](#325))
</blockquote>

## `aether-evals`

<blockquote>

##
[0.2.25](aether-evals-v0.2.24...aether-evals-v0.2.25)
- 2026-08-19

### Other

- scheduled code-cleanup
([#329](#329))
</blockquote>

## `aether-schemas`

<blockquote>

##
[0.1.20](aether-schemas-v0.1.19...aether-schemas-v0.1.20)
- 2026-08-19

### Other

- update Cargo.lock dependencies
</blockquote>


</p></details>

---
This PR was generated with
[release-plz](https://github.com/release-plz/release-plz/).

Co-authored-by: contextbridge-pr-automation[bot] <259134118+contextbridge-pr-automation[bot]@users.noreply.github.com>
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