Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
8e29f89
feat(plugin-abi): external-plugin ABI schema + abi/sdk crates (M0)
raphaelvigee Jun 15, 2026
05b6048
feat(plugin-abi): pb<->engine conversions (convert feature) [M1]
raphaelvigee Jun 15, 2026
db8fd3b
feat(plugin-remote): proto transport + host service + guest serve [M1]
raphaelvigee Jun 15, 2026
82b462b
feat(plugin-remote): subprocess spawn + reference plugin + transport …
raphaelvigee Jun 15, 2026
c78d2af
feat(plugin-sdk): artifact byte streaming over the result() callback …
raphaelvigee Jun 15, 2026
6507008
feat(plugin): RawDef serialization contract for cross-boundary round-…
raphaelvigee Jun 15, 2026
0bc688f
feat(plugin-remote): RemoteDriver parse/apply_transitive + guest driv…
raphaelvigee Jun 15, 2026
995ad2f
feat(plugin-remote): remote target execution via RemoteManagedDriver …
raphaelvigee Jun 15, 2026
63e9eee
test(e2e): RemoteProvider registers + serves through a real Engine [M2]
raphaelvigee Jun 15, 2026
ebcc38e
feat(plugin-remote): RemotePlugin + multi-driver routing on one conne…
raphaelvigee Jun 15, 2026
cc8012c
feat(plugin-go): heph-plugin-go binary — plugin-go served out-of-proc…
raphaelvigee Jun 15, 2026
ca05bd9
feat(bootstrap): opt-in remote go plugin (HEPH_REMOTE_GO) [M2]
raphaelvigee Jun 15, 2026
b121139
feat(plugin-abi): shm transport over iceoryx2 (byte-pipe under Mux) [M3]
raphaelvigee Jun 15, 2026
b7c4cb9
feat(plugin): note_dep edge-only API + typed wire errors (no message …
raphaelvigee Jun 15, 2026
27c15dd
feat(plugin-exec): heph-plugin-exec out-of-process + wasm devenv tool…
raphaelvigee Jun 15, 2026
dab1ebc
feat(plugin-remote): wasm transport vertical slice (wasmtime host + e…
raphaelvigee Jun 15, 2026
e271955
feat(plugin-remote): prove bidirectional wasm callbacks (guest→host i…
raphaelvigee Jun 15, 2026
db86663
feat(plugin-remote): wasm provider+driver ABI + guest SDK + hello-wor…
raphaelvigee Jun 15, 2026
e0084ea
feat(config): out-of-process plugins via `bin:` entry; drop HEPH_REMO…
raphaelvigee Jun 16, 2026
f725609
docs(example): run go plugin out-of-process via cargo run --release
raphaelvigee Jun 16, 2026
b313245
ci: publish heph-plugin-go release artifacts per os/arch
raphaelvigee Jun 16, 2026
07fc7eb
fix(config): map bin url {os}/{arch} to published artifact spellings
raphaelvigee Jun 16, 2026
ae42cd3
feat(example): gen-example builds go plugin to .heph3; bin.path resol…
raphaelvigee Jun 16, 2026
57406c8
fix: select heph-plugin-go via -p plugin-go (it is not in the root pa…
raphaelvigee Jun 16, 2026
f0fc35d
fix(plugin-remote): per-call callback scope id (fixes "unknown reques…
raphaelvigee Jun 16, 2026
c620d01
chore(devenv): gen-example runs gen first (self-contained)
raphaelvigee Jun 16, 2026
c1edffc
fix(plugin-go): read raw_def via def_de in driver run paths (remote-s…
raphaelvigee Jun 16, 2026
fcda9d3
fix(plugin-abi): fail pending mux calls on disconnect (no hang on plu…
raphaelvigee Jun 16, 2026
109ada5
fix(plugin-go,plugin-exec): run plugin on a multi-thread runtime
raphaelvigee Jun 16, 2026
62511db
chore(plugin-remote): TEMP transport instrumentation (frames + callba…
raphaelvigee Jun 16, 2026
0d2824e
perf(plugin-go): note_dep on golist cache hit (cut remote resolve cost)
raphaelvigee Jun 16, 2026
ab676c4
perf(plugin-go): dedup golist result() to once-per-package (edge via …
raphaelvigee Jun 16, 2026
dd0cb75
Revert "perf(plugin-go): dedup golist result() to once-per-package (e…
raphaelvigee Jun 16, 2026
c8aa1ae
perf(plugin-abi): coalesce mux writes + buffer reads (cut transport s…
raphaelvigee Jun 16, 2026
2985c5e
feat(plugin): shm transport (iceoryx2) wired + tested, off by default
raphaelvigee Jun 16, 2026
fb88a29
feat(plugin-stabby): in-process stable-ABI plugin transport (dylib) a…
raphaelvigee Jun 16, 2026
91e56be
refactor(plugin-go): drop go as a compiled-in built-in
raphaelvigee Jun 16, 2026
8d5126e
ci(lint): clippy with --all-features + fmt the new crates; fix surfac…
raphaelvigee Jun 16, 2026
e3a551c
ci: ship shm+wasm by default; test all features
raphaelvigee Jun 16, 2026
27d735e
ci: line-tables-only test debuginfo to fit the all-features link
raphaelvigee Jun 16, 2026
4d31222
ci: targeted feature test passes instead of --all-features
raphaelvigee Jun 16, 2026
ff110bb
ci: weak-link libfuse in the new plugin crates' test binaries
raphaelvigee Jun 16, 2026
b7a2f1a
ci: weak-link libfuse in plugin-echo bin + plugin-go cdylib
raphaelvigee Jun 17, 2026
1ff6df9
ci: retry iceoryx2 open_or_create on transient SystemInFlux
raphaelvigee Jun 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 21 additions & 5 deletions .github/workflows/heph.yml
Original file line number Diff line number Diff line change
Expand Up @@ -169,24 +169,32 @@ jobs:
env:
CARGO_TARGET_DIR: "./target"
BIN_NAME: "heph_${{ matrix.os }}_${{ matrix.arch }}"
PLUGIN_GO_NAME: "heph-plugin-go_${{ matrix.os }}_${{ matrix.arch }}"
HEPH_BUILD_VERSION: "${{needs.gen.outputs.version}}"
run: |
echo "bin_name=$BIN_NAME" >> $GITHUB_OUTPUT
echo "plugin_go_name=$PLUGIN_GO_NAME" >> $GITHUB_OUTPUT
# Build the CLI and the out-of-process go plugin together (one cargo
# invocation shares the compile). The go plugin is published so a
# workspace can launch it via `bin: { url: ... }` without building it.
OUT="$CARGO_TARGET_DIR/${{ matrix.target }}/release"
# FUSE (default feature) on Linux is pure-Rust (no libfuse link), so
# zigbuild cross-compiles cleanly. On macOS it links libfuse via the
# devenv macfuse-stubs; zig mangles the nix `-L` path under its SDK
# syslibroot and fails to find `-lfuse`, so the (native arm64) macOS
# runner uses plain `cargo build` — no cross needed there.
if [ "${{ matrix.os }}" = "darwin" ]; then
cargo build --release --locked --target ${{ matrix.target }} --bin heph
cargo build --release --locked --target ${{ matrix.target }} -p heph --bin heph -p plugin-go --bin heph-plugin-go
# The nix toolchain hard-links libiconv against its /nix/store path,
# which is absent on user machines (dyld aborts at launch). Rewrite
# those load commands to the OS /usr/lib copies.
bash scripts/macos-portable.sh $CARGO_TARGET_DIR/${{ matrix.target }}/release/heph
bash scripts/macos-portable.sh "$OUT/heph"
bash scripts/macos-portable.sh "$OUT/heph-plugin-go"
else
cargo zigbuild --release --locked --target ${{ matrix.target }} --bin heph
cargo zigbuild --release --locked --target ${{ matrix.target }} -p heph --bin heph -p plugin-go --bin heph-plugin-go
fi
cp $CARGO_TARGET_DIR/${{ matrix.target }}/release/heph $BIN_NAME
cp "$OUT/heph" $BIN_NAME
cp "$OUT/heph-plugin-go" $PLUGIN_GO_NAME

- name: sccache stats
if: always()
Expand All @@ -208,6 +216,12 @@ jobs:
name: ${{steps.build.outputs.bin_name}}
path: ${{steps.build.outputs.bin_name}}

- name: Upload go plugin artifact
uses: actions/upload-artifact@v6
with:
name: ${{steps.build.outputs.plugin_go_name}}
path: ${{steps.build.outputs.plugin_go_name}}

upload_artifacts:
name: Upload artifacts
needs: [gen, build]
Expand All @@ -220,7 +234,9 @@ jobs:
- name: Download all artifacts
uses: actions/download-artifact@v7
with:
pattern: "heph_*"
# Matches the CLI (`heph_<os>_<arch>`) and the go plugin
# (`heph-plugin-go_<os>_<arch>`); excludes the `repo` source artifact.
pattern: "heph*"
path: dist
merge-multiple: true

Expand Down
Loading
Loading