Skip to content

v0.9.2#13

Merged
dzikowski merged 10 commits intomainfrom
nightly
Apr 17, 2026
Merged

v0.9.2#13
dzikowski merged 10 commits intomainfrom
nightly

Conversation

@dzikowski
Copy link
Copy Markdown
Contributor

No description provided.

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
@dzikowski dzikowski merged commit 5cb59ec into main Apr 17, 2026
5 checks passed
@dzikowski dzikowski deleted the nightly branch April 17, 2026 12:19
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