Conversation
Runtime writes a `heartbeat` file (epoch-ms timestamp) to the run directory every 10 seconds. External tooling can stat/read it to detect dead processes. Timer is .unref()'d to avoid keeping Node alive. Made-with: Cursor
Concurrent Docker runners sharing the same rw workspace bind mount cause VirtioFS deadlocks on macOS Docker Desktop. This replaces the architecture with read-only workspace mounts + fuse-overlayfs overlay (fallback to copy-on-start when FUSE is unavailable), eliminating rw bind mount contention entirely. - Remove /jaiph/generated mount: container uses its own installed jaiph binary to compile .jh sources on the fly - Remove /jaiph/meta mount: run artifacts discovered from workspace structure after delta sync instead of meta file IPC - Mount workspace as :ro at /jaiph/workspace-ro; fuse-overlayfs creates writable merged view at /jaiph/workspace - Add overlay-run.sh wrapper: sets up overlay, runs command, extracts only changed files + deletion manifest to /jaiph/delta/ - Lifecycle: docker create → docker start -a → docker cp delta → docker rm - Dockerfile: add fuse-overlayfs, fuse3, rsync packages Made-with: Cursor
The COPY + RUN chmod pattern fails because chmod runs as USER jaiph which cannot modify a root-owned file. Made-with: Cursor
Container was running `jaiph run` (full CLI) which consumed __JAIPH_EVENT__ lines internally and rendered its own tree — events never reached the host. Restored the original architecture: host compiles workflow, container runs node-workflow-runner.js (raw runtime) that emits events to stderr, host CLI renders the tree. Kept ro workspace mounts and JAIPH_DOCKER_* env exclusion from the deadlock-prevention work. Made-with: Cursor
Keep backend stderr in prompt artifacts and failure summaries, and install Cursor inside the container as the non-root runtime user so Docker prompt runs do not fail with hidden errors or cursor-agent EACCES. Made-with: Cursor
Removed references to fuse-overlayfs, delta sync, overlay-run.sh, docker create/start-a lifecycle, and /jaiph/workspace-ro remapping. Documented current architecture: host-compiled generatedDir mount, raw node-workflow-runner.js execution, ro workspace with rw runs sub-mount, meta file IPC, and JAIPH_DOCKER_* env exclusion. Made-with: Cursor
Replace the generatedDir/meta/host-runs architecture with a minimal setup: container runs `jaiph run --raw` using its own installed jaiph, overlay-run.sh is runtime-generated and mounted ro, run artifacts go to a single /jaiph/run:rw mount outside the overlay. - Add --raw flag to `jaiph run`: skip banner/tree/reportResult, spawn runtime with stdio inherit so events pass through to caller's stderr - Remove /jaiph/generated (no host-compiled JS), /jaiph/meta (host discovers artifacts via findRunArtifacts), /jaiph/host-runs + symlink (/jaiph/run is outside overlay, writes go directly to host mount) - Generate overlay-run.sh from OVERLAY_SCRIPT constant in docker.ts, mounted ro at /jaiph/overlay-run.sh — no COPY in Dockerfile needed - JAIPH_RUNS_DIR always overridden to /jaiph/run inside container Made-with: Cursor
Runtime no longer sets JAIPH_LIB; isolated script subprocesses omit it while keeping JAIPH_SCRIPTS and JAIPH_WORKSPACE. resolveRuntimeEnv still strips inherited JAIPH_LIB. First-party workflows inline former lib helpers; delete .jaiph/lib. Update docs, e2e, language spec, CHANGELOG, and queue. Made-with: Cursor
Bump the version, restore `jaiph use nightly`, harden Docker run artifact handling, and remove dead stdlib golden data so the release matches current runtime behavior. Made-with: Cursor
Remove the stale overlay-run COPY from the managed init template, create the correct runtime directories, and update the install/init e2e golden bytes to match the intended Dockerfile contract. Made-with: Cursor
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.