Conversation
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.
feat(fmodata): use Effect.ts internally for error handling pipelines
Replace manual error-threading boilerplate in all builders with Effect
pipelines. Effect is used as an internal implementation detail — the
public API (Result) is unchanged.
Changes:
effectdependency, remove unusedneverthrowsrc/effect.tswith bridge utilities (fromResult, makeRequestEffect,runAsResult, tryEffect, fromValidation)
_makeRequestinto an Effect pipeline with extracted helpers(_classifyError, _parseHttpError, _checkEmbeddedODataError)
All 873 tests pass with zero type errors.
https://claude.ai/code/session_01VdwR8FRDc9f1qS68z2Sfzo
feat(fmodata): add retry policies, validation accumulation, and tracing spans
Phase 2 of Effect.ts integration:
with exponential backoff and jitter via Effect Schedule
All changes remain non-breaking — public API (Result, error classes, type guards) is unchanged.
https://claude.ai/code/session_01VdwR8FRDc9f1qS68z2Sfzo
feat(fmodata): add Effect services, MockFMServerConnection, and migrate tests
Phase 3 of Effect.ts integration:
https://claude.ai/code/session_01VdwR8FRDc9f1qS68z2Sfzo
fix(fmodata): limit retries to idempotent HTTP methods
fix(fmodata): address remaining PR review findings
fix(fmodata): harden write requests and batch response handling
refactor(fmodata): migrate all builders to Effect DI via Context/Layer pattern
Replace constructor parameter threading (ExecutionContext, databaseName,
useEntityIds, etc.) with Effect's Context.Tag + Layer pattern across all
builders. Each builder now receives an FMODataLayer and extracts config
synchronously via extractConfigFromLayer() for non-Effect methods.
Key changes:
https://claude.ai/code/session_01EpwtyTQeyjVu3Qykf6aMBd
fix(fmodata): resolve DI branch lint regressions
Summary by CodeRabbit
New Features
Improvements
Tests