Skip to content

feat: Make the dev folder default behavior - #43

Open
Pijukatel wants to merge 4 commits into
masterfrom
claude/focused-noether-q8h4op
Open

feat: Make the dev folder default behavior#43
Pijukatel wants to merge 4 commits into
masterfrom
claude/focused-noether-q8h4op

Conversation

@Pijukatel

Copy link
Copy Markdown
Collaborator

Summary

This PR adds a read-only GET endpoint for the dev folder registration and implements a per-run opt-out mechanism via ?devFolder=false query parameter, allowing users to skip the dev folder mount for individual runs without clearing the registration.

Key Changes

  • New GET /actor-runtime/dev-folder/:actorId endpoint - allows reading the current dev folder registration without modifying it; returns the same response format as POST and requires the same authentication/ownership scoping
  • Per-run opt-out via ?devFolder=false - added devFolder option to StartRunOptions that skips the bind mount for a single run when set to false, while leaving the Actor's registration untouched
  • Run logging - when a dev folder mount is skipped via the opt-out flag, the run's log includes a message indicating which folder was skipped and why
  • CLI integration support - documented the new --no-dev-folder flag for apify call and the underlying ?devFolder=false query parameter
  • Comprehensive test coverage - added test suites for both the new GET endpoint and the per-run opt-out behavior, covering edge cases like unregistered actors and parameter variations

Implementation Details

  • The GET endpoint reuses the existing devFolderStatus() helper to maintain consistent response formatting
  • The opt-out logic in runInBackground() checks options.devFolder === false to determine whether to apply the mount, preserving the default behavior when the parameter is absent or any other value
  • The feature is documented in api.md, actor-driver.md, and user-facing docs (README.md, CLAUDE.MD)
  • The implementation maintains backward compatibility - existing clients without knowledge of the parameter continue to work as before

https://claude.ai/code/session_01TQMu5bht6poYGSeBYG1m7X

Pijukatel and others added 4 commits September 9, 2026 09:34
Adds this runtime's own `devFolder` query parameter to `POST /v2/actors/:actorId/runs`.
`devFolder=false` starts that one run from the built image alone, leaving the Actor's
registered local dev folder untouched; the run log records the skip. Absent or any other
value keeps today's behaviour, so real-platform clients are unaffected.

This is what lets `apify call --no-dev-folder` turn the live folder off for a single run
while `apify push` registers it by default.

Also documents the CLI's automatic registration flow in the README, CLAUDE.MD and the specs.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TQMu5bht6poYGSeBYG1m7X
Reads the Actor's registered dev folder without changing it - the same envelope POST
returns. `apify call` asks this before a run against the runtime to warn that the run
will use the local folder rather than the built image alone.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TQMu5bht6poYGSeBYG1m7X
…iour only

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TQMu5bht6poYGSeBYG1m7X
@Pijukatel Pijukatel changed the title Add GET endpoint and per-run opt-out for dev folder mounting feat: Make the dev folder default behavior Sep 10, 2026
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.

2 participants