Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
96 commits
Select commit Hold shift + click to select a range
445c4b9
"moveable" TS components + cleanups
noise64 Feb 26, 2026
2fc1b16
"moveable" Rust template
noise64 Feb 26, 2026
6665dac
initial edit module
noise64 Feb 24, 2026
0c111a8
edit fixes
noise64 Feb 24, 2026
f75fbfc
Cargo.toml editing: workspace deps, feature support
noise64 Feb 24, 2026
bdb8a14
rs and ts editing fixes
noise64 Feb 24, 2026
7e30941
yaml merge
noise64 Feb 26, 2026
8d5de7f
no default includes
noise64 Feb 27, 2026
b00bd8d
fix and rework absolute and relative glob handling
noise64 Feb 27, 2026
254939d
flatten ts templates
noise64 Feb 28, 2026
2c7e68f
in-memory template generator
noise64 Mar 2, 2026
ca7d8cd
checkpoint: in-memory planning
noise64 Mar 3, 2026
13e0b36
checkpoint: apply templates
noise64 Mar 3, 2026
701dea6
checkpoint: TS agent templates
noise64 Mar 4, 2026
6a9d45d
checkpoint: TS agent templates
noise64 Mar 4, 2026
b6b597d
cleanup
noise64 Mar 4, 2026
2232b9a
make fix
noise64 Mar 4, 2026
c4dbf52
make fix
noise64 Mar 4, 2026
8390ad9
template plan and apply logging
noise64 Mar 4, 2026
1af3803
cleanups
noise64 Mar 5, 2026
5745ea3
Merge branch 'main' into single-component-templates
noise64 Mar 5, 2026
3be71d4
license updates
noise64 Mar 5, 2026
4cda3c7
Merge branch 'main' into single-component-templates
noise64 Mar 5, 2026
37f385c
bump cc
noise64 Mar 5, 2026
91a7f55
component dir in manifest + cleanups
noise64 Mar 10, 2026
2243ea4
Merge branch 'main' into single-component-templates
noise64 Mar 10, 2026
17a805e
Merge branch 'main' into single-component-templates
noise64 Mar 10, 2026
da46494
progress towards multi-component support
noise64 Mar 15, 2026
1713127
fixes / cleanups
noise64 Mar 15, 2026
22a1752
cleanup
noise64 Mar 15, 2026
8d11196
adjust ts template more for component moving
noise64 Mar 15, 2026
e860a4f
checkpoint: basic TS single to multi component promotion works
noise64 Mar 15, 2026
e498d48
Merge branch 'main' into single-component-templates
noise64 Mar 15, 2026
a58a6de
Merge branch 'main' into single-component-templates
noise64 Mar 16, 2026
062407a
cleanups
noise64 Mar 16, 2026
8a04486
extract new template handler
noise64 Mar 16, 2026
6517cd5
select component for template
noise64 Mar 16, 2026
5d60452
template upgrade planning and approval
noise64 Mar 16, 2026
9aea29d
partition template plan + approve
noise64 Mar 17, 2026
eccc611
expand globs based on tsconfig includes
noise64 Mar 17, 2026
2b3031b
rust template upgrade handling
noise64 Mar 17, 2026
f6e1157
fix preset default flag
noise64 Mar 17, 2026
96edbc2
cleanup sourceWit and generatedWit manifest properties
noise64 Mar 17, 2026
0b5c06d
cleanup component type
noise64 Mar 17, 2026
3e3c7c1
mergeable rust templates
noise64 Mar 17, 2026
5d8962f
Merge branch 'main' into single-component-templates
noise64 Mar 17, 2026
627b65c
fix golem.yaml trailing newlines
noise64 Mar 17, 2026
e65bf88
more robust component-dir substitutions in templates
noise64 Mar 17, 2026
ee92f51
Merge branch 'main' into single-component-templates
noise64 Mar 17, 2026
677b421
cleanup
noise64 Mar 17, 2026
ef294df
fix rust template
noise64 Mar 17, 2026
a2d17fb
app edit cleanups
noise64 Mar 17, 2026
2535ec3
test fixes
noise64 Mar 17, 2026
8216a81
test fixes
noise64 Mar 17, 2026
236dbe5
template update
noise64 Mar 18, 2026
c5bac16
agent md merge fix
noise64 Mar 18, 2026
f6ddb35
update test
noise64 Mar 18, 2026
73af754
comment for agents md section
noise64 Mar 18, 2026
d043a27
rework and regroup how we test "all" templates in single and multi co…
noise64 Mar 18, 2026
7b81f8f
test fixes and cleanups
noise64 Mar 18, 2026
d8c3570
Merge branch 'main' into single-component-templates
noise64 Mar 18, 2026
c220cc8
make fix
noise64 Mar 18, 2026
cd9e71c
make fix
noise64 Mar 18, 2026
2547b42
Merge branch 'main' into single-component-templates
noise64 Mar 18, 2026
700a1f3
update test
noise64 Mar 18, 2026
44fec2d
fix template generator replacements
noise64 Mar 18, 2026
4b058cd
cleanups
noise64 Mar 18, 2026
9fed841
only dump in quite mode
noise64 Mar 18, 2026
089e39e
update / fix test
noise64 Mar 18, 2026
34af4e7
add missing mount
noise64 Mar 18, 2026
fc9c0f3
normalize componentDir
noise64 Mar 18, 2026
a005eaf
make fix
noise64 Mar 18, 2026
d270069
Merge branch 'main' into single-component-templates
noise64 Mar 18, 2026
15293e2
test updates
noise64 Mar 19, 2026
79f96d9
test updates
noise64 Mar 19, 2026
5020fb1
make fix
noise64 Mar 19, 2026
c19c3ee
rust template fixes
noise64 Mar 19, 2026
cefec5f
update test-components to flat style
noise64 Mar 19, 2026
71e1992
Merge branch 'main' into single-component-templates
noise64 Mar 19, 2026
7ff7ef3
cleanup
noise64 Mar 19, 2026
0dc6fb3
update agents for new layouts
noise64 Mar 19, 2026
47466ce
update agents.md for new `golem.new`
noise64 Mar 19, 2026
6d8efad
update test
noise64 Mar 19, 2026
78fefa7
update test
noise64 Mar 19, 2026
df664e8
update test
noise64 Mar 19, 2026
16c7377
fix merging empty env
noise64 Mar 20, 2026
cb05e03
test update
noise64 Mar 20, 2026
968ec02
normalize component dir lexically
noise64 Mar 20, 2026
676c6b0
golem-typegen path normalization
noise64 Mar 20, 2026
42badaa
fix CARGO_TARGET_DIR, for cargo workspace support
noise64 Mar 20, 2026
a2ed24e
rebuild test-components after fixes
noise64 Mar 20, 2026
3c81931
Merge branch 'main' into single-component-templates
noise64 Mar 20, 2026
49c0bd9
rebuild test-components after merge
noise64 Mar 20, 2026
48afa9b
more app edit tests
noise64 Mar 20, 2026
8e1d0ac
format
noise64 Mar 20, 2026
be2e669
update tests
noise64 Mar 20, 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
  •  
  •  
  •  
