Skip to content

Commit 037406c

Browse files
jsvdclaude
andcommitted
Fix scaffold duplication and add --version flag (v0.9.1)
- build.rs: clean OUT_DIR before copying templates/assets to prevent stale artifacts from prior builds causing nested default/ directory - cli: add #[command(version)] so `arcane --version` works - mcp: fix hardcoded server version string (was 0.7.0, now 0.9.1) - Bump all packages to 0.9.1 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 5957cb4 commit 037406c

10 files changed

Lines changed: 31 additions & 13 deletions

File tree

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,13 @@
22

33
All notable changes to Arcane are documented here.
44

5+
## [0.9.1] - 2026-02-14
6+
7+
### Fixed
8+
- `arcane new` scaffold duplication: stale build artifacts caused a nested `default/` subdirectory in scaffolded projects (build.rs now cleans OUT_DIR before copying)
9+
- `arcane --version` flag: added `#[command(version)]` to clap derive so `arcane --version` prints the current version
10+
- MCP server version string: was hardcoded as `0.7.0`, now reports the correct version
11+
512
## [0.9.0] - 2026-02-14
613

714
### Added

Cargo.lock

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,8 +99,8 @@ Rails for games. Rails didn't beat Java by being more powerful — it beat it by
9999
**v0.9.0 — Phases 21-25 complete!**
100100

101101
All packages published and ready to use:
102-
- **npm**: [@arcane-engine/runtime@0.9.0](https://www.npmjs.com/package/@arcane-engine/runtime), [@arcane-engine/create@0.9.0](https://www.npmjs.com/package/@arcane-engine/create)
103-
- **crates.io**: [arcane-engine@0.9.0](https://crates.io/crates/arcane-engine), [arcane-cli@0.9.0](https://crates.io/crates/arcane-cli)
102+
- **npm**: [@arcane-engine/runtime@0.9.1](https://www.npmjs.com/package/@arcane-engine/runtime), [@arcane-engine/create@0.9.1](https://www.npmjs.com/package/@arcane-engine/create)
103+
- **crates.io**: [arcane-engine@0.9.1](https://crates.io/crates/arcane-engine), [arcane-cli@0.9.1](https://crates.io/crates/arcane-cli)
104104

105105
**Current features:**
106106
- ✅ Core engine: rendering, audio, text, UI, animation, pathfinding, tweening, particles

cli/Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "arcane-cli"
3-
version = "0.9.0"
3+
version = "0.9.1"
44
edition.workspace = true
55
license.workspace = true
66
description = "CLI for Arcane - agent-native 2D game engine (dev server, testing, project scaffolding)"
@@ -17,7 +17,7 @@ name = "arcane"
1717
path = "src/main.rs"
1818

1919
[dependencies]
20-
arcane-engine = { version = "0.9.0", path = "../core", features = ["renderer"] }
20+
arcane-engine = { version = "0.9.1", path = "../core", features = ["renderer"] }
2121
clap = { version = "4", features = ["derive"] }
2222
tokio = { version = "1", features = ["full"] }
2323
anyhow = "1"

cli/build.rs

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,14 +38,25 @@ fn find_dir(name: &str) -> PathBuf {
3838
);
3939
}
4040

41+
fn clean_dir(dir: &Path) {
42+
if dir.exists() {
43+
fs::remove_dir_all(dir).unwrap();
44+
}
45+
}
46+
4147
fn main() {
4248
let out_dir = PathBuf::from(std::env::var("OUT_DIR").unwrap());
4349

50+
// Clean before copying to prevent stale artifacts from prior builds
51+
let templates_dst = out_dir.join("templates");
52+
clean_dir(&templates_dst);
4453
let templates_src = find_dir("templates/default");
45-
copy_dir_recursive(&templates_src, &out_dir.join("templates").join("default"));
54+
copy_dir_recursive(&templates_src, &templates_dst.join("default"));
4655

56+
let assets_dst = out_dir.join("assets");
57+
clean_dir(&assets_dst);
4758
let assets_src = find_dir("assets");
48-
copy_dir_recursive(&assets_src, &out_dir.join("assets"));
59+
copy_dir_recursive(&assets_src, &assets_dst);
4960

5061
println!("cargo:rerun-if-changed=../templates/default");
5162
println!("cargo:rerun-if-changed=../assets");

cli/src/main.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ mod commands;
33
use clap::{Parser, Subcommand};
44

55
#[derive(Parser)]
6-
#[command(name = "arcane", about = "Arcane 2D game engine CLI")]
6+
#[command(name = "arcane", version, about = "Arcane 2D game engine CLI")]
77
struct Cli {
88
#[command(subcommand)]
99
command: Commands,

core/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "arcane-engine"
3-
version = "0.9.0"
3+
version = "0.9.1"
44
edition.workspace = true
55
license.workspace = true
66
description = "Core library for Arcane - agent-native 2D game engine (TypeScript runtime, renderer, platform layer)"

core/src/agent/mcp.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ fn handle_jsonrpc(body: &str, request_tx: &RequestSender) -> String {
129129
match rpc_method.as_str() {
130130
"initialize" => {
131131
format!(
132-
r#"{{"jsonrpc":"2.0","result":{{"protocolVersion":"2025-03-26","capabilities":{{"tools":{{}}}},"serverInfo":{{"name":"arcane-mcp","version":"0.7.0"}}}},"id":{rpc_id}}}"#,
132+
r#"{{"jsonrpc":"2.0","result":{{"protocolVersion":"2025-03-26","capabilities":{{"tools":{{}}}},"serverInfo":{{"name":"arcane-mcp","version":"0.9.1"}}}},"id":{rpc_id}}}"#,
133133
)
134134
}
135135
"notifications/initialized" => {

packages/create/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@arcane-engine/create",
3-
"version": "0.9.0",
3+
"version": "0.9.1",
44
"description": "Create a new Arcane game project",
55
"type": "module",
66
"bin": {

packages/runtime/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@arcane-engine/runtime",
3-
"version": "0.9.0",
3+
"version": "0.9.1",
44
"description": "Agent-native 2D game engine runtime - TypeScript APIs for state management, rendering, and game logic",
55
"type": "module",
66
"scripts": {

0 commit comments

Comments
 (0)