Conversation
commit: |
cowboyd
added a commit
that referenced
this pull request
Feb 4, 2026
cowboyd
added a commit
that referenced
this pull request
Feb 4, 2026
cowboyd
added a commit
that referenced
this pull request
Feb 4, 2026
cowboyd
added a commit
that referenced
this pull request
Feb 5, 2026
cowboyd
added a commit
that referenced
this pull request
Feb 5, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Motivation
Effection currently lack a standardized way to attach metadata for debugging and visualization purposes. We need a way to attach metadata to a scope so that it can be consumed by downstream tooling such as OTEL or the Effection Inspector.
Approach
This change introduces two new APIs:
useAttributes()- An operation that adds serializable metadata (name/value pairs) to the current scope. This is api is meant to be used to annotate Effection scopes from user-land code. Accessible from the main module export.getAttributes()- A function to retrieve a scope attributes. This api is not really designed to be called from user-land, but will be called from tooling that needs to read attributes from a scope. This api is only available via theeffection/exmperimentalmodule.Each scope maintains its own attributes. They are not inherited from parent scopes. This makes sense when we think that these attributes are there to present information that is unique to the current scope.p
Multiple calls to useAttributes within the same scope merge attributes rather than replacing them, allowing progressive enhancement of scope metadata.
Example Usage