Skip to content

Make every first-party SDK runnable from a fresh Codespace #55

Description

@rmcdaniel

A fresh Sample App Codespace is not yet a truthful playground for all first-party SDKs. PHP embedded examples are immediately available, while framework-neutral PHP, Python, and Rust authoring are hidden behind containerized onboarding or the conformance matrix. The default environment lacks Python and Rust authoring toolchains, Docker Compose access, and the Durable Workflow CLI. An evaluator can read the SDK references and ask an agent to create a workflow and activity from scratch, yet the agent cannot execute a valid path from inside the repository.

Make Sample App an easy, symmetric PHP, Python, and Rust playground without regressing Codespaces startup performance.

Acceptance criteria

  • After a fresh Codespace reports setup complete, PHP and Composer, Python 3.10 or newer with isolated package support, Rust 1.86 or newer with Cargo, Docker Compose, and dw are directly executable by the non-root Codespaces user.
  • Tooling is supplied by the published development image or a bounded checksum-verified cache/bootstrap. The post-create path does not run apt, rustup, compile the CLI, or rebuild language toolchains.
  • Docker access works from inside the development container and is permission-safe for the non-root user; every documented service-mode command passes its Docker preflight in Codespaces.
  • Expose one memorable playground interface with symmetric php, python, and rust choices. Each choice can scaffold or run caller-owned source against an isolated published Server and prints the completed result plus the exact Waterline run URL.
  • Each proof creates new workflow and activity source outside the repository's canonical matrix workers, registers a worker, starts the workflow, executes the activity, and receives the result. Replaying a prewritten conformance cell is insufficient.
  • The PHP path covers the framework-neutral SDK with an ergonomic Laravel integration option; moving from embedded Laravel to service mode must not discard dependency injection, configuration, logging, or testability.
  • Python and Rust dependencies for the supported SDK floors are pre-fetched or otherwise cached so first use is not dominated by rebuilding the SDK dependency graph.
  • The top-level README and repository agent guidance make the three paths discoverable from a natural-language request to create and run a workflow. Users do not need to infer conformance commands.
  • CI runs the same authored-from-scratch journey for PHP, Python, and Rust using published artifacts and verifies each result, worker registration, workflow history, and Waterline selection.
  • A fresh standard two-core Codespace records creation timing and executes all three journeys as the normal user. Setup remains under five minutes, the repository stays clean except for intentionally created playground source, and no recovery container or manual package installation is used.

Close only after exact fresh-Codespace transcripts and timing evidence for all three SDKs are attached.

Metadata

Metadata

Assignees

No one assigned

    Labels

    authority:githubGitHub is the authoritative lifecycle record for this workbeta:blockerMust be resolved before the first 2.0 betacompletion:evidence-requiredClose only after all explicit acceptance and operational evidence is publickind:defectA public product behavior is incorrectpriority:P1High-priority product or release riskrepo:sample-appOwned by the sample application repositorystatus:readyReady for implementation

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions