Skip to content

ND scans: rebased on main, with finalization-crash and pipe_planner fixes - #930

Open
alongd wants to merge 5 commits into
mainfrom
nd_scans_rebased
Open

ND scans: rebased on main, with finalization-crash and pipe_planner fixes#930
alongd wants to merge 5 commits into
mainfrom
nd_scans_rebased

Conversation

@alongd

@alongd alongd commented Jul 28, 2026

Copy link
Copy Markdown
Member

Summary

This PR supersedes/complements #855. It is #855's four commits (Added the ND Scan module, Added directed scan to xTB job adapter, Added ND scan functionalities to plotter, Adaptations to Scheduler) rebased onto current main (263 commits of drift since #855 was opened), plus two additional fixes:

#855 should not be force-pushed or rebased in place — its branch (nd_scans) is currently checked out in a live, long-running working session with uncommitted local patches, and rewriting it there would destroy that work. This PR exists so the rebased/fixed history can be reviewed and landed without touching nd_scans.

Detailed review findings (conflict-resolution notes, two latent bugs found on main, the finalization-crash fix, and several design questions worth discussing) are posted as a comment on #855.

Closes/relates to #855.

Test plan

alongd added 5 commits July 27, 2026 23:47
Contains pure scan-surface helpers
Scheduler.__init__ calls run_scan_jobs() from its per-species restart loop,
and run_scan_jobs dereferences self.pipe_planner via try_pipe_rotor_scans_1d().
The planner was constructed after that loop, so restarting a project with
pending 1D rotor scans raised:
    AttributeError: 'Scheduler' object has no attribute 'pipe_planner'

Construction now happens before the restart loop. Both PipeCoordinator and
PipePlanner only store references in __init__, so early construction is safe.

This is a latent bug on main (main:464/487/511 call run_scan_jobs; main:521
assigns pipe_planner); it was surfaced by the ND scan functional tests, which
are the first tests to exercise that construction path.
Comment thread arc/scheduler_test.py


import arc.parser.parser as parser
import arc.scheduler as sched_module
@codecov

codecov Bot commented Jul 28, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 64.18%. Comparing base (10c8e96) to head (f8ebb3b).
⚠️ Report is 15 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #930      +/-   ##
==========================================
+ Coverage   63.40%   64.18%   +0.78%     
==========================================
  Files         114      115       +1     
  Lines       38342    39158     +816     
  Branches    10030    10183     +153     
==========================================
+ Hits        24309    25135     +826     
+ Misses      11116    11028      -88     
- Partials     2917     2995      +78     
Flag Coverage Δ
functionaltests 64.18% <ø> (+0.78%) ⬆️
unittests 64.18% <ø> (+0.78%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants