Skip to content

feat: propagate schedule time through DAG run lifecycle#1763

Merged
yottahmd merged 6 commits intomainfrom
schedule-time
Mar 13, 2026
Merged

feat: propagate schedule time through DAG run lifecycle#1763
yottahmd merged 6 commits intomainfrom
schedule-time

Conversation

@yottahmd
Copy link
Copy Markdown
Collaborator

@yottahmd yottahmd commented Mar 13, 2026

Summary

  • thread scheduled time through the scheduler, CLI/runtime status, persistence, and API responses
  • preserve schedule time in DAG run detail/indexed reads and surface it across the web UI
  • add regression tests for the backend transformers/store paths and UI rendering/sorting

Testing

  • go test ./internal/service/frontend/api/v1 ./internal/persis/filedagrun
  • cd ui && pnpm exec vitest run src/features/dag-runs/components/dag-run-list/tests/DAGRunGroupedView.test.tsx src/features/dag-runs/components/dag-run-list/tests/DAGRunTable.test.tsx src/features/dags/components/dag-details/tests/DAGStatusOverview.test.tsx src/lib/tests/dagRunTiming.test.ts
  • cd ui && pnpm typecheck (currently fails on unrelated pre-existing issues in src/lib/tests/parseParams.test.ts and docs/react-arborist files)

Summary by CodeRabbit

  • New Features
    • Added support for tracking scheduled run timestamps. Users can now specify when a DAG run was scheduled using the --schedule-time flag in the start and enqueue commands. Scheduled times are displayed in the UI alongside queued, started, and finished times for better visibility into DAG run lifecycle.

Thread the scheduled time from the tick planner dispatch through the CLI
flags, agent, runtime status, persistence layer, and REST API so that
each DAG run records when it was originally scheduled to execute.
- Extract parseScheduleTimeParam() in helper.go, used by start and enqueue
- Use stringutil.FormatTime() in dag_executor instead of manual formatting
- Fix agent Status() to avoid overwriting ScheduleTime with empty retryTarget value
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Mar 13, 2026

Important

Review skipped

Auto incremental reviews are disabled on this repository.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: a8084b67-02a6-4624-8f80-423a41ce7bce

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

The PR adds schedule time tracking throughout the system by introducing a ScheduleTime field (RFC 3339 format) to data models, CLI commands, runtime execution, persistence, scheduler integration, and UI components. The field is threaded from scheduler dispatch through DAG execution, storage, and API responses.

Changes

