Skip to content

Support safe atomic project creation on Windows #134

Closed as not planned
Closed as not planned

Description

@Deicyde

PR #96 deliberately fails closed on Windows because its current publication contract depends on POSIX directory descriptors, flock, directory fsync, and atomic no-replace rename.

Implement the same contract with Windows-native primitives rather than weakening it:

  • bind every parent component by handle and reject symlinks, junctions, and other reparse-point traversal
  • retain and reverify parent/stage identity and ownership through publication
  • serialize creators, stage and byte-verify the complete tree, and publish without replacing an existing target
  • distinguish preserved-stage, published, and commit-uncertain outcomes across interruption and cleanup failures
  • keep the existing JSON/error-code contract and never silently fall back to a race-prone path implementation

Acceptance: the Windows CI job should run autoform project new successfully for the bundled release and cover existing targets, concurrent creators, parent replacement/reparse points, interruption, and no-replace publication.

Follow-up to #96.

Activity

  1. added
    trackingTracks related issues and is not a standalone implementation task
    on Oct 5, 2026
  2. added
    enhancementNew feature or request
    and removed
    trackingTracks related issues and is not a standalone implementation task
    on Oct 14, 2026
  3. Deicyde commented on Oct 26, 2026

    @Deicyde
    ContributorAuthor

    Closing as not planned, at Jack's decision (2026-10-26), like #403. Native Windows support for autoform project new would be a Win32 port of the creation transaction rather than a fix: Windows gets a clean, documented refusal today (project-create-safety-unavailable), and no consumer runs Autoform on native Windows. Under WSL the Linux path applies. Reopen if a Windows user needs it.

    Posted by Claude Code (session jackmccarthy-da), at Jack's request.

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions