Skip to content

fix(dialect): auto-detect the workspace carrier by platform - #47

Merged
ananjan-nandi-9 merged 1 commit into
mainfrom
fix/linux-carrier-autodetect
Aug 9, 2026
Merged

ananjan-nandi-9 merged 1 commit into
mainfrom
fix/linux-carrier-autodetect

Conversation

@ananjan-nandi-9

Copy link
Copy Markdown
Collaborator

Summary

  • Stops forcing the macOS-only clonefile carrier for ordinary workspace-backed execution.
  • Uses the existing platform-aware backend selection for Linux, macOS, and portable fallback environments.
  • Aligns portable examples and test fixtures while retaining explicit clonefile coverage in macOS-gated tests.

Motivation / Context

Workspace bootstrap currently passes config={"backend": "clonefile"} unconditionally. On Linux, every workspace-backed run therefore raises before execution even when a supported overlay or portable carrier is available. The lower-level substrate already implements platform-aware selection; this PR lets that existing mechanism run.

This is an isolated bug fix and does not include the broader internal CI, provider, or durable-runtime work around it.

Delta Breakdown

  1. Use platform-aware carrier selection. Workspace no longer pins a backend when it builds the substrate context. Reviewers should verify that this delegates only backend choice and does not change workspace authority or lifecycle semantics.
  2. Make portable fixtures exercise the same path. Non-platform-specific dialect tests and the workspace-handles helper drop their clonefile pins. Explicit clonefile tests that are intentionally macOS-gated remain pinned.
  3. Document the fix. The Unreleased changelog records the restored cross-platform behavior.

Entry Point

Workspace.__init__ in shepherd_dialect/nucleus.py → existing build_builtin_substrate_context backend auto-detection → portable fixtures and baseline coverage → changelog.

The affected public entrypoint is ordinary construction of a workspace-backed Workspace.

Review Guide

The central question is whether ordinary workspace bootstrap should choose a backend or delegate to the substrate policy. This patch delegates to the already-documented policy and leaves explicit backend selection available to callers and platform-specific tests. macOS still resolves to clonefile; Linux can resolve to kernel/FUSE overlay; environments without either retain the existing portable floor.

Validation

  • Static checks: Ruff check and format check passed for all changed Python files; uv lock --check and git diff --check passed.
  • Type checks: Not run separately; this changes one call argument and test fixtures without changing annotations or public types.
  • Tests: The 209-test affected dialect selection completed successfully with one expected platform skip.
  • Targeted/manual validation: On Linux, make baseline now passes with 28 passed and 5 platform skips; it previously failed on the clonefile-only configuration.
  • Not run: The complete dialect suite; validation targets every changed fixture plus the canonical baseline.

Documentation / Changelog / Decisions

Added an Unreleased Fixed entry. No architecture decision is needed because this uses the existing backend-selection abstraction rather than introducing a new one.

Risk / Rollback / Migration

The behavioral change is limited to hosts where the hard-coded clonefile backend was unsupported. Backend selection now follows the existing platform policy; explicit backend requests are unaffected. Rollback is a normal revert. No data migration or API migration is required.

Follow-ups

A dedicated Linux CI lane can be considered separately now that ordinary workspace bootstrap no longer fails before execution.

Stop forcing the macOS-only clonefile carrier for ordinary Workspace bootstrap and portable fixtures. Let the existing backend detection choose the supported platform pairing while retaining explicit clonefile coverage in macOS-gated tests.
@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying shepherd-agents-docs with  Cloudflare Pages  Cloudflare Pages

Latest commit: 8c2b146
Status: ✅  Deploy successful!
Preview URL: https://af4d05dc.shepherd-agents-docs.pages.dev
Branch Preview URL: https://fix-linux-carrier-autodetect.shepherd-agents-docs.pages.dev

View logs

@ananjan-nandi-9
ananjan-nandi-9 merged commit 3bdd24f into main Aug 9, 2026
5 checks passed
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