Cohort / File(s) Summary
API & Data Models
api/v1/api.gen.go, api/v1/api.yaml, internal/core/exec/runstatus.go
Added ScheduleTime field to DAGRunDetails, DAGRunSummary, Status, and DAGRunStatus structs; updated OpenAPI schema to include new optional scheduleTime field in RFC 3339 format.
CLI Command Layer
internal/cmd/enqueue.go, internal/cmd/start.go, internal/cmd/helper.go, internal/cmd/exec.go
Added scheduleTimeFlag and parseScheduleTimeParam helper; updated enqueueDAGRun, tryExecuteDAG, executeDAGRun, and handleSubDAGRun function signatures to accept scheduleTime parameter; threaded scheduleTime through execution paths and agent options initialization.
Persistence Layer
internal/persis/filedagrun/dagrun.go, internal/persis/filedagrun/dagrunindex/dagrunindex.go, internal/persis/filedagrun/dataroot.go, internal/persis/filedagrun/store.go, internal/persis/filedagrun/.../*_test.go
Added ScheduleTime field to DAGRunSummary and Entry structs; bumped IndexVersion from 3 to 4; propagated ScheduleTime through serialization/deserialization (writeIndex, protoToEntries, summaryFromIndexEntry); updated tests to validate field mapping across storage layers.
Runtime & Status Transformation
internal/runtime/agent/agent.go, internal/runtime/subcmd.go, internal/runtime/transform/status.go
Added ScheduleTime field to Options and StartOptions/EnqueueOptions; added WithScheduleTime functional option for StatusOption; threaded scheduleTime through agent initialization and flag construction for CLI subcommands.
Scheduler Integration
internal/service/scheduler/scheduler.go, internal/service/scheduler/dag_executor.go, internal/service/scheduler/queue_processor.go, internal/service/scheduler/tick_planner.go, internal/service/scheduler/*_test.go
Extended DispatchFunc signature to include scheduleTime time.Time parameter; updated HandleJob and ExecuteDAG methods to accept and forward scheduleTime; modified TickPlanner.DispatchRun to pass PlannedRun.ScheduledTime to dispatcher; updated all test callbacks to match new signatures.
API Frontend Transformation
internal/service/frontend/api/v1/transformer.go, internal/service/frontend/api/v1/transformer_test.go
Mapped ScheduleTime and QueuedAt from exec.DAGRunStatus to API response models (DAGRunSummary, DAGRunDetails); added unit tests to validate schedule time and queued time are correctly transformed.
Protocol Buffer Schema
proto/index/v1/index.proto
Added string schedule_time = 17 field to DAGRunIndexEntry message to support serialization of schedule metadata.
UI Components & Display
ui/src/features/cockpit/components/KanbanCard.tsx, ui/src/features/dag-runs/components/dag-run-list/DAGRunGroupedView.tsx, ui/src/features/dag-runs/components/dag-run-list/DAGRunTable.tsx, ui/src/features/dags/components/dag-details/DAGStatusOverview.tsx, ui/src/features/queues/components/QueueCard.tsx
Added display of scheduleTime field in run cards and tables when available; updated sorting to prefer scheduleTime over queuedAt; added conditional "Scheduled At" column in table view with timezone info; updated status overview to show scheduling timestamp alongside queued/started times.
UI Utilities & Tests
ui/src/lib/dagRunTiming.ts, ui/src/lib/__tests__/dagRunTiming.test.ts, ui/src/features/dag-runs/components/dag-run-list/__tests__/DAGRunGroupedView.test.tsx, ui/src/features/dag-runs/components/dag-run-list/__tests__/DAGRunTable.test.tsx, ui/src/features/dags/components/dag-details/__tests__/DAGStatusOverview.test.tsx
Added getDAGRunScheduleSortValue utility function to prioritize scheduleTime over queuedAt for sorting; added comprehensive unit tests for component rendering of schedule time with and without values.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~50 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 34.62% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'feat: propagate schedule time through DAG run lifecycle' clearly and accurately summarizes the main change: adding schedule time propagation across the entire DAG run execution flow.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch schedule-time
📝 Coding Plan
  • Generate coding plan for human review comments

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 6

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
internal/service/scheduler/tick_planner.go (1)

775-781: ⚠️ Potential issue | 🟠 Major

restart_schedule still drops the scheduled fire time.

run.ScheduledTime is only forwarded in the ScheduleTypeStart branch. ScheduleTypeRestart still calls Restart(ctx, dag) with no way to carry that timestamp, and DAGExecutor.Restart() currently starts a fresh run without setting ScheduleTime. Any DAG run created by restart_schedule will therefore still persist an empty schedule time. Please thread the value through RestartFunc/RestartOptions too.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@internal/service/scheduler/tick_planner.go` around lines 775 - 781, The
Restart path is dropping run.ScheduledTime: when ScheduleTypeRestart you call
tp.cfg.Restart(ctx, run.DAG) but do not pass run.ScheduledTime through, so
DAGExecutor.Restart() creates a fresh run with no ScheduleTime; update the
Restart API to accept RestartOptions (or a RestartFunc signature) that includes
ScheduledTime, thread run.ScheduledTime from the ScheduleTypeRestart branch into
tp.cfg.Restart as an option, and ensure the implementation in
DAGExecutor.Restart (and any RestartFunc) applies that ScheduledTime to the
newly created DAG run before persisting it.
internal/cmd/start.go (1)

223-229: ⚠️ Potential issue | 🟠 Major

Coordinator handoff ignores the new scheduleTime input.

tryExecuteDAG() now accepts scheduleTime, but the workerID == "local" coordinator branch still calls dispatchToCoordinatorAndWait() without it. In distributed mode, any start caller that sets --schedule-time will silently lose the value before the worker creates the run, so the recorded schedule time now depends on execution mode. Please propagate it through the coordinator task/start path as well.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@internal/cmd/start.go` around lines 223 - 229, The coordinator dispatch
branch in tryExecuteDAG ignores the new scheduleTime param; update the call to
dispatchToCoordinatorAndWait to pass scheduleTime through (i.e., change
dispatchToCoordinatorAndWait(ctx, dag, dagRunID, coordinatorCli) to include
scheduleTime) and update dispatchToCoordinatorAndWait’s signature and any
callers (and the coordinator task/start path) to accept and forward scheduleTime
so the worker-created run preserves the provided schedule time; locate
tryExecuteDAG, dispatchToCoordinatorAndWait, NewCoordinatorClient and the
coordinator task/start handler to propagate the new parameter end-to-end.
🧹 Nitpick comments (2)
internal/service/scheduler/tick_planner_test.go (1)

1257-1273: Tighten this dispatch test to assert ScheduledTime is forwarded.

Lines 1259-1261 ignore the new callback argument, and Line 1267 builds a PlannedRun without ScheduledTime. As written, this still passes if DispatchRun() drops or zeroes the schedule timestamp.

Suggested test tightening
 func TestTickPlanner_DispatchRunStart(t *testing.T) {
 	t.Parallel()
 
-	var dispatched bool
+	var (
+		dispatched      bool
+		gotScheduleTime time.Time
+	)
 	tp := NewTickPlanner(TickPlannerConfig{
-		Dispatch: func(_ context.Context, _ *core.DAG, _ string, _ core.TriggerType, _ time.Time) error {
+		Dispatch: func(_ context.Context, _ *core.DAG, _ string, _ core.TriggerType, scheduleTime time.Time) error {
 			dispatched = true
+			gotScheduleTime = scheduleTime
 			return nil
 		},
 		Events: make(chan DAGChangeEvent, 1),
 	})
 	require.NoError(t, tp.Init(context.Background(), nil))
 
+	scheduledTime := time.Date(2026, 2, 7, 12, 0, 0, 0, time.UTC)
 	tp.DispatchRun(context.Background(), PlannedRun{
-		DAG:          &core.DAG{Name: "start-dag"},
-		RunID:        "run-1",
-		ScheduleType: ScheduleTypeStart,
-		TriggerType:  core.TriggerTypeScheduler,
+		DAG:           &core.DAG{Name: "start-dag"},
+		RunID:         "run-1",
+		ScheduledTime: scheduledTime,
+		ScheduleType:  ScheduleTypeStart,
+		TriggerType:   core.TriggerTypeScheduler,
 	})
 	assert.True(t, dispatched, "Dispatch callback should be invoked for ScheduleTypeStart")
+	assert.Equal(t, scheduledTime, gotScheduleTime, "Dispatch callback should receive the scheduled time")
 }
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@internal/service/scheduler/tick_planner_test.go` around lines 1257 - 1273,
The test currently ignores the Dispatch callback's ScheduledTime parameter and
builds a PlannedRun without a ScheduledTime, so it won't detect if DispatchRun
drops or zeroes the timestamp; update the test for
NewTickPlanner/TickPlannerConfig to capture the ScheduledTime passed into the
Dispatch callback (the Dispatch func in TickPlannerConfig) and assert it equals
the ScheduledTime set on the PlannedRun you pass to tp.DispatchRun(...);
specifically, set a non-zero ScheduledTime on the PlannedRun you create and have
the Dispatch stub store the received scheduledTime argument so the test asserts
that stored value matches the PlannedRun.ScheduledTime after calling
tp.DispatchRun.
ui/src/features/dag-runs/components/dag-run-list/DAGRunTable.tsx (1)

287-293: Add explicit wrapping classes for new schedule-time fields.

The newly added schedule text in card/table views should include overflow-safe wrapping classes.

Suggested patch
-                <div className="flex justify-between items-center">
-                  <div>
+                <div className="flex justify-between items-center">
+                  <div className="whitespace-normal break-words">
                     <span className="text-muted-foreground">Scheduled: </span>
                     {dagRun.scheduleTime}
                   </div>
                 </div>
@@
-                <TableCell className="py-1 px-2 text-left">
+                <TableCell className="py-1 px-2 text-left whitespace-normal break-words">
                   {dagRun.scheduleTime || '-'}
                 </TableCell>

As per coding guidelines "Always handle long text in tables and lists with whitespace-normal break-words to prevent layout overflow".

Also applies to: 419-421

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@ui/src/features/dag-runs/components/dag-run-list/DAGRunTable.tsx` around
lines 287 - 293, The scheduleTime text in DAGRunTable (the JSX rendering
dagRun.scheduleTime) lacks overflow-safe classes; update the element that prints
dagRun.scheduleTime (and the other similar schedule display occurrences) to
include explicit wrapping classes such as "whitespace-normal break-words" (e.g.,
add these classes to the containing div or span that renders
dagRun.scheduleTime) so long schedule strings won't overflow table/card layouts.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@internal/runtime/agent/agent.go`:
- Around line 1073-1085: The early-return branch in Status() (when a.runner ==
nil) omits adding transform.WithScheduleTime, so fallback status can lose
schedule metadata; update that branch to mirror the main-path logic: if
a.retryTarget != nil include transform.WithQueuedAt(a.retryTarget.QueuedAt),
transform.WithCreatedAt(a.retryTarget.CreatedAt) and, if
a.retryTarget.ScheduleTime != "" also add
transform.WithScheduleTime(a.retryTarget.ScheduleTime), otherwise if
a.scheduleTime != "" add transform.WithScheduleTime(a.scheduleTime); keep using
the same transform options assembly used in the non-nil runner path.

In
`@ui/src/features/dag-runs/components/dag-run-list/__tests__/DAGRunGroupedView.test.tsx`:
- Around line 1-6: This test file is missing the GPL v3 license header; add the
required header to the top of the file (the one containing imports and
references to DAGRunGroupedView, Status, StatusLabel, TriggerType) by running
the repository tool that manages headers (run "make addlicense") or by inserting
the standard GPL v3 header used across the project so the file matches the
project's license header conventions.

In
`@ui/src/features/dag-runs/components/dag-run-list/__tests__/DAGRunTable.test.tsx`:
- Around line 1-8: This test file is missing the required GPL v3 license header;
add the repository's standard GPL v3 header block at the very top of the
DAGRunTable.test.tsx file (before any imports) following the same format used
across other .ts/.tsx files, or run the repository helper (make addlicense) to
apply it automatically, ensuring the header remains intact above the existing
imports and tests referencing DAGRunTable and imports like Status/ConfigContext.

In
`@ui/src/features/dags/components/dag-details/__tests__/DAGStatusOverview.test.tsx`:
- Around line 1-6: Add the GPL v3 license header to this source file by
inserting the standard project header at the very top of the file (above all
imports); you can run the repo tooling to do this automatically (run make
addlicense) or manually paste the project's GPL v3 header used across other
files, ensuring it appears before the imports and applies to this test file that
contains imports like DAGStatusOverview, Status, StatusLabel, dayjs and testing
utilities.

In `@ui/src/lib/__tests__/dagRunTiming.test.ts`:
- Line 1: This test file is missing the repository-required GPL v3 license
header; add the standard GPL v3 header to the top of
ui/src/lib/__tests__/dagRunTiming.test.ts (the file that currently only imports
"describe, expect, it")—best fix is to run the repo tool to apply headers (run
"make addlicense") or manually prepend the canonical GPL v3 header used across
the repo to the top of the file so the test source includes the required license
block.

In `@ui/src/lib/dagRunTiming.ts`:
- Line 1: The new TypeScript file ui/src/lib/dagRunTiming.ts is missing the
required GPL v3 license header; add the project-standard GPL v3 header at the
very top of the file (above the existing import dayjs from './dayjs') following
the repository's header format, then run the repository tool to ensure
consistency (e.g., make addlicense) or paste the exact header used across other
.ts/.tsx/.js files.

---

Outside diff comments:
In `@internal/cmd/start.go`:
- Around line 223-229: The coordinator dispatch branch in tryExecuteDAG ignores
the new scheduleTime param; update the call to dispatchToCoordinatorAndWait to
pass scheduleTime through (i.e., change dispatchToCoordinatorAndWait(ctx, dag,
dagRunID, coordinatorCli) to include scheduleTime) and update
dispatchToCoordinatorAndWait’s signature and any callers (and the coordinator
task/start path) to accept and forward scheduleTime so the worker-created run
preserves the provided schedule time; locate tryExecuteDAG,
dispatchToCoordinatorAndWait, NewCoordinatorClient and the coordinator
task/start handler to propagate the new parameter end-to-end.

In `@internal/service/scheduler/tick_planner.go`:
- Around line 775-781: The Restart path is dropping run.ScheduledTime: when
ScheduleTypeRestart you call tp.cfg.Restart(ctx, run.DAG) but do not pass
run.ScheduledTime through, so DAGExecutor.Restart() creates a fresh run with no
ScheduleTime; update the Restart API to accept RestartOptions (or a RestartFunc
signature) that includes ScheduledTime, thread run.ScheduledTime from the
ScheduleTypeRestart branch into tp.cfg.Restart as an option, and ensure the
implementation in DAGExecutor.Restart (and any RestartFunc) applies that
ScheduledTime to the newly created DAG run before persisting it.

---

Nitpick comments:
In `@internal/service/scheduler/tick_planner_test.go`:
- Around line 1257-1273: The test currently ignores the Dispatch callback's
ScheduledTime parameter and builds a PlannedRun without a ScheduledTime, so it
won't detect if DispatchRun drops or zeroes the timestamp; update the test for
NewTickPlanner/TickPlannerConfig to capture the ScheduledTime passed into the
Dispatch callback (the Dispatch func in TickPlannerConfig) and assert it equals
the ScheduledTime set on the PlannedRun you pass to tp.DispatchRun(...);
specifically, set a non-zero ScheduledTime on the PlannedRun you create and have
the Dispatch stub store the received scheduledTime argument so the test asserts
that stored value matches the PlannedRun.ScheduledTime after calling
tp.DispatchRun.

In `@ui/src/features/dag-runs/components/dag-run-list/DAGRunTable.tsx`:
- Around line 287-293: The scheduleTime text in DAGRunTable (the JSX rendering
dagRun.scheduleTime) lacks overflow-safe classes; update the element that prints
dagRun.scheduleTime (and the other similar schedule display occurrences) to
include explicit wrapping classes such as "whitespace-normal break-words" (e.g.,
add these classes to the containing div or span that renders
dagRun.scheduleTime) so long schedule strings won't overflow table/card layouts.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 9870ce2b-8e63-4bbb-8fdf-7b3972482b5a

📥 Commits

Reviewing files that changed from the base of the PR and between 8bcf853 and 327d587.

⛔ Files ignored due to path filters (3)
  • proto/coordinator/v1/coordinator.pb.go is excluded by !**/*.pb.go
  • proto/coordinator/v1/coordinator_grpc.pb.go is excluded by !**/*.pb.go
  • proto/index/v1/index.pb.go is excluded by !**/*.pb.go
