Patch Changes
-
#1104
99f2e43Thanks @chrisdoc! - Expose the complete native Effect request client through the internal seam while preserving the public Promise client. -
#1116
62320b0Thanks @chrisdoc! - Route operations-only MCP runtimes through the shared catalog service. -
#1104
99f2e43Thanks @chrisdoc! - Add an Effect-first training summary workflow with deterministic UTC scans. -
#1120
82ca0c9Thanks @chrisdoc! - Route CLI domain commands through the shared Effect-first Hevy operations and
preserve summary and search behavior across the operations boundary. -
#1104
99f2e43Thanks @chrisdoc! - Move shared mutation payload builders and Hevy mutation quirks into operations. -
#1123
e60f5b5Thanks @chrisdoc! - Document the scoped Effect runtime and preserve the Promise-based Node entry points. -
#1104
99f2e43Thanks @chrisdoc! - Document the Effect-first operations layer while keeping the public Node and CLI adapters Promise-shaped. -
#1104
99f2e43Thanks @chrisdoc! - Use Effect scheduling as the typed retry timing seam for the Hevy client. -
#1104
99f2e43Thanks @chrisdoc! - Keep exercise-template catalog lookups in a server-scoped Effect cache. -
#1126
abbb385Thanks @chrisdoc! - Streamline CLI startup error handling and tests to run in-process without process-spawn overhead. -
#1104
99f2e43Thanks @chrisdoc! - Optimize test suite execution by using fake timers for retry backoff delays. -
#1123
e60f5b5Thanks @chrisdoc! - Fix Streamable HTTP session lifecycle: interrupt idle-eviction fibers asynchronously instead of blocking synchronously, remove graceful-shutdown signal listeners after a close timeout, and record the "unknown" termination metric when session cleanup fails with no session established. -
#1104
99f2e43Thanks @chrisdoc! - Isolate Effect retry schedule state so concurrent and sequential requests keep independent retry indexes. -
#1116
62320b0Thanks @chrisdoc! - Provide the core Effect service layer through request-local MCP tool runtimes. -
#1104
99f2e43Thanks @chrisdoc! - Expose the Hevy request Effect through a curated internal client subpath while
keeping the public client Promise-only. -
#1136
affc598Thanks @chrisdoc! - Reduce idle session eviction timeout in streamable HTTP test to improve test execution speed. -
#1141
cebd280Thanks @chrisdoc! - Deduplicate operation construction: one operation factory with derived tracing spans, unconditional options passthrough, and shared read-outcome, page-echo, and pagination helpers. -
#1137
4cc3d2bThanks @chrisdoc! - fix(core): preserve operation domain errors in failure channel instead of converting them to unhandled defects. Domain errors from@hevy-mcp/operations(WorkoutPrivacyError,WorkoutPayloadError,PaginationMismatchError,EmptyMeasurementUpdateError,TrainingSummaryValidationError,TrainingSummaryDataError) are now included inCoreToolErrorand recognized byisCoreToolError, allowing tool error handlers to surface typed domain messages. InrunBoundedExecution, unexpected defects are logged and re-thrown with their message rather than generic failure text. -
#1104
99f2e43Thanks @chrisdoc! - Move typed Effect HTTP errors to the client package and centralize pure read-error classification. -
#1104
99f2e43Thanks @chrisdoc! - Add Effect-first workout writes, events, and count operations. -
#1104
99f2e43Thanks @chrisdoc! - Add Effect-first body measurement read and write operations. -
#1104
99f2e43Thanks @chrisdoc! - Compose read operations directly from the internal request Effect while
preserving their public Promise API. -
#1104
99f2e43Thanks @chrisdoc! - Let Effect schedules own Hevy client retry backoff waits. -
#1138
a40d322Thanks @chrisdoc! - perf(core, hevy-client): replace Zod safeParse runtime predicates with Effect Predicate module. Replaced custom Zod schemas and safeParse calls inpackages/core/src/utils/type-predicates.tsandpackages/hevy-client/src/hevy-client-kubb.tswith Effect's nativePredicatemodule (isString,isNumber,isBoolean,isObject,isFunction), eliminating repeated parsing allocations in the hot request path. -
#1104
99f2e43Thanks @chrisdoc! - Preserve sanitized request identity (method and canonical endpoint) on tagged
NetworkError diagnostics for statusless fetch failures. -
#1123
e60f5b5Thanks @chrisdoc! - Preserve approved CLI argument and invalid API-key startup messages while keeping unexpected errors behind safe diagnostics. -
#1104
99f2e43Thanks @chrisdoc! - Scope core server construction and finalize the exercise-template catalog with the server lifecycle. -
#1123
e60f5b5Thanks @chrisdoc! - Use Effect callback interruption for HTTP request bodies and semaphore-backed session initialization admission. -
#1123
e60f5b5Thanks @chrisdoc! - Own Node startup and shutdown resources with one scoped lifecycle owner while preserving Promise startup and direct close behavior. -
#1104
99f2e43Thanks @chrisdoc! - Share the internal AbortSignal-to-fiber interruption bridge between the
runtime-neutral client and Worker validation cache. -
#1104
99f2e43Thanks @chrisdoc! - Share in-flight exercise-template catalog loads while keeping individual request cancellation isolated. -
#1104
99f2e43Thanks @chrisdoc! - Normalize paginated operations, recover only endpoint-scoped expected 404s, and report page mismatches as tagged errors. -
#1104
99f2e43Thanks @chrisdoc! - Complete the request-local Effect retry interpreter while preserving client and adapter behavior. -
#1123
e60f5b5Thanks @chrisdoc! - Own Streamable HTTP sessions with server and child Effect scopes while preserving
session admission, disconnect, idle eviction, and shutdown behavior. -
#1104
99f2e43Thanks @chrisdoc! - Add Effect-first routine creation, updates, and paginated title search. -
#1104
99f2e43Thanks @chrisdoc! - Map internal Effect client HTTP and transport failures to discriminable tagged errors while preserving the public Promise client error behavior. -
#1123
e60f5b5Thanks @chrisdoc! - Make telemetry initialization best-effort so provider failures do not prevent Node transports from starting. -
#1116
62320b0Thanks @chrisdoc! - Preserve typed deadline and cancellation failures while loading exercise templates. -
#1140
18d2949Thanks @chrisdoc! - Harden Effect type safety: narrow the request error channel to tagged errors, surface bounded-execution timeouts as typed deadline failures, validate template search pagination, and return template list results as an explicit struct. -
#1145
1080685Thanks @chrisdoc! - Governance pass: rebalance hooks (cached unit lane on pre-commit, full check on pre-push), enforce knip, drop the dead client primitives barrel, and document boundaries and PR expectations. -
#1123
e60f5b5Thanks @chrisdoc! - Adopt Effect-scoped process lifecycle and bounded graceful shutdown for the Node adapter. -
#1151
131da8eThanks @chrisdoc! - Restore the fresh-budget deadline retry for timed-out reads. The Effect runtime
migration dropped the extended operation deadline, so a read whose first attempt
overshot its timeout could starve the retry before dispatch and skip the second
fetch. -
#1116
62320b0Thanks @chrisdoc! - Preserve tagged Effect failures through MCP tool and resource boundaries. -
#1104
99f2e43Thanks @chrisdoc! - Add Effect-first template, folder, and user operations with paginated catalogs. -
#1123
e60f5b5Thanks @chrisdoc! - Make Node process listener acquisition transactional and preserve startup errors during rollback. -
#1123
e60f5b5Thanks @chrisdoc! - Use tagged core errors at the MCP tool collapse boundary, including bounded
invalid-argument, missing-client, and unavailable-operation failures. -
#1104
99f2e43Thanks @chrisdoc! - Upgrade workspace dependencies and regenerate client with Kubb. -
#1140
18d2949Thanks @chrisdoc! - Preserve the fetched template page count through the exercise catalog cache instead of recomputing it from the cached item count. -
#1142
7969bd8Thanks @chrisdoc! - Simplify Effect runtime usage: one abort-signal bridge, compiler-checked error vocabulary, a single cause-normalization boundary, lazy service layers, Effect-native catalog lifecycle, and shared response pagination.