72 changes: 72 additions & 0 deletions Cargo.lock

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

11 changes: 7 additions & 4 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,7 @@ members = [

exclude = [
"cli/desktop-app/src-tauri",
"test-components/host-api-tests",
"test-components/http-tests",
"test-components/oplog-processor",
"test-components",
"sdks/golem-rust"
]

Expand Down Expand Up @@ -210,7 +208,7 @@ reqwest-middleware = { version = "0.5.1", features = ["json", "multipart", "quer
reqwest-tracing = { version = "0.7", features = ["opentelemetry_0_30"] }
ringbuf = "0.4.7"
rlimit = "0.10.2"
rmcp = {version = "0.16.0", features = ["server", "transport-streamable-http-server"] }
rmcp = { version = "0.16.0", features = ["server", "transport-streamable-http-server"] }
rsa = "0.9.7"

rustc-hash = "2.1.1"
Expand Down Expand Up @@ -271,6 +269,11 @@ tracing-opentelemetry = "0.31.0"
tracing-serde = "0.2.0"
tracing-subscriber = { version = "0.3.20", features = ["env-filter", "fmt", "std", "json", ] }
tracing-test = "0.2.5"
tree-sitter = "0.26.5"
tree-sitter-json = "0.24.8"
tree-sitter-rust = "0.24.0"
tree-sitter-typescript = "0.23.2"
tree-sitter-yaml = "0.7.2"
tower = "0.5.2"
try_match = "0.4.2"
tryhard = "0.5.1"
Expand Down
5 changes: 5 additions & 0 deletions cli/golem-cli/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,11 @@ toml_edit = { workspace = true }
tracing = { workspace = true }
tracing-log = "0.2.0"
tracing-subscriber = { workspace = true }
tree-sitter = { workspace = true }
tree-sitter-json = { workspace = true }
tree-sitter-rust = { workspace = true }
tree-sitter-typescript = { workspace = true }
tree-sitter-yaml = { workspace = true }
unicode-segmentation = { workspace = true }
url = { workspace = true }
uuid = { workspace = true }
Expand Down
15 changes: 10 additions & 5 deletions cli/golem-cli/src/app/build/clean.rs
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ pub fn clean_app(ctx: &BuildContext<'_>, mode: CleanMode) -> anyhow::Result<()>
log_action("Cleaning", "components");
let _indent = LogIndent::new();

let app_root_dir = ctx.application().app_root_dir();

let paths = {
let mut paths = BTreeSet::<(&'static str, PathBuf)>::new();

Expand All @@ -39,9 +41,8 @@ pub fn clean_app(ctx: &BuildContext<'_>, mode: CleanMode) -> anyhow::Result<()>

for component_name in &component_names {
let component = ctx.application().component(component_name);
let component_source_dir = component.source_dir();
let component_source_dir = component.component_dir();

paths.insert(("generated wit", component.generated_wit()));
paths.insert(("component wasm", component.wasm()));
paths.insert(("output wasm", component.final_wasm()));

Expand All @@ -52,9 +53,13 @@ pub fn clean_app(ctx: &BuildContext<'_>, mode: CleanMode) -> anyhow::Result<()>
.unwrap_or_else(|| component_source_dir.to_path_buf());

paths.extend(
fs::compile_and_collect_globs(&build_dir, &build_step.targets())?
.into_iter()
.map(|path| ("build output", path)),
fs::compile_and_collect_globs(
app_root_dir,
&build_dir,
&build_step.targets(),
)?
.into_iter()
.map(|path| ("build output", path)),
);
}

Expand Down
20 changes: 14 additions & 6 deletions cli/golem-cli/src/app/build/command.rs
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ pub async fn execute_build_command(
let base_build_dir = ctx
.application()
.component(component_name)
.source_dir()
.component_dir()
.to_path_buf();
match command {
app_raw::BuildCommand::External(external_command) => {
Expand Down Expand Up @@ -172,7 +172,7 @@ pub async fn execute_custom_command(

for step in custom_command {
if let Err(error) =
execute_external_command(ctx, component.source_dir(), step).await
execute_external_command(ctx, component.component_dir(), step).await
{
return Err(CustomCommandError::CommandError { error });
}
Expand Down Expand Up @@ -287,6 +287,8 @@ pub async fn execute_external_command(
base_command_dir: &Path,
command: &app_raw::ExternalCommand,
) -> anyhow::Result<()> {
let app_root_dir = ctx.application().app_root_dir();

let build_dir = command
.dir
.as_ref()
Expand All @@ -296,8 +298,13 @@ pub async fn execute_external_command(
let (sources, targets) = {
if !command.sources.is_empty() && !command.targets.is_empty() {
(
fs::compile_and_collect_globs(&build_dir, &command.sources)?,
fs::compile_and_collect_globs(&build_dir, &command.targets)?,
fs::compile_and_collect_globs_with_expanders(
app_root_dir,
&build_dir,
&command.sources,
&[fs::GlobExpander::TsConfigInclude],
)?,
fs::compile_and_collect_globs(app_root_dir, &build_dir, &command.targets)?,
)
} else {
(vec![], vec![])
Expand Down Expand Up @@ -365,9 +372,10 @@ pub async fn execute_external_command(
)
.await?;

Command::new(command_tokens[0].clone())
.args(command_tokens.iter().skip(1))
let mut cmd = Command::new(command_tokens[0].clone());
cmd.args(command_tokens.iter().skip(1))
.current_dir(&build_dir)
.envs(&command.env)
.stream_and_run(&command_tokens[0])
.await
},
Expand Down
Loading
Loading