nx
Nx
GitHub
Nx
Workspace
GitHub
CI Pipeline Executions
Current execution
Succeeded
nxc-4818
Runs and Agents
Timeline
Beta
Configuration
Self-Healing CI
Project Graph
Circular Dependencies
Enterprise
Resource Usage
Analysis
Conformance
Enterprise
Runs
Current run
Succeeded
Tasks
Resource Usage
Insights
Compare tasks
Analytics
Sign in
Toggle sidebar
feat(core): report abandoned, revisited and resumed orchestrated migrate runs and their dispense ordinals An orchestrated migrate run spans many short-lived nx processes driven by an agent that can stop calling nx at any point. Nothing ran at the end to say the run was abandoned, so abandonment only showed up as a missing migrate_orchestrator_complete. The classic loop never had this gap: one process emits both its start and its end. A run id dimension was the original plan and was dropped: the GA property has no BigQuery export, so an undeclared parameter is unreadable, and GA advises against declaring unique ids as dimensions (past ~500 distinct values a day they collapse into an "(other)" row). The signals below need no new dimension and no Rust change. - migrate_orchestrator_abandoned: the spawn-path parent reads run.json after the agent exits; a run still active at that point is reported with the same tallies complete carries (applied, skipped, dispense count) plus the agent id. Exact per-run abandonment for user-initiated runs. - migrate_orchestrator_existing_run: every existing-run report, whether init printed it for the agent or handed it to the master session. On the master path it precedes the resume when the user continues; on the agent path it is the only trace of a revisit. - migrate_orchestrator_resume: every resume reports the same tallies, which the start watermark hid until now. The state cannot tell a crashed session from a re-invocation, so both count. A bare --run-id reconcile is not a resume: nothing in run state marks the first call after a lost session. - migrate_orchestrator_step_dispensed: once per durable dispense transition, carrying the run-wide dispense ordinal on task_count. Counting it per ordinal is the survival curve for agent-initiated runs, which have no parent process to observe them. - migrate_orchestrator_dispense gains the same ordinal. It repeats on every reconcile until the step moves, so it feeds the action mix per position, not the curve. runTallies() in state-machine.ts derives the event tallies from tallySteps() so the completion event and the new events agree with the completion summary on one step classification; adopted steps count as completed. Classic single-process events are unchanged.
nx-cloud record -- nx format:check
⌘K
Succeeded
nx-cloud record -- nx format:check
Click to copy
Linux
4 CPU cores
aa942b41
36989
GitHub
Nx
Workspace