📒 Files selected for processing (37)
  • api/v1/api.gen.go
  • api/v1/api.yaml
  • internal/cmd/enqueue.go
  • internal/cmd/exec.go
  • internal/cmd/helper.go
  • internal/cmd/start.go
  • internal/core/exec/runstatus.go
  • internal/persis/filedagrun/dagrun.go
  • internal/persis/filedagrun/dagrunindex/dagrunindex.go
  • internal/persis/filedagrun/dataroot.go
  • internal/persis/filedagrun/dataroot_test.go
  • internal/persis/filedagrun/store.go
  • internal/persis/filedagrun/store_test.go
  • internal/runtime/agent/agent.go
  • internal/runtime/subcmd.go
  • internal/runtime/transform/status.go
  • internal/service/frontend/api/v1/transformer.go
  • internal/service/frontend/api/v1/transformer_test.go
  • internal/service/scheduler/dag_executor.go
  • internal/service/scheduler/dag_executor_test.go
  • internal/service/scheduler/queue_processor.go
  • internal/service/scheduler/scheduler.go
  • internal/service/scheduler/scheduler_test.go
  • internal/service/scheduler/tick_planner.go
  • internal/service/scheduler/tick_planner_test.go
  • proto/index/v1/index.proto
  • ui/src/api/v1/schema.ts
  • ui/src/features/cockpit/components/KanbanCard.tsx
  • ui/src/features/dag-runs/components/dag-run-list/DAGRunGroupedView.tsx
  • ui/src/features/dag-runs/components/dag-run-list/DAGRunTable.tsx
  • ui/src/features/dag-runs/components/dag-run-list/__tests__/DAGRunGroupedView.test.tsx
  • ui/src/features/dag-runs/components/dag-run-list/__tests__/DAGRunTable.test.tsx
  • ui/src/features/dags/components/dag-details/DAGStatusOverview.tsx
  • ui/src/features/dags/components/dag-details/__tests__/DAGStatusOverview.test.tsx
  • ui/src/features/queues/components/QueueCard.tsx
  • ui/src/lib/__tests__/dagRunTiming.test.ts
  • ui/src/lib/dagRunTiming.ts

