# Behavior traces — effect-ts/effect

> Canonical page: https://codevetter.com/unpack/effect/behavior-traces

# Behavior traces — effect-ts/effect

Scanned commit 6389d9ac64c0f62ccc8b575fb9afc65fc104e814 (2026-10-02). Generated by codevetter codevetter 1.15.0 on 2026-10-02.

Source inspection; upstream code and tests were not executed.

Three source-level flows were followed to their completion boundaries: managed-runtime startup/execution/disposal, HTTP API registration/request handling, and schema-backed SQLite persistence. Each trace includes the functions responsible for state ownership and relevant conditional branches. These are execution-order reconstructions from source, not observed runs. Documentation's Hono integration provides a concrete consumer of the managed-runtime bridge.
- Runtime startup: ManagedRuntime.make creates a MemoMap and sequential root/layer scopes plus a parallel fiber scope; the first contextEffect starts Effect.runFork → Layer.buildWithMemoMap → layer.build and caches the resulting Context. — [packages/effect/src/ManagedRuntime.ts#L285-L324](https://github.com/effect-ts/effect/blob/6389d9ac64c0f62ccc8b575fb9afc65fc104e814/packages/effect/src/ManagedRuntime.ts#L285-L324) [packages/effect/src/Layer.ts#L653-L662](https://github.com/effect-ts/effect/blob/6389d9ac64c0f62ccc8b575fb9afc65fc104e814/packages/effect/src/Layer.ts#L653-L662)
- Runtime primary action: runtime.runPromise chooses provide(contextEffect, program) before initialization or runPromiseWith(cachedContext) afterward; runPromiseExitWith → runForkWith → FiberImpl.evaluate leads to a Promise resolved from Exit or rejected from causeSquash. — [packages/effect/src/ManagedRuntime.ts#L378-L396](https://github.com/effect-ts/effect/blob/6389d9ac64c0f62ccc8b575fb9afc65fc104e814/packages/effect/src/ManagedRuntime.ts#L378-L396) [packages/effect/src/internal/effect.ts#L5657-L5668](https://github.com/effect-ts/effect/blob/6389d9ac64c0f62ccc8b575fb9afc65fc104e814/packages/effect/src/internal/effect.ts#L5657-L5668) [packages/effect/src/internal/effect.ts#L5738-L5769](https://github.com/effect-ts/effect/blob/6389d9ac64c0f62ccc8b575fb9afc65fc104e814/packages/effect/src/internal/effect.ts#L5738-L5769)
- Runtime completion: dispose → Effect.runPromise(disposeEffect) invalidates contextEffect, clears cachedContext, and calls Scope.close. The Hono example invokes disposal on SIGINT/SIGTERM; regression tests assert request cleanup finishes before layer resources close. — [packages/effect/src/ManagedRuntime.ts#L337-L346](https://github.com/effect-ts/effect/blob/6389d9ac64c0f62ccc8b575fb9afc65fc104e814/packages/effect/src/ManagedRuntime.ts#L337-L346) [ai-docs/src/04_integration/10_managed-runtime.ts#L122-L129](https://github.com/effect-ts/effect/blob/6389d9ac64c0f62ccc8b575fb9afc65fc104e814/ai-docs/src/04_integration/10_managed-runtime.ts#L122-L129) [packages/effect/test/ManagedRuntime.test.ts#L74-L124](https://github.com/effect-ts/effect/blob/6389d9ac64c0f62ccc8b575fb9afc65fc104e814/packages/effect/test/ManagedRuntime.test.ts#L74-L124)
- HTTP registration: HttpApiBuilder.group calls build(makeHandlers(group)), converts handlers via handlerToRoute, and stores routes under group.key; HttpApiBuilder.layer collects those group services and calls router.addAll, dying with a diagnostic if a group is missing. — [packages/effect/src/http-api/HttpApiBuilder.ts#L146-L164](https://github.com/effect-ts/effect/blob/6389d9ac64c0f62ccc8b575fb9afc65fc104e814/packages/effect/src/http-api/HttpApiBuilder.ts#L146-L164) [packages/effect/src/http-api/HttpApiBuilder.ts#L917-L929](https://github.com/effect-ts/effect/blob/6389d9ac64c0f62ccc8b575fb9afc65fc104e814/packages/effect/src/http-api/HttpApiBuilder.ts#L917-L929) [packages/effect/src/http-api/HttpApiBuilder.ts#L89-L104](https://github.com/effect-ts/effect/blob/6389d9ac64c0f62ccc8b575fb9afc65fc104e814/packages/effect/src/http-api/HttpApiBuilder.ts#L89-L104)
- HTTP request: HttpRouter.asHttpEffect → router.find → request/route Context installation → middleware-wrapped handlerToHttpEffect → slot decoders → handler → success encoder. Missing routes fail as RouteNotFound; raw responses return directly, and declared handler errors pass through encodeError. — [packages/effect/src/http/HttpRouter.ts#L199-L240](https://github.com/effect-ts/effect/blob/6389d9ac64c0f62ccc8b575fb9afc65fc104e814/packages/effect/src/http/HttpRouter.ts#L199-L240) [packages/effect/src/http-api/HttpApiBuilder.ts#L850-L911](https://github.com/effect-ts/effect/blob/6389d9ac64c0f62ccc8b575fb9afc65fc104e814/packages/effect/src/http-api/HttpApiBuilder.ts#L850-L911) [packages/effect/src/http-api/HttpApiBuilder.ts#L932-L946](https://github.com/effect-ts/effect/blob/6389d9ac64c0f62ccc8b575fb9afc65fc104e814/packages/effect/src/http-api/HttpApiBuilder.ts#L932-L946)
- SQLite storage initialization: SqliteClient.layer → make → makeConnection opens DatabaseSync, registers db.close as a scope finalizer, configures busy_timeout and optional WAL, and creates the generic client; KeyValueStore.layerSql obtains it and creates the dialect-specific table. — [packages/sql/sqlite-node/src/SqliteClient.ts#L125-L173](https://github.com/effect-ts/effect/blob/6389d9ac64c0f62ccc8b575fb9afc65fc104e814/packages/sql/sqlite-node/src/SqliteClient.ts#L125-L173) [packages/sql/sqlite-node/src/SqliteClient.ts#L305-L325](https://github.com/effect-ts/effect/blob/6389d9ac64c0f62ccc8b575fb9afc65fc104e814/packages/sql/sqlite-node/src/SqliteClient.ts#L305-L325) [packages/sql/sqlite-node/src/SqliteClient.ts#L361-L369](https://github.com/effect-ts/effect/blob/6389d9ac64c0f62ccc8b575fb9afc65fc104e814/packages/sql/sqlite-node/src/SqliteClient.ts#L361-L369) [packages/effect/src/persistence/KeyValueStore.ts#L509-L552](https://github.com/effect-ts/effect/blob/6389d9ac64c0f62ccc8b575fb9afc65fc104e814/packages/effect/src/persistence/KeyValueStore.ts#L509-L552)
- Persistence write: SchemaStore.set → schema encode → KeyValueStore.set → UTF-8 bytes/value_type → SQLite upsert.unprepared → Statement.withConnection → compile → executeUnprepared → prepare → runStatement → StatementSync.run/all. — [packages/effect/src/persistence/KeyValueStore.ts#L799-L799](https://github.com/effect-ts/effect/blob/6389d9ac64c0f62ccc8b575fb9afc65fc104e814/packages/effect/src/persistence/KeyValueStore.ts#L799-L799) [packages/effect/src/persistence/KeyValueStore.ts#L580-L585](https://github.com/effect-ts/effect/blob/6389d9ac64c0f62ccc8b575fb9afc65fc104e814/packages/effect/src/persistence/KeyValueStore.ts#L580-L585) [packages/effect/src/persistence/KeyValueStore.ts#L661-L675](https://github.com/effect-ts/effect/blob/6389d9ac64c0f62ccc8b575fb9afc65fc104e814/packages/effect/src/persistence/KeyValueStore.ts#L661-L675) [packages/sql/sqlite-node/src/SqliteClient.ts#L269-L271](https://github.com/effect-ts/effect/blob/6389d9ac64c0f62ccc8b575fb9afc65fc104e814/packages/sql/sqlite-node/src/SqliteClient.ts#L269-L271) [packages/effect/src/sql/Statement.ts#L1363-L1375](https://github.com/effect-ts/effect/blob/6389d9ac64c0f62ccc8b575fb9afc65fc104e814/packages/effect/src/sql/Statement.ts#L1363-L1375) [packages/effect/src/sql/Statement.ts#L1432-L1437](https://github.com/effect-ts/effect/blob/6389d9ac64c0f62ccc8b575fb9afc65fc104e814/packages/effect/src/sql/Statement.ts#L1432-L1437) [packages/sql/sqlite-node/src/SqliteClient.ts#L154-L158](https://github.com/effect-ts/effect/blob/6389d9ac64c0f62ccc8b575fb9afc65fc104e814/packages/sql/sqlite-node/src/SqliteClient.ts#L154-L158) [packages/sql/sqlite-node/src/SqliteClient.ts#L166-L184](https://github.com/effect-ts/effect/blob/6389d9ac64c0f62ccc8b575fb9afc65fc104e814/packages/sql/sqlite-node/src/SqliteClient.ts#L166-L184)
- Persistence read: SchemaStore.get → SQL SELECT by key → first-row value_type decoding → schema JSON decode → Option.some; missing rows return undefined at the backend and Option.none at the schema boundary, while invalid stored type discriminators fail with KeyValueStoreError. — [packages/effect/src/persistence/KeyValueStore.ts#L598-L628](https://github.com/effect-ts/effect/blob/6389d9ac64c0f62ccc8b575fb9afc65fc104e814/packages/effect/src/persistence/KeyValueStore.ts#L598-L628) [packages/effect/src/persistence/KeyValueStore.ts#L784-L797](https://github.com/effect-ts/effect/blob/6389d9ac64c0f62ccc8b575fb9afc65fc104e814/packages/effect/src/persistence/KeyValueStore.ts#L784-L797) [packages/effect/src/sql/Statement.ts#L1440-L1454](https://github.com/effect-ts/effect/blob/6389d9ac64c0f62ccc8b575fb9afc65fc104e814/packages/effect/src/sql/Statement.ts#L1440-L1454)

Every claim links to its cited files at the pinned commit. Citations identify source evidence; they do not establish runtime correctness. Independent CodeVetter scan — not reviewed by upstream maintainers.

## Public product links

- [CodeVetter](https://codevetter.com/)
- [Download](https://codevetter.com/download)
- [Documentation](https://codevetter.com/docs/)
- [Source](https://github.com/Codevetter/codevetter)
