Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
65 commits
Select commit Hold shift + click to select a range
47eabfe
update
jwaldrip Jun 4, 2025
2447856
Merge branch 'main' of https://github.com/absinthe-graphql/absinthe
jwaldrip Jun 30, 2025
084581b
fix introspection
jwaldrip Jul 1, 2025
d11730f
add claude.md
jwaldrip Jul 1, 2025
cf929c7
Fix mix tasks to respect schema adapter for proper naming conventions
jwaldrip Jul 1, 2025
5adcf05
feat: Add field description inheritance from referenced types
jwaldrip Jul 2, 2025
a819344
gitignore local settings
jwaldrip Jul 2, 2025
05f835f
Merge branch 'main' of github.com:absinthe-graphql/absinthe
jwaldrip Sep 5, 2025
924a52a
fix sdl render
jwaldrip Sep 5, 2025
7704caf
Remove automatic field description inheritance
jwaldrip Sep 5, 2025
be6449d
Fix code formatting
jwaldrip Sep 5, 2025
d4ff034
fix dialyzer
jwaldrip Sep 8, 2025
d7cb981
remove elixir 1.19
jwaldrip Sep 8, 2025
71f503f
feat: add schema coordinates utility module (RFC #794)
jwaldrip Jan 13, 2026
65ce8cc
feat: add description support for operations and fragments
jwaldrip Jan 12, 2026
86fa4b6
feat: implement full Unicode support per GraphQL September 2025 spec
jwaldrip Jan 12, 2026
54b39ce
feat: Add @semanticNonNull directive support
jwaldrip Jan 12, 2026
d3e9806
feat: make @semanticNonNull directive opt-in
jwaldrip Jan 13, 2026
ccfd7c7
feat: add TypeSystem directives support with introspection
jwaldrip Jan 12, 2026
3a82547
update
jwaldrip Jun 4, 2025
73715de
fix introspection
jwaldrip Jul 1, 2025
38ad2eb
add claude.md
jwaldrip Jul 1, 2025
e849361
Fix mix tasks to respect schema adapter for proper naming conventions
jwaldrip Jul 1, 2025
801f39d
feat: Add field description inheritance from referenced types
jwaldrip Jul 2, 2025
5970e31
gitignore local settings
jwaldrip Jul 2, 2025
ab51d53
fix sdl render
jwaldrip Sep 5, 2025
42c1c00
feat: Add @defer and @stream directive support for incremental delivery
jwaldrip Sep 5, 2025
2457921
docs: Add comprehensive incremental delivery documentation
jwaldrip Sep 5, 2025
b64aeeb
fix: Correct Elixir syntax errors in incremental delivery implementation
jwaldrip Sep 5, 2025
a227ae8
fix: Update test infrastructure for incremental delivery
jwaldrip Sep 5, 2025
fff271f
feat: Complete @defer and @stream directive implementation
jwaldrip Sep 5, 2025
326d604
docs: Add comprehensive incremental delivery guide
jwaldrip Sep 5, 2025
bfcec32
Add incremental delivery guide to documentation extras
jwaldrip Sep 5, 2025
ea5d665
Remove automatic field description inheritance
jwaldrip Sep 5, 2025
2dc02b3
Fix code formatting
jwaldrip Sep 5, 2025
11ca745
fix dialyzer
jwaldrip Sep 8, 2025
df669b6
remove elixir 1.19
jwaldrip Sep 8, 2025
fda1edf
fix: resolve @defer/@stream incremental delivery issues
jwaldrip Jan 12, 2026
7831a2c
docs: clarify supervisor startup and dataloader integration
jwaldrip Jan 12, 2026
81a24d2
chore: remove debug test file
jwaldrip Jan 12, 2026
993d3c4
feat: add on_event callback for monitoring integrations
jwaldrip Jan 13, 2026
2efc671
feat: add telemetry events for incremental delivery instrumentation
jwaldrip Jan 13, 2026
141a4ea
docs: add incremental delivery telemetry documentation
jwaldrip Jan 13, 2026
70f3b5b
docs: add incremental delivery to CHANGELOG
jwaldrip Jan 13, 2026
ae5150b
docs: clarify @defer/@stream are draft/RFC, not finalized spec
jwaldrip Jan 13, 2026
68d8421
feat: make @defer/@stream directives opt-in
jwaldrip Jan 13, 2026
8d92bb2
chore: fix formatting across incremental delivery files
jwaldrip Jan 13, 2026
0d48992
ci: restore Elixir 1.19 support
jwaldrip Jan 13, 2026
7f1bfe7
feat: unify streaming architecture for subscriptions and incremental …
jwaldrip Jan 13, 2026
96fa747
refactor: extract middleware and telemetry modules for better discove…
jwaldrip Jan 20, 2026
80c975e
Merge remote-tracking branch 'origin/main' into fix-field-descriptions
jwaldrip Feb 6, 2026
b57b357
fix: remove incorrect field description inheritance docstring
jwaldrip Feb 6, 2026
c7451ec
feat: Implement @defer and @stream directives for incremental deliver…
jwaldrip Feb 9, 2026
4c7d149
Merge remote-tracking branch 'gigsmart/feat/full-unicode' into gigsma…
jwaldrip Feb 9, 2026
49e14a5
Merge remote-tracking branch 'gigsmart/feat/document-descriptions' in…
jwaldrip Feb 9, 2026
b857ca9
Merge remote-tracking branch 'gigsmart/feat/semantic-non-null' into g…
jwaldrip Feb 9, 2026
6822887
Merge remote-tracking branch 'gigsmart/feat/schema-coordinates' into …
jwaldrip Feb 9, 2026
173f65b
Merge remote-tracking branch 'gigsmart/feat/typesystem-directives' in…
jwaldrip Feb 9, 2026
378a544
fix: resolve integration issues across merged feature branches
jwaldrip Feb 9, 2026
0658c1b
Merge branch 'gigsmart/integration' into gigsmart-main-local
jwaldrip Feb 9, 2026
e6b2860
Remove memory-based stream gating from ResourceManager
jwaldrip Mar 31, 2026
8c89a39
Merge remote-tracking branch 'origin/main' into gigmart/defer-stream-…
jwaldrip Mar 31, 2026
b55f84c
Merge branch 'gigmart/defer-stream-incremental'
jwaldrip Mar 31, 2026
a2c2ecc
refactor(streaming): rewrite StreamingResolution with resolve-then-sp…
juscyllan Apr 11, 2026
3f68ce1
fix(streaming): handle Fragment.Spread @defer + add backwards-compat …
juscyllan Apr 11, 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
3 changes: 0 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,16 +15,13 @@ jobs:
elixir:
- "1.17"
- "1.18"
- "1.19"
otp:
- "25"
- "26"
- "27"
- "28"
# see https://hexdocs.pm/elixir/compatibility-and-deprecations.html#between-elixir-and-erlang-otp
exclude:
- elixir: 1.19
otp: 25
- elixir: 1.17
otp: 28

Expand Down
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
.claude
.vscode
/bench
/_build
/cover
Expand All @@ -7,7 +9,6 @@
erl_crash.dump
*.ez
src/*.erl
.tool-versions*
missing_rules.rb
.DS_Store
/priv/plts/*.plt
Expand Down
33 changes: 33 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,38 @@
# Changelog

## Unreleased

### Features

* **draft-spec:** Add `@defer` and `@stream` directives for incremental delivery ([#1377](https://github.com/absinthe-graphql/absinthe/pull/1377))
- **Note:** These directives are still in draft/RFC stage and not yet part of the finalized GraphQL specification
- **Opt-in required:** `import_directives Absinthe.Type.BuiltIns.IncrementalDirectives` in your schema
- Split GraphQL responses into initial + incremental payloads
- Configure via `Absinthe.Pipeline.Incremental.enable/2`
- Resource limits (max concurrent streams, memory, duration)
- Dataloader integration for batched loading
- SSE and WebSocket transport support
* **subscriptions:** Support `@defer` and `@stream` in subscriptions
- Subscriptions with deferred content deliver multiple payloads automatically
- Existing PubSub implementations work unchanged (calls `publish_subscription/2` multiple times)
- Uses standard GraphQL incremental delivery format that clients already understand
* **streaming:** Unified streaming architecture for queries and subscriptions
- New `Absinthe.Streaming` module consolidates shared abstractions
- `Absinthe.Streaming.Executor` behaviour for pluggable task execution backends
- `Absinthe.Streaming.TaskExecutor` default executor using `Task.async_stream`
- `Absinthe.Streaming.Delivery` handles pubsub delivery for subscriptions
- Both query and subscription incremental delivery share the same execution path
* **executors:** Pluggable task execution backends
- Implement `Absinthe.Streaming.Executor` to use custom backends (Oban, RabbitMQ, etc.)
- Configure via `@streaming_executor` schema attribute, context, or application config
- Default executor uses `Task.async_stream` with configurable concurrency and timeouts
* **telemetry:** Add telemetry events for incremental delivery
- `[:absinthe, :incremental, :delivery, :initial]` - initial response
- `[:absinthe, :incremental, :delivery, :payload]` - each deferred/streamed payload
- `[:absinthe, :incremental, :delivery, :complete]` - stream completed
- `[:absinthe, :incremental, :delivery, :error]` - error during streaming
* **monitoring:** Add `on_event` callback for custom monitoring integrations (Sentry, DataDog)

## [1.9.0](https://github.com/absinthe-graphql/absinthe/compare/v1.8.0...v1.9.0) (2025-11-21)


Expand Down
Loading