Comment thread internal/runtime/agent/agent.go
Comment thread ui/src/lib/__tests__/dagRunTiming.test.ts
Comment thread ui/src/lib/dagRunTiming.ts
@yottahmd yottahmd merged commit 200bd7a into main Mar 13, 2026
6 checks passed
@yottahmd yottahmd deleted the schedule-time branch March 13, 2026 10:48
@codecov
Copy link
Copy Markdown

codecov Bot commented Mar 13, 2026

Codecov Report

❌ Patch coverage is 49.64029% with 70 lines in your changes missing coverage. Please review.
✅ Project coverage is 68.39%. Comparing base (11e66a6) to head (fd4852d).
⚠️ Report is 2 commits behind head on main.

Files with missing lines Patch % Lines
internal/cmd/start.go 5.26% 12 Missing and 6 partials ⚠️
internal/runtime/agent/agent.go 10.52% 15 Missing and 2 partials ⚠️
internal/service/scheduler/dag_executor.go 65.00% 6 Missing and 1 partial ⚠️
internal/runtime/subcmd.go 45.45% 4 Missing and 2 partials ⚠️
internal/cmd/enqueue.go 28.57% 2 Missing and 3 partials ⚠️
internal/cmd/restart.go 37.50% 1 Missing and 4 partials ⚠️
internal/cmd/helper.go 50.00% 2 Missing and 2 partials ⚠️
internal/service/scheduler/scheduler.go 25.00% 2 Missing and 1 partial ⚠️
internal/service/coordinator/handler.go 83.33% 1 Missing and 1 partial ⚠️
internal/service/scheduler/tick_planner.go 50.00% 0 Missing and 2 partials ⚠️
... and 1 more
Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##             main    #1763      +/-   ##
==========================================
- Coverage   69.32%   68.39%   -0.94%     
==========================================
  Files         402      402              
  Lines       45352    45467     +115     
