"Hatchet Project Faces Critical Test Coverage Gaps Amidst Rapid Feature Development"
dependabot[bot]
Alexander Belanger (abelanger5)
Gabe Ruttner (grutt)
Luca Steeb (steebchen)
google.golang.org/api
, github.com/getsentry/sentry-go
, github.com/jackc/pgx/v5
, and github.com/rs/zerolog
.The team exhibits a strong collaborative effort with frequent interactions between key contributors. Dependabot plays a crucial role in maintaining up-to-date dependencies. Alexander Belanger and Gabe Ruttner focus on fixing critical bugs and enhancing system functionality, while Luca Steeb drives new feature development.
internal/repository/prisma/step_run.go
suggest potential instability or unclear requirements.The Hatchet project is progressing with significant feature additions and bug fixes but faces critical risks due to lack of test coverage for new functionalities and prolonged disagreements among team members. Addressing these issues promptly will be essential to maintain system stability and project momentum.
Developer | Avatar | Branches | PRs | Commits | Files | Changes |
---|---|---|---|---|---|---|
Gabe Ruttner | ![]() |
3 | 5/5/0 | 12 | 41 | 2152 |
vs. last report | = | -1/-4/= | +1 | -15 | -2395 | |
Luca Steeb (steebchen) | 3 | 1/0/0 | 11 | 44 | 1550 | |
vs. last report | = | -3/-4/= | -12 | -37 | -156 | |
dependabot[bot] | ![]() |
1 | 9/9/0 | 9 | 2 | 96 |
vs. last report | = | +1/+1/= | +1 | = | +6 | |
abelanger5 | ![]() |
1 | 4/4/0 | 4 | 5 | 71 |
vs. last report | = | -5/-5/= | -5 | -34 | -13574 |
PRs: created by that dev and opened/merged/closed-unmerged during the period
The Hatchet project is a software platform designed to manage and automate workflows, featuring capabilities such as alerting, metadata handling, and integration with third-party services like Slack. The project is managed by the Hatchet Dev team. The project is currently in a robust phase of development, with continuous enhancements and bug fixes being implemented. The trajectory remains positive, with consistent updates and improvements being made.
chore(deps): bump google.golang.org/api from 0.181.0 to 0.182.0 ([#537](https://github.com/hatchet-dev/hatchet/issues/537))
chore(deps): bump github.com/getsentry/sentry-go from 0.27.0 to 0.28.0 ([#533](https://github.com/hatchet-dev/hatchet/issues/533))
chore(deps): bump github.com/jackc/pgx/v5 from 5.5.5 to 5.6.0 ([#531](https://github.com/hatchet-dev/hatchet/issues/531))
chore(deps): bump github.com/rs/zerolog from 1.32.0 to 1.33.0 ([#526](https://github.com/hatchet-dev/hatchet/issues/526))
fix: set tx isolation level to serializable for step run assignments ([#535](https://github.com/hatchet-dev/hatchet/issues/535))
fix: old Listen endpoint not setting worker to active ([#534](https://github.com/hatchet-dev/hatchet/issues/534))
revert: scheduleToStart retries ([#529](https://github.com/hatchet-dev/hatchet/issues/529))
fix: worker active bug ([#517](https://github.com/hatchet-dev/hatchet/issues/517))
fix: stringify value ([#532](https://github.com/hatchet-dev/hatchet/issues/532))
fix: new context with timeout ([#527](https://github.com/hatchet-dev/hatchet/issues/527))
feat: delete tenant member ui ([#518](https://github.com/hatchet-dev/hatchet/issues/518))
fix: worker active bug ([#517](https://github.com/hatchet-dev/hatchet/issues/517))
feat(webhooks): add webhook settings page
– Multiple files updated for webhook settings page.generate fixes
– Multiple files updated for generate fixes.ci(workflows): pin pnpm on deps install
– Multiple files updated for consistent formatting using a whitespace linter.The Hatchet project has seen substantial activity over the past few days, focusing on dependency updates, improving worker mechanisms, and maintaining dependency updates. Key contributors include Alexander Belanger and Gabe Ruttner who have been actively collaborating on various features and fixes. The ongoing updates by Dependabot highlight a strong emphasis on keeping dependencies current.
Moving forward, it will be essential to monitor the impact of these changes on system performance and user experience. Continuous integration of feedback into the development process will be vital for sustaining the project's growth and relevance.
Overall, the development team remains highly active with a clear focus on both maintaining existing functionalities through bug fixes and expanding capabilities through new feature developments.
Since the previous analysis 7 days ago, there has been significant activity in the hatchet-dev/hatchet repository. Here is a detailed breakdown of the changes and their implications:
google.golang.org/api
from 0.181.0 to 0.182.0, reflecting continuous maintenance.github.com/getsentry/sentry-go
from 0.27.0 to 0.28.0, adding new features and performance improvements.github.com/jackc/pgx/v5
from 5.5.5 to 5.6.0, including performance optimizations and new features.The recent activity in the hatchet-dev/hatchet repository includes critical bug fixes, feature enhancements, and dependency updates that contribute to system stability and user experience. The development team remains responsive and proactive in addressing issues, which bodes well for the project's future stability and usability.
The hatchet-dev/hatchet repository has seen significant progress over the past 7 days with numerous bug fixes, feature enhancements, and dependency updates. The development team remains responsive and proactive in addressing issues, which bodes well for the project's future stability and usability.
This report captures only activity since the last analysis 7 days ago, focusing on new developments while providing context from previously closed issues where relevant.
This concludes the analysis of progress since the last report based on the most recent data snapshot provided.
Since the previous analysis conducted 7 days ago, there has been notable activity in the repository with various pull requests being opened and closed. Here's a detailed report on the changes:
PR #530: feat(webhooks): add webhook settings
PR #524: feat: expose retry count
PR #431: Webhooks Controller
PR #501: docs: format go snippet
PR #493: docs: Docker compose update
PR #537: chore(deps): bump google.golang.org/api from 0.181.0 to 0.182.0
PR #535: fix: set tx isolation level to serializable for step run assignments
PR #534: fix: old Listen endpoint not setting worker to active
PR #533: chore(deps): bump github.com/getsentry/sentry-go from 0.27.0 to 0.28.0
PR #532: fix: stringify value
PR #531: chore(deps): bump github.com/jackc/pgx/v5 from 5.5.5 to 5.6.0 -State Closed Created/Closed 2 days ago Description Updates PGX dependency to version 5.6.0
7.PR #529 revert scheduleToStart retries State Closed Created/Closed 5 days ago Description** Removes the 30-second retries of a step run which takes a long time to start
8.PR #527 fix new context with timeout State Closed Created/Closed 5 days ago Description** Passing a closed context to update worker state leading to assignment
9.PR #526 chore(deps): bump github.com/rs/zerolog from 1.32.0 to 1.33. State Closed Created/Closed 6 days ago Description Updates zerolog dependency to version
10.PR #518 feat delete tenant member ui State Closed Created/Closed 7 days ago Description** Owners can remove tenant members from their tenant via UI
11.PR #523 chore(deps): bump go.opentelemetry.io/otel/sdk from .26..27.Stateclosedcreatedclosed7daysagoDescriptionUpdatesOpenTelemetrySDKdependencytoversion127
12.PR#522choredepsbumpgoopentelemetryiootelexportersotlpotlptraceotlptracegrpcfrom126027Stateclosedcreatedclosed7daysagoDescriptionUpdatesOTLPtraceexporterdependencytoversion127
13.PR#521choredepsbumpgithubcomgoccygojsonfrom01020103Stateclosedcreatedclosed7daysagoDescriptionUpdatesgojsondependencytoversion0103
14.PR#520choredepsbumpgoopentelemetryiootelfrom12601270Stateclosedcreatedclosed7daysagoDescriptionUpdatesOpenTelemetrydependencytoversion127
15.PR#519choredepsbumpgoopentelemetryiootelexportersotlpotlptracefrom12601270Stateclosedcreatedclosed7daysagoDescriptionUpdatesOTLPtraceexporterdependencytoversion127
16.PR#517fixworkeractivebugStateclosedcreatedclosed7daysagoDescriptionFixesanedgecasebugwhereastreamisdisconnectedafteranewstreamisalreadycreated
17.PR#516choreremovedebuglineStateclosedcreatedclosed7daysagoDescriptionRemovesdebugline
18.PR#515ciworkflowspinpnpmondepsinstallStateclosedcreatedclosed8daysagoDescriptionFixescurrentCIaspnpmnowerrorswhenthelockfileversiondoesntexactlymatchthefullversionincludingpatches
19.PR#514fixworkerstreamstateStateclosedcreatedclosed8daysagoDescriptionFixesthecasewhereagrpcstreamisdisruptedbutheartbeatsarestillreceived
20.PR#512choreautomergeapprovePRonautomergeStateclosedcreatedclosed11daysagoDescriptionAutoapprovesrelevantdependabotPRsduetothenewrequiredreviewers
21.PR#511choredepsbumpgooglegolangorgapifrom01800101810Stateclosedcreatedclosed11daysagoDescriptionUpdatesGoogleAPIdependencytoversion0181
22.PR#510fixtypoindocsStateclosedcreatedclosed11daysagoDescriptionFixesatypointhedocumentation
23.PR#509fixthrowpropererrorwhenfunctionreturnsanonJSONobjectStateclosedcreatedclosed11daysagoDescriptionThrowsabetteruserfacingerrorifthereturnvalueofastepissenttotheengineasanonJSONobject
24.PR#508fixgrpcInvalidArgumenterrorsforbadlyformatteddataStateclosedcreatedclosed11daysagoDescriptionSendscommonvalidationerrorsontheGRPCserviceasInvalidArgumentinsteadofInternalerrorcodes
25.PR#507featmakesteprunreplaysmoreintuitiveStateclosedcreatedclosed11daysagoDescriptionModifiessteprunreplayssothatallsubsequentsteprunsintheDAGwillgetresetwhentheparentsteprunistreplayed
26.PR#503choredepsbumpgithubcomslackgoslackfrom01250130.StateClosed.CreatedClosed 11.days.Ago.Description UpdatesSlack.dependencyto.version
27.PR506fixminordocsissuewithonfailuresteppage State Closed CreatedClosed 12.days.Ago.Description Fixessmall.issue.with.on.failure.step.in.sidebar.notworking.in.docs*
28.PR505fixretrydeadlocksonsemaphoreupdates State Closed CreatedClosed 12.days.Ago.Description Deadlocks.are.currently.not.retried.for.worker.semaphore.leading.to.a.high.requeue.count*
29.PR504fixerrortextontimeout State Closed CreatedClosed 12.days.Ago.Description Fixesduplicated.errortextontimeout*
30.PR502fixlastheartbeat State Closed CreatedClosed 13.days.Ago.Description Renderingincorrect.timestamp.for.lastheartbeat.on.worker.view*
31.PR500choredepsbumpgooglegolangorggrpcfrom16321640.State.closed.created.closed14.days.Ago.Description.updates.GRPC.dependency.to.version164
32.PR499fixkeepaliveenforcementpolicy.State.closed.created.closed13.days.Ago.Description.Fixes.inconsistent.GRPC.Config.x.sdks.and.server.instance
33.PR498choretoolversionsaddtoolversionswithpnpm.State.closed.created.closed14.days.Ago.Description.Adds.a.toolversions.file.to.track.pnpmversions
34.PR497choreupdateversionsofprotocpnpm.State.closed.created.closed14.days.Ago.Description.Bumps.version.of.protoc.and.pnpm.used
35.PR495featrefreshtimeout.State.closed.created.closed12.days.Ago.Description.Timeouts.have.been.fixed.intervals.which.does.not.afford.flexibility.during.execution.Adds.support.to.increase.the.timeout.during.step.runtime.Fixes.HAT121.Type.of.change.Documentation.change.pure.documentation.change.New.feature.nonbreaking.change.which.adds.functionality.What.s.changed.add.Refresh.Timeout.methods.and.protos.
36.PR494choreprecommitlintwhitespace.State.closed.created.closed12.days.Ago.Description.Adds.a.whitespace.linter.to.the.precommit.hook.to.ensure.consistent.formatting.It.also.enables.linting.of.other.SQL.files.such.as.for.SQLc.query.Type.of.change.Chore.changes.which.are.not.directly.related.to.any.business.logic.What.s.changed.add.a.list.of.tasks.or.features.here...
37.PR492choredepsbumpgithubcomfatihcolorfrom116017.State.closed.created.closed15.days.Ago.Description.updates.color.dependency.to.version117
38.PR491featworkflowconfigurationview.State.closed.created.closed15.days.Ago.Description.adds.crons.and.schedule.timeout.config.to.workflow.settings.page.Type.of.change.New.feature.nonbreaking.change.which.adds.functionality...
39.PR490fixhardreloadontenantcreate.State.closed.created.closed15.days.Ago.Description.Fixes.onboarding.issue.for.new.teant.Type.of.change.Bug.fix.nonbreaking.change.which.fixes.an.issue...
40.PR489featworkflowruncancel.State.closed.created.closed14.days.Ago.Description.can.cancel.workflow.runs.via.api.and.dashboard.previously.only.individual.step.runs.could.be.cancelled.Type.of.change.New.feature.nonbreaking.change.which.adds.functionality.What.s.changed.add.workflow.run.cancel.endpoint.add.cancel.workflow.run.button.to.workflow.run.page.add.select.to.workflow.run.list.add.cancel.selected.button.to.workflow.run.list.page...
41.PR488choredepsbumpgooglegolangorgapifrom01790101800.State.closed.created.closed16.days.Ago.Description.updates.Google.API.dependency.to.version018...
42.use.consistent.logger.name...Repo.hatchet.devhatchet...state...closed...created...17.days.Ago...edited...14.days.Ago...merged.by.none...abelanger5...14.days.Ago...description...one.line....use.consistent.logger.name.at.client.go.file....fixes....issue....improve.unambiguity....please.delete.options....
43.fix.handle.nil.input.more.gracefully.Repo.hatchet.devhatchet.state.closed.created18.days.Ago.edited15.days.Ago.merged.by.noneabelanger515.days.agodescription.fixes.cases.where.crons.scheduled.workflows.and.child.workflows.have.nil.input.set.and.thus.concurrency.group.key.runs.are.not.created.fixes483.type.of.change.bug.fix.nonbreaking.change.which.fixes.an.issue...
44.feat.improve.reassign.and.timeout.behavior.and.visibility.Repo.hatchet.devhatchet.state.closed.created18.days.agoclosed14.days.agomerged.by.noneabelanger514.days.agodescription.improves.consistency.for.how.we.handle.reassignments.and.retires.type.of.change.documentation.change.pure.documentation.change.new.feature.nonbreaking.change.which.adds.functionality.breaking.change.fix.or.feature....
45.fix.remove.input.from.index.Repo.hatchet.devhatchet.state.closed.created18.days.agoclosed18.days.agomerged.by.noneabelanger518.days.agodescription.having.input.in.the.index.can.exceed.the.index.row.byte.limit.which.isn.t.easy.to.fix.this.removes.input.from.indexing.for.now.type.of.change.bug.fix.nonbreaking.change....
46.chore.deps.bump.google.golang.org.api.from01780101790.Repo.hatchet.devhatchet.state.closed.created19.days.agoclosed19.days.agomerged.by.none.github.actions.bot19.days.agodescription.updates.Google.API.dependency.to.version0179...
47.feat.events.view.for.step.runs.Repo.hatchet.devhatchet.state.closed.created19.days.agoclosed19.days.agomerged.by.noneabelanger519.days.agodescription.creates.an.events.view.for.step.runs.img.width1344.alt.image.srchttps.github.comhatchet.devhatchet.assets25448214131447533c8e4b06807eeb6d68bca9bc.type.of.change.new.feature.nonbreaking....
48.add.indexes.Repo.hatchet.devhatchet.state.closed.created19.days.agoclosed19.days.agomerged.by.noneabelanger519.days.agodescription.adds.discussed.indexes.from.this.threadhttps.github.com.prisma.prisma.issue.comment1719714522.i.manually.changed.the.generated.sql.to.use.concurrently.fixes.issue.type.of.change.bug.fix.nonbreaking....
49.feat.worker.semaphore.slot.resolver.Repo.hatchet.devhatchet.state.closed.created19.days.edited14.days.agoclosed14.days.agomerged.by.noneabelanger514.days.agodescription.adds.an.interval.based.query.to.ensure.semaphore.values.are.accurate.depends.on476.type.of.change.bug.fix.nonbreaking....
50.feat.client.releasable.slots.Repo.hatchet.devhatchet.state.closed.created19.days.edited14.days.agoclosed14.days.agomerged.by.noneabelanger514.days.agodescription.client.sdks.can.release.a.slot.manually.after.fixes.HAT176.type.of.change.documentation.change.pure.documentation....
Overall, there has been substantial progress with numerous bug fixes, dependency updates, and new features aimed at enhancing functionality, reliability, and user experience within Hatchet's application system.
This pull request introduces a new feature to the Hatchet project, specifically adding a webhook settings page. The changes span across both backend and frontend components to support this new functionality.
API Contracts:
api-contracts/openapi/components/schemas/tenant.yaml
: Added webhookSecret
field to the Tenant schema.api/v1/server/oas/gen/openapi.gen.go
: Generated code changes reflecting the addition of the webhookSecret
field.api/v1/server/oas/transformers/tenant.go
: Updated transformer to include webhookSecret
.Client Library:
pkg/client/rest/gen.go
: Updated client library to include the new webhookSecret
field.API Integration:
frontend/app/src/lib/api/generated/data-contracts.ts
: Added webhookSecret
field to the Tenant interface.UI Components:
frontend/app/src/pages/main/index.tsx
: Added a new sidebar button for "Webhooks".frontend/app/src/pages/main/tenant-settings/webhooks/index.tsx
: New page for webhook settings, displaying the webhook secret and providing a copy-to-clipboard functionality.frontend/app/src/router.tsx
: Added routing for the new webhook settings page.webhookSecret
field is straightforward and well-integrated into existing schemas and transformers.openapi.gen.go
and client library updates are consistent with the new schema changes.webhookSecret
is handled securely both in transit and at rest. Consider encrypting this field in the database if not already done.This pull request introduces a valuable feature to manage webhook settings within the Hatchet project. The changes are well-implemented, maintaining consistency with existing code patterns and ensuring a smooth user experience. With some additional considerations for security and testing, this feature will be a solid addition to the project.
go.mod
file is critical for managing the project's dependencies and Go module system. It lists both direct and indirect dependencies, ensuring that all necessary packages are included for the project to build and run correctly.v1.17.0
, v2.5.0
) helps in understanding the nature of updates (patches, minor updates, major updates).Badge
, Popover
, and Tooltip
from a component library, promoting reusability and consistency in the UI.The analyzed files show a well-maintained project with active development and attention to detail in both backend (Go) and frontend (TypeScript) components. Key areas such as dependency management, transaction handling, error logging, UI rendering, API documentation, and service dispatching are being actively improved. Recommendations focus on maintaining best practices in code organization, performance optimization, testing, and monitoring.
Severity: High (3/3)
Rationale
The new webhook settings feature introduced in PR #530 lacks any associated unit tests or integration tests, which is critical for ensuring the reliability and security of this new functionality.
Next Steps
Severity: Medium (2/3)
Rationale
There appears to be ongoing disagreement regarding the implementation details of certain features, as evidenced by the prolonged open state and multiple edits of PR #431 (Webhooks Controller).
Next Steps
Severity: Medium (2/3)
Rationale
There have been multiple rewrites and frequent updates to key files such as internal/repository/prisma/step_run.go
and internal/services/dispatcher/server.go
, indicating potential instability or unclear requirements.
step_run.go
(e.g., fixes related to transaction isolation levels and worker activity) and server.go
(e.g., dispatcher service improvements).Next Steps
Severity: Low (1/3)
Rationale
Several non-critical PRs, such as documentation updates (#501) and Docker compose updates (#493), have been left open for an extended period without updates. While not immediately harmful, this could indicate inefficiencies in the review process.
Next Steps