Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
92 commits
Select commit Hold shift + click to select a range
9104aae
Simplify SDKs to a single agent world
vigoo Sep 21, 2026
6ece117
Format TypeScript Rollup config
vigoo Sep 21, 2026
7a8a4df
Preserve the middleware runtime binding world
vigoo Sep 21, 2026
48814e1
Update MoonBit template command count
vigoo Sep 21, 2026
b4a1ae7
Declare Scala middleware integration fixtures
vigoo Sep 21, 2026
16004d0
Implement unified MoonBit middleware exports
vigoo Sep 21, 2026
51006fe
Fix unified middleware CLI fixtures
vigoo Sep 21, 2026
63351ca
Recalibrate tests for unified Rust component
vigoo Sep 21, 2026
b185cff
Allow unified Rust bridge build to complete
vigoo Sep 21, 2026
a0cb595
Trigger CI for timeout recalibration
vigoo Sep 21, 2026
92aebe7
Merge remote-tracking branch 'origin/main' into gol-497-single-sdk-world
vigoo Sep 21, 2026
f364e42
Extend sparse memory usage test timeout
vigoo Sep 21, 2026
ff8bbe9
Specialize generated standalone tool metadata and cache validated des…
vigoo Sep 22, 2026
973fdce
Install Rust guest capability runtimes only from implementation const…
vigoo Sep 22, 2026
a63dc62
Keep Rust guest schema validation lean while preserving rich host con…
vigoo Sep 22, 2026
0ee9b4f
Generate minimal same-world MoonBit export runtime hooks
vigoo Sep 22, 2026
58f7f1c
Regenerate MoonBit bindings and batch provider stdout writes
vigoo Sep 22, 2026
3c1b786
Generate capability-sensitive Scala guest export roots
vigoo Sep 22, 2026
36ba707
Bundle capability-specific TypeScript guest exports
vigoo Sep 22, 2026
827e5b0
Generate capability-sensitive Effect component exports
vigoo Sep 22, 2026
404156a
Add component size analysis and strip Rust release symbols
vigoo Sep 22, 2026
589e60e
Add production filesystem tools and finish SDK follow-ups
vigoo Sep 22, 2026
d4cc0f0
Remove filesystem investigation reports
vigoo Sep 23, 2026
62b188b
Guard reflection retention in generated clients
vigoo Sep 23, 2026
e1013ed
Use minimal canonical ABI exports for absent SDK capabilities
vigoo Sep 23, 2026
be0efb6
Add direct guest wire conversion traits and derives
vigoo Sep 23, 2026
5baee79
Keep agent snapshot JSON off the generic value model
vigoo Sep 23, 2026
9286eaf
Encode string agent errors directly to their wire schema
vigoo Sep 23, 2026
90259cf
Generate direct MoonBit agent wire codecs and descriptors
vigoo Sep 23, 2026
80a604f
Precompute generated Scala tool command bindings
vigoo Sep 23, 2026
57b74a9
Assert reflection modules are absent from Effect component bundles
vigoo Sep 23, 2026
aa4831e
Release rejected MoonBit tool inputs directly from the wire arena
vigoo Sep 23, 2026
e285c37
Generate contextual MoonBit tool invocation with direct wire decoding
vigoo Sep 23, 2026
b807c5e
Use direct TypeScript wire codecs for supported concrete payloads
vigoo Sep 23, 2026
cd1860c
Generate direct Rust tool invocation and flat concrete result schemas
vigoo Sep 23, 2026
bebc86e
Use direct wire codecs for typed streams and quota tokens
vigoo Sep 23, 2026
8459334
Add direct wire schemas and codecs for unstructured agent values
vigoo Sep 23, 2026
ff874cf
Use direct wire stream codecs in Rust integration fixtures and filesy…
vigoo Sep 23, 2026
8ae9742
Generate direct custom-error schema cases and payload decoders
vigoo Sep 23, 2026
e910f95
Add direct wire codecs for rich values and nominal host IDs
vigoo Sep 23, 2026
cd60ba5
Dispatch Rust agent constructors and methods directly through wire co…
vigoo Sep 23, 2026
b581339
Separate tool composition from its schema representation
vigoo Sep 23, 2026
d48b133
Emit Rust guest descriptors and typed clients directly on wire carriers
vigoo Sep 23, 2026
5ea6060
Emit MoonBit tool descriptors directly into shared wire type pools
vigoo Sep 23, 2026
fffd15f
Generate MoonBit tool clients with direct wire codecs
vigoo Sep 23, 2026
5241fdd
Generate Scala tool wire descriptors and concrete dispatch at compile…
vigoo Sep 23, 2026
160f473
Generate Scala agent dispatch and metadata without owned schema models
vigoo Sep 23, 2026
a0ff40a
Keep MoonBit snapshot identity and failed tool cleanup wire-native
vigoo Sep 24, 2026
d18f2e0
Generate Scala wire clients and preserve asynchronous resource transfer
vigoo Sep 24, 2026
8ceaa39
Close Scala tool stdout when asynchronous input encoding fails
vigoo Sep 24, 2026
576bcdc
Compile TypeScript tool and agent descriptors and concrete wire dispatch
vigoo Sep 24, 2026
dabcaf7
Emit Scala client stream boundary flags at compile time
vigoo Sep 24, 2026
d3207e7
Emit concrete rich TypeScript codecs and preserve unstructured restri…
vigoo Sep 24, 2026
96b0de4
Specialize TypeScript typed tool clients
vigoo Sep 24, 2026
8fe2a50
Compile Effect contracts and invoke through concrete wire codecs
vigoo Sep 24, 2026
5ebf927
Resolve shorthand metadata and transpiled TypeScript component inputs
vigoo Sep 24, 2026
248108a
Complete wire-native Rust client generation and snapshot restoration
vigoo Sep 24, 2026
852ae99
Refresh filesystem plugin with final direct-wire SDK
vigoo Sep 24, 2026
0a3bc25
Audit post-B SDK residue
vigoo Sep 24, 2026
74a62b2
Integrate shared resource and async canonical ABI walkers
ampagent Sep 24, 2026
907867f
Merge origin/main into gol-314-filesystem-followups
vigoo Sep 24, 2026
60afcbf
Merge remote-tracking branch 'origin/main' into gol-314-filesystem-fo…
vigoo Sep 24, 2026
c1522c1
Format merged Scala macro
vigoo Sep 24, 2026
1a22294
Fix SDK CI after optimization merge
vigoo Sep 24, 2026
4c64c8a
Fix direct-wire canonical input carriers
vigoo Sep 24, 2026
3f08916
Fix Scala integration after main merge
vigoo Sep 24, 2026
5598256
Fix MoonBit streaming fixture error matching
vigoo Sep 24, 2026
2b5b8e4
Support HTTP namespace in static TS metadata
vigoo Sep 24, 2026
7251151
Distinguish tool and agent client calls
vigoo Sep 24, 2026
0af333d
Update Rust streaming middleware fixture
vigoo Sep 24, 2026
765cc43
Exclude only agent identity clients from tool compilation
vigoo Sep 24, 2026
53d4138
Update Rust streaming provider fixture
vigoo Sep 24, 2026
916212c
Refresh built-in filesystem tools after SDK changes
vigoo Sep 24, 2026
9cb9233
Update Rust streaming caller fixture
vigoo Sep 24, 2026
ea400b7
Refresh external durable streams lockfile
vigoo Sep 24, 2026
ecde94f
Fix merged SDK generation regressions
vigoo Sep 25, 2026
c45bf2f
Preserve canonical HTTP schemas in Scala wire metadata
vigoo Sep 25, 2026
f2f8401
Preserve Effect WitCodec package identity
vigoo Sep 25, 2026
34bdf70
Fix integration checks after SDK size optimization
vigoo Sep 25, 2026
91a0ae2
Align integration fixtures with built-in tools
vigoo Sep 25, 2026
c81e116
Merge remote-tracking branch 'origin/main' into gol-314-filesystem-fo…
vigoo Sep 25, 2026
81a36c1
Merge remote-tracking branch 'origin/main' into gol-314-filesystem-fo…
vigoo Sep 25, 2026
ab9a1e2
Fix durable stream session index test fingerprints
vigoo Sep 25, 2026
f1e3019
Fix SDK integration after main merge
vigoo Sep 25, 2026
626603a
Merge remote-tracking branch 'origin/main' into gol-314-filesystem-fo…
vigoo Sep 25, 2026
34023d8
Fix optimized SDK runtime integration
vigoo Sep 25, 2026
92631f3
Merge remote-tracking branch 'origin/main' into gol-314-filesystem-fo…
vigoo Sep 25, 2026
6efc5d7
Regenerate filesystem tool after SDK integration
vigoo Sep 25, 2026
5b3c155
Revert "Regenerate filesystem tool after SDK integration"
vigoo Sep 25, 2026
738e890
Temporarily capture regenerated filesystem tool
vigoo Sep 25, 2026
b3b479f
Commit CI-reproducible filesystem tool artifact
vigoo Sep 25, 2026
e18ddfa
Pin test component wit-bindgen runtime
vigoo Sep 25, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
48 changes: 41 additions & 7 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,43 @@ jobs:
artifact-name: unit-tests-report
github-token: ${{ secrets.GITHUB_TOKEN }}

