Skip to content

Refactor introduce runners - #205

Open
mschwoer wants to merge 19 commits into
path_refactoring_4from
refactor_introduce_runners
Open

Refactor introduce runners#205
mschwoer wants to merge 19 commits into
path_refactoring_4from
refactor_introduce_runners

Conversation

@mschwoer

@mschwoer mschwoer commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

Add spec for preparing for arbitrary runners and first slice.

mschwoer and others added 19 commits September 2, 2026 18:33
---
# Conversation that produced these changes
---

## User prompt

"A new job handler will be added soon, which will execute a  command via SSH. This can target both windows and linux machines. Those can have backup,output,settings paths mapped differently (linux: mount, windows: drive letter or UNC). Help me design an upfront refactoring.
Goal: one deployment runs jobs on several named runners, including hosts whose OS and
path flavour differ from the Airflow worker's. Prepares the seam for an SSH job handler.
Keep it as simple as possible."

## Clarifying round 1

Q: How should `Settings.job_engine` become a runner reference in the DB?
  - Rename to `runner`, with migration (Recommended)  <-- chosen
  - Keep DB field `job_engine`, reinterpret as runner name
  - Rename to `runner` via mongoengine `db_field`

Q: `_check_content` rejects every `\` and `:`, so no Windows path can be exported today. Include the validation change in this refactoring?
  - Yes, validate relative parts only (Recommended)  <-- chosen
  - No, leave validation for the SSH handler work

Q: The docker runner today exports cluster-view paths and binds host paths onto them. Keep that, or make the docker runner export docker-host paths?
  - Keep: docker runner uses the default view (Recommended)  <-- chosen
  - Change: export host paths, bind same path

Q: When a yaml has no `runners:` block, what should happen?
  - Fail at import with a clear error (Recommended)  <-- chosen
  - Implicit default runners `slurm`, `docker`, `file_based`

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
---
# Conversation that produced these changes
---

## User prompt

"so if we introduced a absolute_backup_base_path (maybe next to mounts_path), we could move all absolute_paths to the runners?"

"yes, update the spec and commit with conversation"

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
---
# Conversation that produced these changes
---

## User prompt

""locations" now is mount-specific, right? move backup, etc under a "mounts" level, keep only "general" as is"

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
---
# Conversation that produced these changes
---

## User prompt

"make runners a list, move the current key (e.g. "win_box") to a "name" attribute"

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
---
# Conversation that produced these changes
---

## User prompt

"no defaults for os and ssh_connection_id_prefix"

""rejected" ? or "ignored"?"

"ok, ignored, update the spec and commit with conversation"

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
… in the spec

---
# Conversation that produced these changes
---

## User prompt

"add to the spec why conncetions should stay in airflow (this should be a comment or in the docs). Also, document the reason for ssh_connection_id_prefix instead of list"

"locations.slurm: is there any validation planned ?"

"yes, add it, update the spec and commit with conversation"

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
---
# Conversation that produced these changes
---

## User prompt

"runners[i].locations clashes with the toplevel key .. suggestions?"

"I prefer having backup_absolute_path with the other paths .. go with 1.1"

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…op-level, MOUNTS_PATH from env

---
# Conversation that produced these changes
---

## User prompt

"I made changes to the SPEC.md, adapt if needed"

"where is mounts_base_path used?"

"but MOUNTS_PATH is in the environmental variables? why can't it be read?"

""the Docker daemon rejects relative bind sources", why would this be the case?"

"this is a bout the msqc container?"

"could the docker runner be made compatible with relative mounts_paths ?"

"nah, we just add a comment that MOUNTS_PATH needs to be absolute in case the docker runner is used"

"move backup_base_path to the backup toplevel key. then move mounts one level down"

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
---
# Conversation that produced these changes
---

## User prompt

"os: macos should be allowed for completeness, treated like "linux""

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
---
# Conversation that produced these changes
---

## User prompt

"/ms-review-spec
Review @SPEC.md as a skeptical implementer about to start coding tomorrow.
For each finding, quote the offending line or section (using "|" as prefix) and propose a concrete fix. Group as:
 - Must-fix — would cause incorrect code, contradicts another part of the spec, or leaves a decision the implementer can't make alone.
 - Defer — worth tracking but doesn't block a correct first implementation.
Focus on unclarities, overengineering, logic holes, obvious bugs.
Be succint and add your findings to the bottom of SPEC.md in a section called "REVIEW"."

## User prompt

"/ms-apply-spec-review
I added feedback from a review to the bottom of @SPEC.md, together with my diretions on them in lines starting with "USER_COMMENT". Please update the SPEC.md based on this, and add a short one-liner describing your change (starting with "AGENT_RESPONSE") after each USER_COMMENT."

## User prompt

"apply d10 only"

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
---
# Conversation that produced these changes
---

## User prompt

"/agent-skills:plan create a plan for SPEC.md. Aim for self-contained work packages that each leaves a working state."

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
---
# Conversation that produced these changes
---

## User prompt

"/agent-skills:plan create a plan for SPEC.md. Aim for self-contained work packages that each leaves a working state."

## User prompt

"compare to the plan in @tasks/"

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
---
# Conversation that produced these changes
---

## User prompt

"compare your plan against @tasks/alternative_plan.md"

"rewrite tasks/plan.md and tasks/todo.md"

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Task 1 of tasks/todo.md. The yaml key locations.general.mounts_path stays, unread, until T10.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
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