Conversation
…et package - Created hatchet-spec.md to define requirements and scenarios for the @effectify/hatchet package, covering core, effectifier, workflow, logging, schema, testing, monorepo setup, and integration specs. - Added hatchet-tasks.md to outline implementation tasks for the package, detailing phases from monorepo setup to documentation and release, with a total of 47 tasks.
- Introduced `workflow` module for defining Hatchet workflows using Effect. - Implemented `registerWorkflow` and `registerWorkflowWithConfig` for workflow registration with Hatchet workers. - Added task helper functions to create tasks with options and effects. - Defined types for workflow and task options to enhance type safety. - Created integration and unit tests for workflow registration, task creation, and error handling. - Set up Docker Compose for local development and testing of Hatchet Lite. - Added TypeScript configuration files for building and testing the package.
…space exploration - Created `nx-plugins` skill for discovering and installing Nx plugins. - Introduced `nx-run-tasks` skill to assist with executing tasks in an Nx workspace. - Developed `nx-workspace` skill for exploring workspace structure, project configurations, and available targets. - Added reference documentation for affected projects in the Nx workspace. - Updated agent guidelines to emphasize the use of new skills and best practices for Nx commands. - Enhanced documentation for the Hatchet package with improved examples and architecture details. - Implemented unit tests for the effectifier module in the Hatchet package.
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
… and workspace exploration - Deleted VITE.md, SKILL.md for nx-plugins, nx-run-tasks, and nx-workspace to streamline the agent's knowledge base. - Removed references to affected projects and CI monitor subagent configuration. - Added package-lock.json for opencode with dependencies for @opencode-ai/plugin and related packages.
| const AppLayer = Layer.mergeAll( | ||
| Layer.merge(BaseAppLayer, HatchetConfigLayer), | ||
| HatchetClientLive, | ||
| ) as unknown as Layer.Layer<any, any, never> |
There was a problem hiding this comment.
this casting is bad pattern mostly in the application layer, with this lost the typesafety.
| import { renderToStaticMarkup } from "react-dom/server" | ||
| import { HatchetDemoCronsSection } from "./hatchet-demo-crons.js" | ||
|
|
||
| describe("HatchetDemoCronsSection", () => { |
There was a problem hiding this comment.
test e2e or integration test should live in other folder for the app.
| @@ -0,0 +1,55 @@ | |||
| export const parseEventPayload = (input: string): Record<string, unknown> => { | |||
There was a problem hiding this comment.
this file should be live in lib/hatchet
| runWorkflow, | ||
| upsertRateLimit, | ||
| } from "@effectify/hatchet" | ||
| import { Form, useActionData } from "react-router" |
There was a problem hiding this comment.
each section should be a new page inside hatchet-demo/* and have a litter natigation with tabs or sidebar, each page should handle his senario with the action and loader
| * ) | ||
| * ``` | ||
| */ | ||
| // TODO: Fix type issue with HatchetStepContext |
There was a problem hiding this comment.
review more todos
| import { getHatchetClient } from "../core/client.js" | ||
| import { HatchetCronError } from "../core/error.js" | ||
|
|
||
| interface CronWorkflowMetadata { |
There was a problem hiding this comment.
i see for each client you are defined all necesary types or interfaces this is really necessary we can use already hatchet SDK provides? this is tranversal
| * Effect-first wrappers around the Hatchet SDK crons surface. | ||
| */ | ||
|
|
||
| import * as Effect from "effect/Effect" |
There was a problem hiding this comment.
i cant see the utilization of Effect Duration module i think is very important to keep Effect first Api interface to interact with hatchet SDK
| @@ -0,0 +1,39 @@ | |||
| import { webdriverio } from "@vitest/browser-webdriverio" | |||
There was a problem hiding this comment.
also the test e2e must considerate make test against to the hatchet UI to verify all is working accordingly
| Effect.gen(function*() { | ||
| const config = yield* HatchetConfig | ||
|
|
||
| console.log("[Hatchet] Initializing with host:", config.host) |
There was a problem hiding this comment.
console.log is not right we must use yield* Console from Effect
| */ | ||
| export class HatchetStepContext extends ServiceMap.Service< | ||
| HatchetStepContext, | ||
| HatchetContext<any, any> |
There was a problem hiding this comment.
why here is <any, any> ?
Closes #46
PR Type
Summary
Changes
packages/hatchet/src/clients/*packages/hatchet/src/core/*packages/hatchet/src/testing/*packages/hatchet/tests/unit/*apps/react-router-example/app/routes/hatchet-demo*apps/react-router-example/test/browser/*apps/react-router-example/vitest.browser.config.tspnpm-workspace.yaml,package.json, app/package manifestsAGENTS.mdTest Plan
@effectify/hatchetand@effectify/react-router-exampleContributor Checklist
type:*labelCo-Authored-Bytrailers