check-builtin-tools:
runs-on: blacksmith-8vcpu-ubuntu-2204
needs: build-and-store
steps:
- uses: actions/checkout@v5
with:
fetch-depth: 1
- uses: ./.github/actions/setup-rust
with:
use-cache: 'false'
rust-targets: 'wasm32-wasip2'
install-cargo-binstall: 'true'
install-protoc: 'true'
- uses: ./.github/actions/restore-binaries
with:
run-id: ${{ github.run_id }}
copy-to-target: 'true'
- name: Setup MoonBit
uses: hustcer/setup-moonbit@v1
with:
version: ${{ env.MOONBIT_INSTALL_VERSION }}
core-version: ${{ env.MOONBIT_INSTALL_VERSION }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Install wasm-tools
run: cargo binstall --force --locked wasm-tools@1.248.0
- name: Update MoonBit workspace dependencies
run: moon update
working-directory: sdks/moonbit
- name: Build built-in tools
run: cargo make --profile ci build-builtin-tools
- name: Validate committed built-in tool artifacts
run: |
wasm-tools validate --features all plugins/filesystem-tools-rust.wasm
wasm-tools validate --features all plugins/filesystem-tools-moonbit.wasm
git diff --exit-code -- plugins/filesystem-tools-rust plugins/filesystem-tools-rust.wasm plugins/filesystem-tools-moonbit plugins/filesystem-tools-moonbit.wasm

worker-tests:
env:
CARGO_BUILD_JOBS: 10
Expand Down Expand Up @@ -789,10 +826,10 @@ jobs:
run: moon test cmd lib
working-directory: sdks/moonbit/golem_sdk_tools

# The Rust SDK test suite is dominated by three integration test targets that each shell out to
# cargo (tool: one `cargo check` per test, tool_middleware_component: a full wasm component
# build, ui: trybuild). They run as separate matrix entries; the `check` entry runs lint and every
# other test target and fails if a test target is added without being assigned to an entry.
# The Rust SDK test suite is dominated by two integration test targets that each shell out to
# cargo (tool: one `cargo check` per test, ui: trybuild). They run as separate matrix entries;
# the `check` entry runs lint and every other test target, and fails if a test target is added
# without being assigned to an entry.
build-golem-rust:
name: build-golem-rust (${{ matrix.part.name }})
runs-on: blacksmith-16vcpu-ubuntu-2204
Expand All @@ -804,8 +841,6 @@ jobs:
test-args: --lib --bins --test agent --test http_router --test tool_canonical --test schema_reexport --test reflection_recipe_compile
- name: tool
test-args: --test tool
- name: tool-middleware-component
test-args: --test tool_middleware_component
- name: ui
test-args: --test ui
steps:
Expand Down Expand Up @@ -836,7 +871,6 @@ jobs:
schema_reexport
tool
tool_canonical
tool_middleware_component
ui'
actual=$(cargo metadata --no-deps --format-version 1 \
| jq -r '.packages[].targets[] | select(.kind | index("test")) | .name' | sort)
Expand Down
85 changes: 85 additions & 0 deletions .github/workflows/component-size.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
name: Component size (informational)

on:
workflow_dispatch:
pull_request:
paths:
- '.github/workflows/component-size.yaml'
- 'test-components/size-analysis/**'
- 'test-components/agent-counters/**'
- 'sdks/rust/**'
- 'golem-rust-macro/**'
- 'golem-schema/**'
- 'cli/golem-cli/templates/rust/**'

permissions:
contents: read

jobs:
report:
runs-on: ubuntu-latest
timeout-minutes: 30
continue-on-error: true
steps:
- uses: actions/checkout@v5
- uses: ./.github/actions/setup-rust
with:
rust-targets: wasm32-wasip2
install-cargo-binstall: 'true'
install-cargo-make: 'false'
cache-shared-key: component-size
- name: Install analysis tools
run: |
cargo binstall --no-confirm --locked wasm-tools@1.253.0 twiggy@0.8.0
curl -fLsS https://github.com/WebAssembly/binaryen/releases/download/version_123/binaryen-version_123-x86_64-linux.tar.gz -o /tmp/binaryen.tar.gz
tar xzf /tmp/binaryen.tar.gz -C /tmp
echo /tmp/binaryen-version_123/bin >> "$GITHUB_PATH"
- name: Test binary accounting and rebundling
run: python3 -m unittest discover -s test-components/size-analysis -v
- name: Build reflection retention fixtures
run: |
for package in retention-canonical-floor retention-empty retention-non-reflective retention-reflection; do
python3 test-components/size-analysis/analyze.py \
--manifest test-components/size-analysis/fixtures/Cargo.toml \
--package "$package" \
--out "tmp/$package"
done
wasm-tools component wit --json tmp/retention-canonical-floor/current/component.wasm \
> tmp/retention-canonical-floor/world.json
wasm-tools component wit --json tmp/retention-empty/current/component.wasm \
> tmp/retention-empty/world.json
python3 test-components/size-analysis/compare-export-contract.py \
tmp/retention-canonical-floor/world.json tmp/retention-empty/world.json
- name: Check reflection retention contracts
run: |
python3 test-components/size-analysis/retention.py \
--negative empty=tmp/retention-empty/current/component.wasm \
--negative tool=tmp/retention-non-reflective/current/component.wasm \
--positive reflection=tmp/retention-reflection/current/component.wasm \
--enforce-option-b \
--out tmp/reflection-retention.json
- name: Build and report independent release choices
run: |
python3 test-components/size-analysis/analyze.py \
--manifest test-components/agent-counters/Cargo.toml \
--matrix --optimize --out tmp/component-size
- name: Isolated allocator performance smoke check
run: |
node test-components/size-analysis/benchmark-core.mjs \
tmp/component-size/baseline-s/report/core-0/module.wasm \
tmp/component-size/strip/report/core-0/module.wasm \
tmp/component-size/cgu1/report/core-0/module.wasm \
tmp/component-size/z/report/core-0/module.wasm \
tmp/component-size/strip/optimized-report/core-0/module.wasm \
> tmp/component-size/allocator-performance.json
- name: Upload report, including partial results on failure
if: always()
uses: actions/upload-artifact@v4
with:
name: component-size-${{ github.sha }}
path: |
tmp/component-size
tmp/retention-*
tmp/reflection-retention.json
retention-days: 14
if-no-files-found: warn
11 changes: 4 additions & 7 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -330,7 +330,7 @@ webbrowser = "1.0.4"
webpki-roots = { version = "0.26.7" }
windows-sys = { version = "0.61.2", features = ["Win32_Foundation", "Win32_Globalization", "Win32_System_Console"] }
which = "8.0.0"
wit-bindgen = { git = "https://github.com/golemcloud/wit-bindgen", branch = "golem-outline-lift-v0.58.0", version = "=0.59.0" }
wit-bindgen = { git = "https://github.com/golemcloud/wit-bindgen", rev = "d1d16370eff379655f68df661891b7a2116c7557", version = "=0.59.0" }
wit-bindgen-rust = "0.58.0"
wit-component = "0.248"
wit-encoder = "0.248"
Expand Down
18 changes: 10 additions & 8 deletions Makefile.toml
Original file line number Diff line number Diff line change
Expand Up @@ -1609,16 +1609,18 @@ cd ../..
## BUILT-IN TOOLS
[tasks.build-builtin-tools]
dependencies = ["wit"]
description = "Builds the representative built-in tool fixture (production descriptor inventories are currently empty)"
description = "Builds the Rust and MoonBit built-in filesystem tool components"
script_runner = "@duckscript"
script = '''
exec --fail-on-error cargo build -p golem-cli --bin golem-cli
golem_cli = set "${CARGO_MAKE_CRATE_TARGET_DIRECTORY}/debug/golem-cli"
rust_sdk = canonicalize sdks/rust/golem-rust
set_env GOLEM_RUST_PATH ${rust_sdk}
cd test-components/tool-streaming
exec --fail-on-error ${golem_cli} --preset release build --yes --skip-check
exec --fail-on-error ${golem_cli} --preset release exec copy
exec --fail-on-error cargo build -p golem --bin golem
golem = set "${CARGO_MAKE_CRATE_TARGET_DIRECTORY}/debug/golem"
cd plugins/filesystem-tools-rust
exec --fail-on-error ${golem} build -P release --force-build --yes
exec --fail-on-error ${golem} exec -P release copy
cd ../filesystem-tools-moonbit
exec --fail-on-error ${golem} build -P release --force-build --yes
exec --fail-on-error moon fmt component
exec --fail-on-error ${golem} exec -P release copy
cd ../..
'''

Expand Down
Loading
Loading