==========================================
- Hits        31441    31095     -346     
- Misses      11279    11325      +46     
- Partials     2632     3047     +415     
Files with missing lines Coverage Δ
internal/cmd/exec.go 64.53% <100.00%> (ø)
internal/core/exec/runstatus.go 80.00% <ø> (-16.67%) ⬇️
internal/persis/filedagrun/dagrun.go 43.97% <ø> (-19.38%) ⬇️
...ernal/persis/filedagrun/dagrunindex/dagrunindex.go 72.34% <100.00%> (-20.10%) ⬇️
internal/persis/filedagrun/dataroot.go 69.88% <100.00%> (-1.63%) ⬇️
internal/persis/filedagrun/store.go 61.41% <100.00%> (-13.75%) ⬇️
internal/runtime/executor/task.go 80.00% <100.00%> (-4.22%) ⬇️
internal/service/scheduler/queue_processor.go 67.38% <100.00%> (ø)
internal/service/worker/remote_handler.go 82.48% <100.00%> (-4.88%) ⬇️
internal/runtime/transform/status.go 79.16% <66.66%> (-13.94%) ⬇️
... and 10 more

... and 7 files with indirect coverage changes


Continue to review full report in Codecov by Sentry.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 8bcf853...fd4852d. Read the comment docs.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant