Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
124 commits
Select commit Hold shift + click to select a range
33658ab
feat(redis): add redix_opts for SSL/TLS support (#59)
emilwojtaszek Nov 24, 2025
5309d12
deps:(deps): bump redix from 1.5.2 to 1.5.3 (#63)
dependabot[bot] Nov 25, 2025
46da35a
deps:(deps-dev): bump mimic from 2.1.1 to 2.2.0 (#62)
dependabot[bot] Nov 25, 2025
218c9db
deps:(deps): bump plug from 1.18.1 to 1.19.0 (#70)
dependabot[bot] Dec 8, 2025
733a298
deps:(deps-dev): bump styler from 1.9.1 to 1.10.0 (#69)
dependabot[bot] Dec 8, 2025
a268ae7
deps:(deps-dev): bump ex_doc from 0.39.1 to 0.39.2 (#68)
dependabot[bot] Dec 8, 2025
09b872f
fix: redix should be loaded (#71)
zoedsoupe Dec 9, 2025
87ab226
deps:(deps-dev): bump credo from 1.7.13 to 1.7.14 (#65)
dependabot[bot] Dec 9, 2025
03465e3
chore: release 0.17.0 (#61)
zoedsoupe Dec 9, 2025
83dc23e
deps:(deps-dev): bump ex_doc from 0.39.2 to 0.39.3 (#75)
dependabot[bot] Dec 21, 2025
90e68a5
deps:(deps): bump plug from 1.19.0 to 1.19.1 (#74)
dependabot[bot] Dec 21, 2025
cfdf788
deps:(deps-dev): bump styler from 1.10.0 to 1.10.1 (#80)
dependabot[bot] Jan 19, 2026
f250cc6
deps:(deps-dev): bump credo from 1.7.14 to 1.7.15 (#78)
dependabot[bot] Jan 19, 2026
fa4bd7d
deps:(deps-dev): bump mimic from 2.2.0 to 2.3.0 (#84)
dependabot[bot] Jan 20, 2026
10fe59d
deps:(deps-dev): bump ex_doc from 0.39.3 to 0.40.0 (#86)
dependabot[bot] Jan 27, 2026
2074ed6
deps:(deps): bump finch from 0.20.0 to 0.21.0 (#85)
dependabot[bot] Jan 27, 2026
5a61c65
✨ fix(stdio): hide console window on windows (#91)
matteing Feb 26, 2026
c7985dd
deps:(deps-dev): bump ex_doc from 0.40.0 to 0.40.1 (#87)
dependabot[bot] Feb 28, 2026
e1dc705
Fix: Check Process.alive? before sending to SSE handler (#82)
mellelieuwes Feb 28, 2026
05a2362
refactor(phase-1): abstract protocol version negotiation (#93)
zoedsoupe Feb 28, 2026
105d6a9
refactor(phase-2): transport layer as functions, backward compatible …
zoedsoupe Feb 28, 2026
9993dab
chore: release 0.17.1 (#94)
zoedsoupe Feb 28, 2026
badb0f0
refactor(phase-3)!: server re-implementation and simplification (#96)
zoedsoupe Feb 28, 2026
08b98c0
refactor(phase-4): client extraction of handlers (#100)
zoedsoupe Mar 2, 2026
cb8f367
deps:(deps-dev): bump styler from 1.10.1 to 1.11.0 (#101)
dependabot[bot] Mar 5, 2026
6f41027
deps:(deps): bump telemetry from 1.3.0 to 1.4.1 (#106)
dependabot[bot] Mar 10, 2026
7df9c0d
deps:(deps-dev): bump credo from 1.7.15 to 1.7.17 (#105)
dependabot[bot] Mar 10, 2026
89c5405
Fix memory leak by preventing stale SSE unregister dropping active he…
nighthawk Mar 13, 2026
6ac49d1
feat: add _meta support to Tool struct and JSON encoder (#108)
sglyon Mar 13, 2026
efee54a
Fix misleading session store warning when disabled (#107)
IvanIvanoff Mar 13, 2026
eea86af
fix(phase-5): remove dead code and update docs (#104)
zoedsoupe Mar 16, 2026
c3c01e9
Fix: Start SSE keepalive when first handler is registered (#83)
dgilperez Mar 16, 2026
1f9f13c
fix!: remove client base module and client macro (#110)
zoedsoupe Mar 16, 2026
b331281
fix: stdio server transport working (#111)
zoedsoupe Mar 16, 2026
cb8c0e3
fix: session serializion errors (#112)
zoedsoupe Mar 16, 2026
944bafb
fix: server examples and sse server transport
zoedsoupe Mar 16, 2026
85f8ebb
fix: regression for input/output server schema
zoedsoupe Mar 16, 2026
dc584a7
chore: release 1.0.0 (#97)
zoedsoupe Mar 16, 2026
ae2560a
docs: correct supervision tree setup (#118)
devtayls Apr 3, 2026
04e3a68
deps:(deps-dev): bump credo from 1.7.17 to 1.7.18 (#126)
dependabot[bot] Apr 13, 2026
8103b7c
feat: add instructions field to initialize response (#122)
azsuth Apr 13, 2026
94d566a
Auto-reinitialize expired sessions for non-initialize requests (#125)
jarlah Apr 13, 2026
4c48647
feat: Add Client.await_ready/2 to block until MCP handshake completes…
nighthawk Apr 13, 2026
da93c8c
chore: release 1.1.0 (#119)
zoedsoupe Apr 13, 2026
eff7f24
fix: buffer chunked STDIO responses before decoding in client (#127)
nighthawk Apr 21, 2026
602d74c
chore: encapsulate transport_parse_state into the Client.State struct
zoedsoupe Apr 22, 2026
05565fc
chore: suppress SSE deprecation warnings
zoedsoupe Apr 22, 2026
fbcca0a
chore: capture log from stdio transports processes
zoedsoupe Apr 22, 2026
8334779
chore: supress SSE deprecation warnings
zoedsoupe Apr 22, 2026
76d7ecd
test: fix the stdio cast message from server using a buffer
zoedsoupe Apr 22, 2026
c47c0c2
chore: release 1.1.1 (#129)
zoedsoupe Apr 22, 2026
6958036
Fix/streamable http accept header 120 (#121)
devtayls Apr 22, 2026
3a34382
fix: correct SSE task lifecycle bugs in StreamableHTTP transport (#130)
zoedsoupe Apr 22, 2026
f961fa0
fix: prevent lost SSE responses when client connection closes (#132)
zoedsoupe Apr 22, 2026
0a1aadc
feat: pluggable session supervisor and :via tuple session naming (#133)
zoedsoupe Apr 24, 2026
fc9444c
fix: replace opaque KeyError with ArgumentError for missing :client_i…
zoedsoupe Apr 24, 2026
a42f462
fix: handle session expiry gracefully with optional callback and stor…
zoedsoupe Apr 24, 2026
4b567d9
fix: server stdio test againts custom io device (#136)
zoedsoupe Apr 24, 2026
ad29215
fix: defer streamable_http plug opts fetching to runtime (#137)
zoedsoupe Apr 24, 2026
2b092a5
chore: release 1.2.0 (#131)
zoedsoupe Apr 24, 2026
6a81e27
deps:(deps): bump peri from 0.6.2 to 0.7.0 (#138)
dependabot[bot] Apr 27, 2026
8ab36e2
feat(elicitation): MCP 2025-06-18 elicitation support (#139)
zoedsoupe Apr 27, 2026
aaee374
feat: resource templates with RFC 6570 URI matching (#141)
zoedsoupe Apr 28, 2026
5593006
fix: scope POST-with-SSE response to originating conn (#144)
zoedsoupe Apr 29, 2026
c12deaa
chore: release 1.3.0 (#140)
zoedsoupe Apr 29, 2026
f8dbc43
fix: log sse_keepalive_failed at :warning, matching sse_send_failed (…
epd Apr 30, 2026
f77a844
chore: change setup-zig version on ci
zoedsoupe Apr 30, 2026
9c674fd
refactor: delegate JSON Schema to Peri, retire :mcp_field (#146)
zoedsoupe May 4, 2026
485ff4a
chore: release 1.3.1 (#147)
zoedsoupe May 4, 2026
e5a86f5
test: cut suite from 62s to 8s (#149)
zoedsoupe May 4, 2026
10a09cf
feat: add resource subscription capability implementation (#152)
devtayls May 8, 2026
f0496b4
feat: dispatch session requests in supervised tasks (#153)
zoedsoupe May 8, 2026
6462ec5
deps:(deps): bump peri from 0.8.3 to 0.8.4 (#151)
dependabot[bot] May 8, 2026
cd33058
chore: release 1.4.0 (#150)
zoedsoupe May 8, 2026
1e368b9
fix: drop compile-connected deps from component/1 macro (#154)
zoedsoupe May 9, 2026
939fd76
ci: fix flaky test
zoedsoupe May 9, 2026
51348f1
feat: MCP Tasks (2025-11-25) — server-receiver for tools/call (#98) (…
zoedsoupe May 9, 2026
a846f53
chore: release 1.5.0 (#156)
zoedsoupe May 9, 2026
512e103
feat: add Registry.PG for distributed session tracking via :pg (#160)
ceolinrenato May 15, 2026
a12a8f6
feat: add OAuth 2.1 authorization for MCP servers (#158)
zoedsoupe May 18, 2026
c8dfee0
chore: release 1.6.0 (#162)
zoedsoupe May 18, 2026
226b71e
fix: Echo request id in "Server not initialized" error (#168)
arianvassili May 23, 2026
d21e8f5
deps:(deps-dev): bump ex_doc from 0.40.1 to 0.40.2 (#163)
dependabot[bot] May 23, 2026
6fa33d6
deps:(deps): bump plug from 1.19.1 to 1.19.2 (#164)
dependabot[bot] May 23, 2026
d269004
deps:(deps): bump finch from 0.21.0 to 0.22.0 (#165)
dependabot[bot] May 23, 2026
d990cd8
deps:(deps): bump telemetry from 1.4.1 to 1.4.2 (#167)
dependabot[bot] May 23, 2026
4fcd14f
deps:(deps): bump gun from 2.2.0 to 2.3.0 (#166)
dependabot[bot] May 23, 2026
457ee76
chore: release 1.6.1 (#169)
zoedsoupe May 23, 2026
ff1d4a0
deps:(deps-dev): bump ex_doc from 0.40.2 to 0.40.3 (#170)
dependabot[bot] May 26, 2026
e3f35a3
deps:(deps): bump peri from 0.8.4 to 0.8.5 (#171)
dependabot[bot] May 26, 2026
6f815e1
deps:(deps-dev): bump cowboy from 2.14.2 to 2.15.0 (#172)
dependabot[bot] May 26, 2026
a76c8be
deps:(deps-dev): bump credo from 1.7.18 to 1.7.19 (#183)
dependabot[bot] Jun 9, 2026
24d6302
deps:(deps-dev): bump cowboy from 2.15.0 to 2.16.0 (#182)
dependabot[bot] Jun 9, 2026
5257680
deps:(deps): bump gun from 2.3.0 to 2.4.0 (#181)
dependabot[bot] Jun 9, 2026
bb3280f
fix: forward :headers to SSE GET request (#180)
malcolmsgc Jun 9, 2026
66abc13
fix(streamable_http): always advertise both content types on POST (#178)
mize85 Jun 9, 2026
48c9478
fix: macros for Elixir 1.20 type checker compatibility
BobbieBarker Jun 9, 2026
143ef5b
config: upgrade dev env
zoedsoupe Jun 9, 2026
cae8501
chore: release 1.6.2 (#184)
zoedsoupe Jun 9, 2026
6e410bd
ci: fix zig correct version for burrito
zoedsoupe Jun 10, 2026
2ed6187
ci: use mlugg/setup-zig 0.15.2 in release-please auto build job
zoedsoupe Jun 10, 2026
c20567b
deps:(deps-dev): bump credo from 1.7.18 to 1.7.19 (#191)
dependabot[bot] Jun 15, 2026
0c9069a
deps:(deps): bump peri from 0.8.5 to 0.9.0 (#193)
dependabot[bot] Jun 15, 2026
cae6ee4
deps:(deps-dev): bump cowboy from 2.16.0 to 2.16.1 (#194)
dependabot[bot] Jun 16, 2026
ffe7759
deps:(deps): bump gun from 2.4.0 to 2.4.1 (#192)
dependabot[bot] Jun 16, 2026
400dcf4
deps:(deps): bump finch from 0.22.0 to 0.23.0 (#195)
dependabot[bot] Jun 22, 2026
2c641a0
deps:(deps): bump plug from 1.19.2 to 1.20.1 (#197)
dependabot[bot] Jun 30, 2026
323e5e3
fix(streamable_http): don't close superseded SSE handler to prevent r…
BobbieBarker Jun 24, 2026
7aec0db
feat(streamable_http): add spec resumability (Last-Event-ID replay)
BobbieBarker Jul 3, 2026
b788902
deps:(deps): bump redix from 1.5.3 to 1.6.0 (#202)
dependabot[bot] Jul 15, 2026
28a815d
deps:(deps-dev): bump cowboy from 2.16.1 to 2.17.0 (#203)
dependabot[bot] Jul 15, 2026
10b52fb
deps:(deps): bump plug from 1.20.1 to 1.20.3 (#212)
dependabot[bot] Jul 15, 2026
5dbf334
config: update nix flakes
zoedsoupe Jul 15, 2026
c0ca08f
ci: add pr-quality workflow
zoedsoupe Jul 15, 2026
17e4a6d
fix(server): resolve session names via Registry to prevent atom-exhau…
neilberkman Jul 15, 2026
e84624c
fix: prevent "Server not initialized" race on first request (#198)
dbrown2642 Jul 15, 2026
3b636a8
ci: add new elixir versions
zoedsoupe Jul 16, 2026
e3bf4af
Carry request context (assigns + headers/auth) into StreamableHTTP se…
malcolmsgc Jul 16, 2026
6335cf4
fix(session): trap_exit so terminate/2 runs on supervisor shutdown (#…
syf2211 Jul 16, 2026
bd3c363
Trap exits in Session so terminate/2 runs on supervisor-initiated sto…
malcolmsgc Jul 16, 2026
b32134a
fix: Forward configured :headers on the DELETE session-teardown reque…
malcolmsgc Jul 16, 2026
c606658
feat(streamable_http): per-subscriber metadata and targeted sends (#218)
BobbieBarker Jul 16, 2026
a1e0ce6
fix(streamable_http): don't close superseded SSE handler to prevent r…
BobbieBarker Jul 16, 2026
4fb8678
Merge branch 'main' into pr/streamable-http-resumability
zoedsoupe Jul 16, 2026
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
2 changes: 1 addition & 1 deletion .github/.release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
".": "0.16.0"
".": "1.6.2"
}
18 changes: 12 additions & 6 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,10 @@ jobs:
otp: 28
- elixir: 1.18
otp: 27
- elixir: 1.18
otp: 26
- elixir: 1.19.5
otp: 28
- elixir: 1.20.2
otp: 28

steps:
- name: Checkout code
Expand Down Expand Up @@ -79,8 +81,10 @@ jobs:
otp: 28
- elixir: 1.18
otp: 27
- elixir: 1.18
otp: 26
- elixir: 1.19.5
otp: 28
- elixir: 1.20.2
otp: 28

steps:
- name: Checkout code
Expand Down Expand Up @@ -163,8 +167,10 @@ jobs:
otp: 28
- elixir: 1.18
otp: 27
- elixir: 1.18
otp: 26
- elixir: 1.19.5
otp: 28
- elixir: 1.20.2
otp: 28

steps:
- name: Checkout code
Expand Down
102 changes: 102 additions & 0 deletions .github/workflows/pr-quality.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
name: PR Quality

permissions:
contents: read
issues: read
pull-requests: write

on:
pull_request_target:
types: [opened, reopened]

jobs:
pr-quality:
runs-on: ubuntu-latest
steps:
- uses: peakoss/anti-slop@v0
with:
# General Settings
max-failures: 4

# PR Branch Checks
# Reject PRs opened *from* someone's main/master (classic drive-by slop).
blocked-source-branches: |
main
master

# PR Size Checks
max-changed-files: 15
max-changed-lines: 4000

# PR Quality Checks
max-negative-reactions: 0
require-maintainer-can-modify: true

# PR Title Checks
# ON: squash-merged titles feed release-please's changelog. Maintainers
# are exempt (see exempt-author-association) so this only gates external
# PRs, and dependabot's non-conventional "deps:" is bot-exempt.
require-conventional-title: true

# PR Description Checks
require-description: true
max-description-length: 2500
max-emoji-count: 2
max-code-references: 5
require-linked-issue: false

# PR Template Checks
# ON: repo ships a Problem/Solution/Rationale template. Non-strict so
# extra prose is fine; we just want the sections present.
require-pr-template: true

# Commit Message Checks
# Title check above is enough; per-commit conventional check punishes
# messy-but-fine intermediate commits that squash away anyway.
require-conventional-commits: false
max-commit-message-length: 500
require-commit-author-match: true

# File Checks
blocked-paths: |
README.md
LICENSE
require-final-newline: true
# On-brand: CLAUDE.md forbids gratuitous comments; AI-slop PRs are
# comment-heavy. Low cap catches them.
max-added-comments: 8

# User Checks (anti-spam signals that don't punish real newcomers)
detect-spam-usernames: true
min-account-age: 30
max-daily-forks: 6
require-public-profile: true
min-profile-completeness: 4

# Merge Checks
# min-global-merge-ratio left at 0: a genuine first-ever contributor has
# a 0 ratio and would be auto-rejected. Account-age + spam-username +
# fork-rate + profile checks carry the anti-spam load instead.
min-global-merge-ratio: 0

# Exemptions
exempt-bots: |
github-actions[bot]
dependabot[bot]
coderabbitai
# OWNER/MEMBER/COLLABORATOR skip all checks -> your own "config:"/"chore:"
# direct PRs never trip the conventional-title gate.
exempt-author-association: "OWNER,MEMBER,COLLABORATOR"
exempt-label: "exempt"

# PR Failure Actions
# Label + comment instead of auto-closing. One false positive shouldn't
# slam the door on a real contributor in a small community lib.
failure-add-pr-labels: "needs-work"
failure-pr-message: |
Thanks for the PR! Some automated quality checks didn't pass - see the
action logs above for specifics. A maintainer will still take a look.
Common fixes: use a conventional title (`fix:`, `feat:`, `docs:` ...),
fill in the Problem/Solution/Rationale template, and keep the diff focused.
close-pr: false
lock-pr: false
5 changes: 3 additions & 2 deletions .github/workflows/release-please.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,9 +53,10 @@ jobs:
mix deps.get

- name: Install Zig
uses: goto-bus-stop/setup-zig@v2
uses: mlugg/setup-zig@v2
with:
version: 0.14.1
version: 0.15.2
mirror: "https://zig.linus.dev/zig"

- name: Install XZ
run: sudo apt-get update && sudo apt-get install -y xz-utils
Expand Down
5 changes: 3 additions & 2 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,10 @@ jobs:
mix deps.get

- name: Install Zig
uses: goto-bus-stop/setup-zig@v2
uses: mlugg/setup-zig@v2
with:
version: 0.14.1
version: 0.15.2
mirror: "https://zig.linus.dev/zig"

- name: Install XZ
run: sudo apt-get update && sudo apt-get install -y xz-utils
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ result
/.lexical/
/.expert/
/.elixir-tools/
.dexter.*

# macOS
**/.DS_Store
Expand Down
166 changes: 163 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,177 @@

All notable changes to this project are documented in this file.

## [0.16.0](https://github.com/zoedsoupe/anubis-mcp/compare/v0.15.0...v0.16.0) (2025-11-18)
## [1.6.2](https://github.com/zoedsoupe/anubis-mcp/compare/v1.6.1...v1.6.2) (2026-06-09)

### Bug Fixes

- forward :headers to SSE GET request ([#180](https://github.com/zoedsoupe/anubis-mcp/issues/180)) ([bb3280f](https://github.com/zoedsoupe/anubis-mcp/commit/bb3280f127084c627983b0c6b1ab4c87ec23c879))
- macros for Elixir 1.20 type checker compatibility ([48c9478](https://github.com/zoedsoupe/anubis-mcp/commit/48c947840e3bc60bc516d2a68cdacf6d2222b4b7))
- **streamable_http:** always advertise both content types on POST ([#178](https://github.com/zoedsoupe/anubis-mcp/issues/178)) ([66abc13](https://github.com/zoedsoupe/anubis-mcp/commit/66abc132e5c43993e260793eef1cb32ba152be26))

## [1.6.1](https://github.com/zoedsoupe/anubis-mcp/compare/v1.6.0...v1.6.1) (2026-05-23)

### Bug Fixes

- Echo request id in "Server not initialized" error ([#168](https://github.com/zoedsoupe/anubis-mcp/issues/168)) ([226b71e](https://github.com/zoedsoupe/anubis-mcp/commit/226b71ef92bd90216d79cd4998636b147763bf4b))

## [1.6.0](https://github.com/zoedsoupe/anubis-mcp/compare/v1.5.0...v1.6.0) (2026-05-18)

### Features

- add OAuth 2.1 authorization for MCP servers ([#158](https://github.com/zoedsoupe/anubis-mcp/issues/158)) ([a12a8f6](https://github.com/zoedsoupe/anubis-mcp/commit/a12a8f6ba9db8498a212f566898b66c99631993e))
- add Registry.PG for distributed session tracking via :pg ([#160](https://github.com/zoedsoupe/anubis-mcp/issues/160)) ([512e103](https://github.com/zoedsoupe/anubis-mcp/commit/512e1033aa6f868b33658395e6fe1f0e28c8faf8))

## [1.5.0](https://github.com/zoedsoupe/anubis-mcp/compare/v1.4.0...v1.5.0) (2026-05-09)

### Features

- MCP Tasks (2025-11-25) — server-receiver for tools/call ([#98](https://github.com/zoedsoupe/anubis-mcp/issues/98)) ([#155](https://github.com/zoedsoupe/anubis-mcp/issues/155)) ([51348f1](https://github.com/zoedsoupe/anubis-mcp/commit/51348f1a6e2b069fbe91c1cd50ce4610303de393))

### Bug Fixes

- drop compile-connected deps from component/1 macro ([#154](https://github.com/zoedsoupe/anubis-mcp/issues/154)) ([1e368b9](https://github.com/zoedsoupe/anubis-mcp/commit/1e368b906092b863362737a90f83ae5a35fd078f))

### Continuous Integration

- fix flaky test ([939fd76](https://github.com/zoedsoupe/anubis-mcp/commit/939fd769813a85170e3b59153a4b8e7f5804150e))

## [1.4.0](https://github.com/zoedsoupe/anubis-mcp/compare/v1.3.1...v1.4.0) (2026-05-08)

### Features

- add resource subscription capability implementation ([#152](https://github.com/zoedsoupe/anubis-mcp/issues/152)) ([10a09cf](https://github.com/zoedsoupe/anubis-mcp/commit/10a09cf89ffbd26651138c74961c442b6257cc40))
- dispatch session requests in supervised tasks ([#153](https://github.com/zoedsoupe/anubis-mcp/issues/153)) ([f0496b4](https://github.com/zoedsoupe/anubis-mcp/commit/f0496b41a40eb6fabd4e015ec3f0ed35575efd44))

### Tests

- cut suite from 62s to 8s ([#149](https://github.com/zoedsoupe/anubis-mcp/issues/149)) ([e5a86f5](https://github.com/zoedsoupe/anubis-mcp/commit/e5a86f592778b85d790a9ca41e577b56a2b3744d))

## [1.3.1](https://github.com/zoedsoupe/anubis-mcp/compare/v1.3.0...v1.3.1) (2026-05-04)

### Bug Fixes

- log sse_keepalive_failed at :warning, matching sse_send_failed ([#145](https://github.com/zoedsoupe/anubis-mcp/issues/145)) ([f8dbc43](https://github.com/zoedsoupe/anubis-mcp/commit/f8dbc43e2fc0fd9debd5851aebcb31ab459459bd))

### Miscellaneous Chores

- change setup-zig version on ci ([f77a844](https://github.com/zoedsoupe/anubis-mcp/commit/f77a844cd0c706db3240f1c655a7277969940244))

### Code Refactoring

- delegate JSON Schema to Peri, retire :mcp_field ([#146](https://github.com/zoedsoupe/anubis-mcp/issues/146)) ([9c674fd](https://github.com/zoedsoupe/anubis-mcp/commit/9c674fd44499a3a0c6ed271748ec7fb44fb4c914))

## [1.3.0](https://github.com/zoedsoupe/anubis-mcp/compare/v1.2.0...v1.3.0) (2026-04-29)

### Features

- **elicitation:** MCP 2025-06-18 elicitation support ([#139](https://github.com/zoedsoupe/anubis-mcp/issues/139)) ([8ab36e2](https://github.com/zoedsoupe/anubis-mcp/commit/8ab36e2f051984a9dc841e7f97e58542e5746800))
- resource templates with RFC 6570 URI matching ([#141](https://github.com/zoedsoupe/anubis-mcp/issues/141)) ([aaee374](https://github.com/zoedsoupe/anubis-mcp/commit/aaee37489887cd8725821a73b80f71ad21c626e2))

### Bug Fixes

- scope POST-with-SSE response to originating conn ([#144](https://github.com/zoedsoupe/anubis-mcp/issues/144)) ([5593006](https://github.com/zoedsoupe/anubis-mcp/commit/5593006ce6bbdcd9e6ce74aff1820247c807a463))

## [1.2.0](https://github.com/zoedsoupe/anubis-mcp/compare/v1.1.1...v1.2.0) (2026-04-24)

### Features

- pluggable session supervisor and :via tuple session naming ([#133](https://github.com/zoedsoupe/anubis-mcp/issues/133)) ([0a1aadc](https://github.com/zoedsoupe/anubis-mcp/commit/0a1aadc3b00be036980920a2c0e0a8ce55d2b392))

### Bug Fixes

- correct SSE task lifecycle bugs in StreamableHTTP transport ([#130](https://github.com/zoedsoupe/anubis-mcp/issues/130)) ([3a34382](https://github.com/zoedsoupe/anubis-mcp/commit/3a343828f3d6974fdbdeb9ab1589b9a52a56ad4f))
- defer streamable_http plug opts fetching to runtime ([#137](https://github.com/zoedsoupe/anubis-mcp/issues/137)) ([ad29215](https://github.com/zoedsoupe/anubis-mcp/commit/ad2921549529eac26488bdcf7be5c876c548e618))
- handle session expiry gracefully with optional callback and store restore ([#134](https://github.com/zoedsoupe/anubis-mcp/issues/134)) ([a42f462](https://github.com/zoedsoupe/anubis-mcp/commit/a42f4625f466ea46a490014d82c11ab8fde042dc))
- prevent lost SSE responses when client connection closes ([#132](https://github.com/zoedsoupe/anubis-mcp/issues/132)) ([f961fa0](https://github.com/zoedsoupe/anubis-mcp/commit/f961fa0719d795eeb2a629ae5764cbb8b29a4c1b))
- replace opaque KeyError with ArgumentError for missing :client_info ([#135](https://github.com/zoedsoupe/anubis-mcp/issues/135)) ([fc9444c](https://github.com/zoedsoupe/anubis-mcp/commit/fc9444cdab045e0275570dfb4f0ff6dcf1a42eb0))
- server stdio test againts custom io device ([#136](https://github.com/zoedsoupe/anubis-mcp/issues/136)) ([4b567d9](https://github.com/zoedsoupe/anubis-mcp/commit/4b567d99fa1dced884ddc89b6798a540e643ba2c))

## [1.1.1](https://github.com/zoedsoupe/anubis-mcp/compare/v1.1.0...v1.1.1) (2026-04-22)

### Bug Fixes

- buffer chunked STDIO responses before decoding in client ([#127](https://github.com/zoedsoupe/anubis-mcp/issues/127)) ([eff7f24](https://github.com/zoedsoupe/anubis-mcp/commit/eff7f248084077e081d57122648963a1ab24e35e))

### Miscellaneous Chores

- capture log from stdio transports processes ([fbcca0a](https://github.com/zoedsoupe/anubis-mcp/commit/fbcca0a1204e4e1602d8abe277af03f067338d10))
- encapsulate transport_parse_state into the Client.State struct ([602d74c](https://github.com/zoedsoupe/anubis-mcp/commit/602d74c7045e3087db4424ba55d61cfcf2c7f663))
- suppress SSE deprecation warnings ([05565fc](https://github.com/zoedsoupe/anubis-mcp/commit/05565fc030c449909bbdcb72d67773b9edefea9c))
- supress SSE deprecation warnings ([8334779](https://github.com/zoedsoupe/anubis-mcp/commit/833477912037a02972fff410aa646c9df7059f09))

### Tests

- fix the stdio cast message from server using a buffer ([76d7ecd](https://github.com/zoedsoupe/anubis-mcp/commit/76d7ecd52d8fc469615f4febe151d0cda11b3713))

## [1.1.0](https://github.com/zoedsoupe/anubis-mcp/compare/v1.0.0...v1.1.0) (2026-04-13)

### Features

- Add Client.await_ready/2 to block until MCP handshake completes ([#117](https://github.com/zoedsoupe/anubis-mcp/issues/117)) ([4c48647](https://github.com/zoedsoupe/anubis-mcp/commit/4c48647192c3304e012049669729008d7177940e))
- add instructions field to initialize response ([#122](https://github.com/zoedsoupe/anubis-mcp/issues/122)) ([8103b7c](https://github.com/zoedsoupe/anubis-mcp/commit/8103b7c5cbc12ace1e302edd059e42c0a04618f1))

### Documentation

- correct supervision tree setup ([#118](https://github.com/zoedsoupe/anubis-mcp/issues/118)) ([ae2560a](https://github.com/zoedsoupe/anubis-mcp/commit/ae2560a8a7fd85847557ac21fc978e15dc5f7995))

## [1.0.0](https://github.com/zoedsoupe/anubis-mcp/compare/v0.17.1...v1.0.0) (2026-03-16)

### ⚠ BREAKING CHANGES

- remove client base module and client macro ([#110](https://github.com/zoedsoupe/anubis-mcp/issues/110))
- **phase-3:** server re-implementation and simplification ([#96](https://github.com/zoedsoupe/anubis-mcp/issues/96))

### Features

* redis based session store (continue from [#48](https://github.com/zoedsoupe/anubis-mcp/issues/48)) ([#55](https://github.com/zoedsoupe/anubis-mcp/issues/55)) ([fddea32](https://github.com/zoedsoupe/anubis-mcp/commit/fddea327ef8d91c57c4dc65f527aadc3e8d105a2))
- add _meta support to Tool struct and JSON encoder ([#108](https://github.com/zoedsoupe/anubis-mcp/issues/108)) ([6ac49d1](https://github.com/zoedsoupe/anubis-mcp/commit/6ac49d181baed767defe9fc5138c6d41caa26f20))

### Bug Fixes

- **phase-5:** remove dead code and update docs ([#104](https://github.com/zoedsoupe/anubis-mcp/issues/104)) ([eea86af](https://github.com/zoedsoupe/anubis-mcp/commit/eea86af23dcb805a7770894c6a6a897700c38dfe))
- regression for input/output server schema ([85f8ebb](https://github.com/zoedsoupe/anubis-mcp/commit/85f8ebb7439c51ab5cb0df974e08720833f534e9))
- remove client base module and client macro ([#110](https://github.com/zoedsoupe/anubis-mcp/issues/110)) ([1f9f13c](https://github.com/zoedsoupe/anubis-mcp/commit/1f9f13cf2c44294391dd580030a1210dcd349fd5))
- server examples and sse server transport ([944bafb](https://github.com/zoedsoupe/anubis-mcp/commit/944bafb01c29afa36a82eddc81c6e1c6d0278a9c))
- session serializion errors ([#112](https://github.com/zoedsoupe/anubis-mcp/issues/112)) ([cb8c0e3](https://github.com/zoedsoupe/anubis-mcp/commit/cb8c0e31ad831484425e378951a85591c8cbf29f)), closes [#60](https://github.com/zoedsoupe/anubis-mcp/issues/60)
- Start SSE keepalive when first handler is registered ([#83](https://github.com/zoedsoupe/anubis-mcp/issues/83)) ([c3c01e9](https://github.com/zoedsoupe/anubis-mcp/commit/c3c01e975f57ef421783f963adf717b522b5c724))
- stdio server transport working ([#111](https://github.com/zoedsoupe/anubis-mcp/issues/111)) ([b331281](https://github.com/zoedsoupe/anubis-mcp/commit/b33128172db3f4ec3766cb4c7125f83bc3a85dd7))

### Code Refactoring

- **phase-3:** server re-implementation and simplification ([#96](https://github.com/zoedsoupe/anubis-mcp/issues/96)) ([badb0f0](https://github.com/zoedsoupe/anubis-mcp/commit/badb0f0111521f8bd5a5dba32574c25e1b589c91))
- **phase-4:** client extraction of handlers ([#100](https://github.com/zoedsoupe/anubis-mcp/issues/100)) ([08b98c0](https://github.com/zoedsoupe/anubis-mcp/commit/08b98c03e50d698a781507ee63a4a6c5f8cdcb5e))

## [0.17.1](https://github.com/zoedsoupe/anubis-mcp/compare/v0.17.0...v0.17.1) (2026-02-28)

### Bug Fixes

- Check Process.alive? before sending to SSE handler ([#82](https://github.com/zoedsoupe/anubis-mcp/issues/82)) ([e1dc705](https://github.com/zoedsoupe/anubis-mcp/commit/e1dc705f1ae8ee7e8670d26c7fdfc30583d19efd))

### Code Refactoring

- **phase-1:** abstract protocol version negotiation ([#93](https://github.com/zoedsoupe/anubis-mcp/issues/93)) ([05a2362](https://github.com/zoedsoupe/anubis-mcp/commit/05a2362a672ef462e73bc9a3f637c3f203c0978e))
- **phase-2:** transport layer as functions, backward compatible ([#95](https://github.com/zoedsoupe/anubis-mcp/issues/95)) ([105d6a9](https://github.com/zoedsoupe/anubis-mcp/commit/105d6a91e31d8dbf606ec7916317f9add94acf4e))

## [0.17.0](https://github.com/zoedsoupe/anubis-mcp/compare/v0.16.0...v0.17.0) (2025-12-09)

### Features

- **redis:** add redix_opts for SSL/TLS support ([#59](https://github.com/zoedsoupe/anubis-mcp/issues/59)) ([33658ab](https://github.com/zoedsoupe/anubis-mcp/commit/33658abab69e1f0c361a4dbf4e9665bb900d2f7e))

### Bug Fixes

- added server component description/0 callback ([#58](https://github.com/zoedsoupe/anubis-mcp/issues/58)) ([a094473](https://github.com/zoedsoupe/anubis-mcp/commit/a094473916f7ac414369bb2faab1593fd141a7f1))
- redix should be loaded ([#71](https://github.com/zoedsoupe/anubis-mcp/issues/71)) ([09b872f](https://github.com/zoedsoupe/anubis-mcp/commit/09b872fe5dc48665beee3be8a7b7ae9943ce48ae))

## [0.16.0](https://github.com/zoedsoupe/anubis-mcp/compare/v0.15.0...v0.16.0) (2025-11-18)

### Features

- redis based session store (continue from [#48](https://github.com/zoedsoupe/anubis-mcp/issues/48)) ([#55](https://github.com/zoedsoupe/anubis-mcp/issues/55)) ([fddea32](https://github.com/zoedsoupe/anubis-mcp/commit/fddea327ef8d91c57c4dc65f527aadc3e8d105a2))

### Bug Fixes

* correct arguments in Logging.should_log? ([#47](https://github.com/zoedsoupe/anubis-mcp/issues/47)) ([6f550e6](https://github.com/zoedsoupe/anubis-mcp/commit/6f550e647fd5e6e7c6cdfb233e1cc8a4ac530fc7))
- correct arguments in Logging.should_log? ([#47](https://github.com/zoedsoupe/anubis-mcp/issues/47)) ([6f550e6](https://github.com/zoedsoupe/anubis-mcp/commit/6f550e647fd5e6e7c6cdfb233e1cc8a4ac530fc7))

## [0.15.0](https://github.com/zoedsoupe/anubis-mcp/compare/v0.14.1...v0.15.0) (2025-11-03)

Expand Down
1 change: 0 additions & 1 deletion CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -136,4 +136,3 @@ mix docs
### Testing Guidelines

- Always implement test helper modules in @test/support/ context, analyzing if there aren't any existing ones that could be used
- memo
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -113,4 +113,4 @@ Releases are managed by the maintainers. Version numbers follow [Semantic Versio

## License

By contributing to Anubis MCP, you agree that your contributions will be licensed under the project's [MIT License](./LICENSE).
By contributing to Anubis MCP, you agree that your contributions will be licensed under the project's [LGPL-v3 License](./LICENSE).
Loading
Loading