Merge pull request #3002 from nearai/main

Main
This commit is contained in:
Henry Park
2026-04-27 16:50:23 -07:00
committed by GitHub
15 changed files with 112 additions and 21 deletions

View File

@@ -7,10 +7,43 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased] ## [Unreleased]
### Changed ## [0.26.0](https://github.com/nearai/ironclaw/compare/ironclaw-v0.25.0...ironclaw-v0.26.0) - 2026-04-21
### Added
- *(engine-v2)* add per-project sandbox with mission lifecycle and cost tracking ([#2211](https://github.com/nearai/ironclaw/pull/2211)) ([#2660](https://github.com/nearai/ironclaw/pull/2660))
- *(llm)* hot-reload provider chain from settings ([#2673](https://github.com/nearai/ironclaw/pull/2673))
- *(bridge)* add workspace-backed project registration and mission result retrieval ([#2533](https://github.com/nearai/ironclaw/pull/2533)) ([#2549](https://github.com/nearai/ironclaw/pull/2549))
- *(engine)* require a tool attempt for explicit user commands and add code execution failure categorization ([#2539](https://github.com/nearai/ironclaw/pull/2539)) ([#2483](https://github.com/nearai/ironclaw/pull/2483))
- *(gate)* persist "always approve" decisions in the v2 engine path ([#2428](https://github.com/nearai/ironclaw/pull/2428))
- *(memory)* add configurable insights interval, session summaries, and reasoning-augmented recall ([#2336](https://github.com/nearai/ironclaw/pull/2336))
- *(gateway)* add attachment flows, document uploads, rich history tool cards, debug inspector, and admin tooling UI ([#2385](https://github.com/nearai/ironclaw/pull/2385)) ([#2332](https://github.com/nearai/ironclaw/pull/2332)) ([#2477](https://github.com/nearai/ironclaw/pull/2477)) ([#1873](https://github.com/nearai/ironclaw/pull/1873)) ([#1963](https://github.com/nearai/ironclaw/pull/1963))
- *(tui)* support multiline drafting and input handling improvements ([#2449](https://github.com/nearai/ironclaw/pull/2449)) ([#2462](https://github.com/nearai/ironclaw/pull/2462))
- *(skills)* add new-project/template resolution, setup-marker lifecycle, working-directory source discovery, and activation feedback pipeline ([#2353](https://github.com/nearai/ironclaw/pull/2353)) ([#2268](https://github.com/nearai/ironclaw/pull/2268)) ([#2396](https://github.com/nearai/ironclaw/pull/2396)) ([#2530](https://github.com/nearai/ironclaw/pull/2530))
- *(portfolio)* complete the portfolio tool, widget, and share-gains flow ([#2368](https://github.com/nearai/ironclaw/pull/2368))
- *(cli)* add `logs --grep`, `profile list`, user-facing temperature setting, and local-profile onboarding prompts ([#1533](https://github.com/nearai/ironclaw/pull/1533)) ([#2288](https://github.com/nearai/ironclaw/pull/2288)) ([#2275](https://github.com/nearai/ironclaw/pull/2275)) ([#2389](https://github.com/nearai/ironclaw/pull/2389))
- *(runtime)* default `CLI_MODE` to TUI and show the commit hash in non-tagged gateway builds ([#2329](https://github.com/nearai/ironclaw/pull/2329)) ([#2486](https://github.com/nearai/ironclaw/pull/2486))
### Fixed
- *(gateway)* repair web login, onboarding, pairing, and v2 extension auth resume flows; the web API now uses unified onboarding state events instead of the older auth/pairing event split ([#2592](https://github.com/nearai/ironclaw/pull/2592)) ([#2594](https://github.com/nearai/ironclaw/pull/2594)) ([#2515](https://github.com/nearai/ironclaw/pull/2515)) ([#2622](https://github.com/nearai/ironclaw/pull/2622))
- *(gateway)* fix disappearing messages, stale in-progress state, assistant-thread routing, approval scoping, reconnect history reloads, browser crashers, and chat refresh issues ([#2498](https://github.com/nearai/ironclaw/pull/2498)) ([#2517](https://github.com/nearai/ironclaw/pull/2517)) ([#2444](https://github.com/nearai/ironclaw/pull/2444)) ([#2267](https://github.com/nearai/ironclaw/pull/2267)) ([#2415](https://github.com/nearai/ironclaw/pull/2415)) ([#2441](https://github.com/nearai/ironclaw/pull/2441)) ([#2330](https://github.com/nearai/ironclaw/pull/2330))
- *(gateway)* fix slash autocomplete, attachment rendering, missions navigation, settings search/auth state, active-work pills, tool output timing, and historical/live tool call correlation ([#2763](https://github.com/nearai/ironclaw/pull/2763)) ([#2745](https://github.com/nearai/ironclaw/pull/2745)) ([#2518](https://github.com/nearai/ironclaw/pull/2518)) ([#2709](https://github.com/nearai/ironclaw/pull/2709)) ([#2671](https://github.com/nearai/ironclaw/pull/2671)) ([#2555](https://github.com/nearai/ironclaw/pull/2555)) ([#2182](https://github.com/nearai/ironclaw/pull/2182))
- *(engine)* harden the v2 orchestrator, improve action failure handling, preserve paused auth leases, avoid orphaned approval gates, and prevent runaway or no-op mission execution paths ([#1958](https://github.com/nearai/ironclaw/pull/1958)) ([#2326](https://github.com/nearai/ironclaw/pull/2326)) ([#2338](https://github.com/nearai/ironclaw/pull/2338)) ([#2458](https://github.com/nearai/ironclaw/pull/2458)) ([#2531](https://github.com/nearai/ironclaw/pull/2531)) ([#2570](https://github.com/nearai/ironclaw/pull/2570)) ([#2631](https://github.com/nearai/ironclaw/pull/2631)) ([#2347](https://github.com/nearai/ironclaw/pull/2347)) ([#2328](https://github.com/nearai/ironclaw/pull/2328)) ([#2460](https://github.com/nearai/ironclaw/pull/2460))
- *(llm)* fix image generation and image-detail handling, normalize NEAR AI tool schemas, surface 413s as context-length errors, and remove duplicate `reasoning_content` fields ([#1819](https://github.com/nearai/ironclaw/pull/1819)) ([#2380](https://github.com/nearai/ironclaw/pull/2380)) ([#1940](https://github.com/nearai/ironclaw/pull/1940)) ([#2463](https://github.com/nearai/ironclaw/pull/2463)) ([#2339](https://github.com/nearai/ironclaw/pull/2339)) ([#2493](https://github.com/nearai/ironclaw/pull/2493))
- *(security)* add inbound secret scanning, redact HTTP credentials in recordings, fail closed on WASM scope fallback, harden approval thread safety, and scan pre-injection channel headers for leaks ([#2494](https://github.com/nearai/ironclaw/pull/2494)) ([#2529](https://github.com/nearai/ironclaw/pull/2529)) ([#2465](https://github.com/nearai/ironclaw/pull/2465)) ([#2366](https://github.com/nearai/ironclaw/pull/2366)) ([#1377](https://github.com/nearai/ironclaw/pull/1377))
- *(channels)* fix active WASM channel restore/status tracking plus Slack, Telegram, and Feishu auth/routing edge cases ([#2563](https://github.com/nearai/ironclaw/pull/2563)) ([#2562](https://github.com/nearai/ironclaw/pull/2562)) ([#2420](https://github.com/nearai/ironclaw/pull/2420)) ([#2471](https://github.com/nearai/ironclaw/pull/2471)) ([#2512](https://github.com/nearai/ironclaw/pull/2512)) ([#1540](https://github.com/nearai/ironclaw/pull/1540)) ([#2513](https://github.com/nearai/ironclaw/pull/2513)) ([#1943](https://github.com/nearai/ironclaw/pull/1943)) ([#2652](https://github.com/nearai/ironclaw/pull/2652)) ([#2349](https://github.com/nearai/ironclaw/pull/2349)) ([#2443](https://github.com/nearai/ironclaw/pull/2443)) ([#2454](https://github.com/nearai/ironclaw/pull/2454))
- *(cli/setup)* improve auth UX, avoid UTF-8 panics, suppress non-CLI listeners under `--cli-only`, validate strict MCP server names, install the NEAR AI MCP server from env config, and run migrations during onboarding when `DATABASE_URL` is preset ([#2315](https://github.com/nearai/ironclaw/pull/2315)) ([#2008](https://github.com/nearai/ironclaw/pull/2008)) ([#1869](https://github.com/nearai/ironclaw/pull/1869)) ([#2400](https://github.com/nearai/ironclaw/pull/2400)) ([#2181](https://github.com/nearai/ironclaw/pull/2181)) ([#2309](https://github.com/nearai/ironclaw/pull/2309))
- *(sandbox/docker)* improve Docker and deployment behavior by preferring the Docker socket when available and restoring the staging runtime target for Railway builds ([#2467](https://github.com/nearai/ironclaw/pull/2467)) ([#2244](https://github.com/nearai/ironclaw/pull/2244))
### Other
- *(gateway)* continue the web gateway slice extraction and boundary cleanup across platform, chat, oauth, settings, jobs, and routines modules ([#2628](https://github.com/nearai/ironclaw/pull/2628)) ([#2643](https://github.com/nearai/ironclaw/pull/2643)) ([#2644](https://github.com/nearai/ironclaw/pull/2644)) ([#2645](https://github.com/nearai/ironclaw/pull/2645)) ([#2665](https://github.com/nearai/ironclaw/pull/2665)) ([#2680](https://github.com/nearai/ironclaw/pull/2680)) ([#2683](https://github.com/nearai/ironclaw/pull/2683)) ([#2687](https://github.com/nearai/ironclaw/pull/2687)) ([#2704](https://github.com/nearai/ironclaw/pull/2704)) ([#2706](https://github.com/nearai/ironclaw/pull/2706)) ([#2712](https://github.com/nearai/ironclaw/pull/2712)) ([#2647](https://github.com/nearai/ironclaw/pull/2647))
- *(types)* adopt typed mission, external-thread, event-status, onboarding, and ownership models across the runtime ([#2681](https://github.com/nearai/ironclaw/pull/2681)) ([#2685](https://github.com/nearai/ironclaw/pull/2685)) ([#2678](https://github.com/nearai/ironclaw/pull/2678)) ([#2607](https://github.com/nearai/ironclaw/pull/2607)) ([#2677](https://github.com/nearai/ironclaw/pull/2677)) ([#2611](https://github.com/nearai/ironclaw/pull/2611)) ([#2617](https://github.com/nearai/ironclaw/pull/2617))
- *(ci)* add replay snapshot gating, speed up feedback loops, improve cache reuse, validate release versions in Docker workflows, and stabilize staging promotion checks ([#2621](https://github.com/nearai/ironclaw/pull/2621)) ([#2566](https://github.com/nearai/ironclaw/pull/2566)) ([#2609](https://github.com/nearai/ironclaw/pull/2609)) ([#2610](https://github.com/nearai/ironclaw/pull/2610)) ([#2742](https://github.com/nearai/ironclaw/pull/2742)) ([#2576](https://github.com/nearai/ironclaw/pull/2576)) ([#2661](https://github.com/nearai/ironclaw/pull/2661)) ([#2773](https://github.com/nearai/ironclaw/pull/2773))
- *(docker/ops)* add hourly image builds, release-process image builds, and historical image rebuild workflows ([#2519](https://github.com/nearai/ironclaw/pull/2519)) ([#2507](https://github.com/nearai/ironclaw/pull/2507)) ([#2509](https://github.com/nearai/ironclaw/pull/2509)) ([#2321](https://github.com/nearai/ironclaw/pull/2321))
- *(docs)* expand MCP, hosting, Responses API, setup, contributor-review, and architecture documentation ([#1138](https://github.com/nearai/ironclaw/pull/1138)) ([#2262](https://github.com/nearai/ironclaw/pull/2262)) ([#2440](https://github.com/nearai/ironclaw/pull/2440)) ([#2427](https://github.com/nearai/ironclaw/pull/2427)) ([#2714](https://github.com/nearai/ironclaw/pull/2714)) ([#2365](https://github.com/nearai/ironclaw/pull/2365))
- *(web)* gateway onboarding/auth SSE now uses the unified `onboarding_state` event; external SSE clients should migrate from the older auth/pairing event names. Legacy WebSocket `auth_token` and `auth_cancel` client messages remain accepted during the temporary web v1-auth compatibility window.
- *(web)* extension setup/auth `ActionResponse` payloads no longer include the legacy `verification` field; clients should use `onboarding_state` / `onboarding` data instead of that deprecated wire field.
## [0.25.0](https://github.com/nearai/ironclaw/compare/ironclaw-v0.24.0...ironclaw-v0.25.0) - 2026-04-11 ## [0.25.0](https://github.com/nearai/ironclaw/compare/ironclaw-v0.24.0...ironclaw-v0.25.0) - 2026-04-11
### Added ### Added

4
Cargo.lock generated
View File

@@ -3977,7 +3977,7 @@ dependencies = [
[[package]] [[package]]
name = "ironclaw_common" name = "ironclaw_common"
version = "0.2.0" version = "0.3.0"
dependencies = [ dependencies = [
"chrono-tz", "chrono-tz",
"serde", "serde",
@@ -4033,7 +4033,7 @@ dependencies = [
[[package]] [[package]]
name = "ironclaw_skills" name = "ironclaw_skills"
version = "0.1.0" version = "0.2.0"
dependencies = [ dependencies = [
"chrono", "chrono",
"futures", "futures",

View File

@@ -114,13 +114,13 @@ cron = "0.13"
jsonschema = { version = "0.45", default-features = false } jsonschema = { version = "0.45", default-features = false }
# Shared types # Shared types
ironclaw_common = { path = "crates/ironclaw_common", version = "0.2.0" } ironclaw_common = { path = "crates/ironclaw_common", version = "0.3.0" }
# Safety/sanitization # Safety/sanitization
ironclaw_engine = { path = "crates/ironclaw_engine", version = "0.1.0" } ironclaw_engine = { path = "crates/ironclaw_engine", version = "0.1.0" }
ironclaw_gateway = { path = "crates/ironclaw_gateway", version = "0.1.0" } ironclaw_gateway = { path = "crates/ironclaw_gateway", version = "0.1.0" }
ironclaw_safety = { path = "crates/ironclaw_safety", version = "0.2.1" } ironclaw_safety = { path = "crates/ironclaw_safety", version = "0.2.1" }
ironclaw_skills = { path = "crates/ironclaw_skills", version = "0.1.0" } ironclaw_skills = { path = "crates/ironclaw_skills", version = "0.2.0" }
ironclaw_tui = { path = "crates/ironclaw_tui", optional = true, version = "0.1.0" } ironclaw_tui = { path = "crates/ironclaw_tui", optional = true, version = "0.1.0" }
regex = "1" regex = "1"
aho-corasick = "1" aho-corasick = "1"

View File

@@ -7,6 +7,29 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased] ## [Unreleased]
## [0.3.0](https://github.com/nearai/ironclaw/compare/ironclaw_common-v0.2.0...ironclaw_common-v0.3.0) - 2026-04-21
### Added
- add debug inspector panel for web gateway ([#1873](https://github.com/nearai/ironclaw/pull/1873))
- *(skills)* activation feedback pipeline + install idempotence ([#2530](https://github.com/nearai/ironclaw/pull/2530))
- *(common)* apply ExtensionName newtype to fan-out sites (PR 2/2) ([#2617](https://github.com/nearai/ironclaw/pull/2617))
- *(common)* CredentialName + ExtensionName newtypes (PR 1/2) ([#2611](https://github.com/nearai/ironclaw/pull/2611))
### Fixed
- *(gateway)* align historical/live tool call cards and preserve tool call correlation ([#2182](https://github.com/nearai/ironclaw/pull/2182))
- image generation with nearai models ([#1819](https://github.com/nearai/ironclaw/pull/1819))
### Other
- *(types)* adopt MissionId in router + introduce McpServerName ([#2681](https://github.com/nearai/ironclaw/pull/2681))
- *(channels)* introduce ExternalThreadId newtype at channel boundary ([#2685](https://github.com/nearai/ironclaw/pull/2685))
- *(events)* replace JobResult.status String with JobResultStatus enum ([#2678](https://github.com/nearai/ironclaw/pull/2678))
- Fix gateway tool output visibility and timing ([#2555](https://github.com/nearai/ironclaw/pull/2555))
- *(events)* add OnboardingStateDto::pairing_required constructor ([#2607](https://github.com/nearai/ironclaw/pull/2607))
- Unify gateway onboarding, auth gates, and pairing flows ([#2515](https://github.com/nearai/ironclaw/pull/2515))
## [0.2.0](https://github.com/nearai/ironclaw/compare/ironclaw_common-v0.1.0...ironclaw_common-v0.2.0) - 2026-04-11 ## [0.2.0](https://github.com/nearai/ironclaw/compare/ironclaw_common-v0.1.0...ironclaw_common-v0.2.0) - 2026-04-11
### Added ### Added

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "ironclaw_common" name = "ironclaw_common"
version = "0.2.0" version = "0.3.0"
edition = "2024" edition = "2024"
rust-version = "1.92" rust-version = "1.92"
description = "Shared types and utilities for the IronClaw workspace" description = "Shared types and utilities for the IronClaw workspace"

View File

@@ -16,8 +16,8 @@ dist = false
[dependencies] [dependencies]
async-trait = "0.1" async-trait = "0.1"
cron = "0.13" cron = "0.13"
ironclaw_common = { path = "../ironclaw_common", version = "0.2.0" } ironclaw_common = { path = "../ironclaw_common", version = "0.3.0" }
ironclaw_skills = { path = "../ironclaw_skills", version = "0.1.0", default-features = false } ironclaw_skills = { path = "../ironclaw_skills", version = "0.2.0", default-features = false }
chrono = { version = "0.4", features = ["serde"] } chrono = { version = "0.4", features = ["serde"] }
monty = { git = "https://github.com/pydantic/monty.git", tag = "v0.0.16" } monty = { git = "https://github.com/pydantic/monty.git", tag = "v0.0.16" }
regex = "1" regex = "1"

View File

@@ -0,0 +1,21 @@
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
## [0.2.0](https://github.com/nearai/ironclaw/compare/ironclaw_skills-v0.1.0...ironclaw_skills-v0.2.0) - 2026-04-21
### Added
- *(gateway)* add attachment flows, v2 skill install coverage, and e2e stabilization ([#2385](https://github.com/nearai/ironclaw/pull/2385))
- *(skills)* activation feedback pipeline + install idempotence ([#2530](https://github.com/nearai/ironclaw/pull/2530))
- *(skills)* setup-marker lifecycle, chain-loading, and live GitHub workflow test ([#2268](https://github.com/nearai/ironclaw/pull/2268))
- discover tool source in working directory during install ([#2396](https://github.com/nearai/ironclaw/pull/2396))
### Other
- Fix Slack relay OAuth callback state lookup ([#2512](https://github.com/nearai/ironclaw/pull/2512))

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "ironclaw_skills" name = "ironclaw_skills"
version = "0.1.0" version = "0.2.0"
edition = "2024" edition = "2024"
rust-version = "1.92" rust-version = "1.92"
description = "Skill selection, scoring, and management for IronClaw" description = "Skill selection, scoring, and management for IronClaw"

View File

@@ -15,7 +15,7 @@ default = ["clipboard"]
clipboard = ["dep:arboard", "dep:image"] clipboard = ["dep:arboard", "dep:image"]
[dependencies] [dependencies]
ironclaw_common = { path = "../ironclaw_common", version = "0.2.0" } ironclaw_common = { path = "../ironclaw_common", version = "0.3.0" }
ratatui = { version = "0.29", features = ["crossterm"] } ratatui = { version = "0.29", features = ["crossterm"] }
tui-textarea = { version = "0.7", features = ["crossterm"] } tui-textarea = { version = "0.7", features = ["crossterm"] }
serde = { version = "1", features = ["derive"] } serde = { version = "1", features = ["derive"] }

View File

@@ -19,8 +19,8 @@
}, },
"artifacts": { "artifacts": {
"wasm32-wasip2": { "wasm32-wasip2": {
"sha256": "e3ebd9a7942d8ab7b38a2219474b64b0f495e9e540c5df1d7b25e663ec8b30b7", "sha256": "edddd28d478a73add695315b99485cfb00656e1682b1f45e6f3a0a90c56e5378",
"url": "https://github.com/nearai/ironclaw/releases/download/ironclaw-v0.25.0/channel-feishu-0.2.0-wasm32-wasip2.tar.gz" "url": "https://github.com/nearai/ironclaw/releases/download/ironclaw-v0.26.0/channel-feishu-0.2.2-wasm32-wasip2.tar.gz"
} }
}, },
"auth_summary": { "auth_summary": {

View File

@@ -18,8 +18,8 @@
}, },
"artifacts": { "artifacts": {
"wasm32-wasip2": { "wasm32-wasip2": {
"url": "https://github.com/nearai/ironclaw/releases/download/ironclaw-v0.25.0/channel-slack-0.3.0-wasm32-wasip2.tar.gz", "url": "https://github.com/nearai/ironclaw/releases/download/ironclaw-v0.26.0/channel-slack-0.3.1-wasm32-wasip2.tar.gz",
"sha256": "b700d4ab29fe69ac8a86f709d8f735b7ac6db3c7e9d94e63e33a4a69899192e7" "sha256": "b5e0ffcf6cd849d885031db7ec86299c5b79c288e2fabe983ae18e7814110a45"
} }
}, },
"auth_summary": { "auth_summary": {

View File

@@ -18,8 +18,8 @@
}, },
"artifacts": { "artifacts": {
"wasm32-wasip2": { "wasm32-wasip2": {
"url": "https://github.com/nearai/ironclaw/releases/download/ironclaw-v0.25.0/channel-telegram-0.2.8-wasm32-wasip2.tar.gz", "url": "https://github.com/nearai/ironclaw/releases/download/ironclaw-v0.26.0/channel-telegram-0.2.10-wasm32-wasip2.tar.gz",
"sha256": "0fe74589b0367d085efdab395d95ec34ac274d46f498cecc1d62f313caf9cc96" "sha256": "4f0df0f125cc2aa6216d48a5c5bfa6a3adc5f2b32025e81ef37c9b68406eea7e"
} }
}, },
"auth_summary": { "auth_summary": {

View File

@@ -21,8 +21,8 @@
}, },
"artifacts": { "artifacts": {
"wasm32-wasip2": { "wasm32-wasip2": {
"url": "https://github.com/nearai/ironclaw/releases/download/ironclaw-v0.25.0/tool-github-0.2.3-wasm32-wasip2.tar.gz", "url": "https://github.com/nearai/ironclaw/releases/download/ironclaw-v0.26.0/tool-github-0.2.4-wasm32-wasip2.tar.gz",
"sha256": "f0b1daab4a9f978d1638e7d83569db02b1733b3916cddfc5be0993b16c49927c" "sha256": "aaed3abb72c40dd920666e6a16cc26358420c52e8d2f260caf1e62e9f50136ea"
} }
}, },
"auth_summary": { "auth_summary": {

View File

@@ -19,7 +19,12 @@
"capabilities": "portfolio-tool.capabilities.json", "capabilities": "portfolio-tool.capabilities.json",
"crate_name": "portfolio-tool" "crate_name": "portfolio-tool"
}, },
"artifacts": {}, "artifacts": {
"wasm32-wasip2": {
"sha256": "99d0ef6522735a99d41116bfdeed06e5b6107193905173050abf6b140d4215a9",
"url": "https://github.com/nearai/ironclaw/releases/download/ironclaw-v0.26.0/tool-portfolio-0.1.0-wasm32-wasip2.tar.gz"
}
},
"auth_summary": { "auth_summary": {
"method": "manual", "method": "manual",
"provider": "Dune Analytics", "provider": "Dune Analytics",

View File

@@ -128,6 +128,14 @@
Source='$(var.CargoTargetBinDir)\ironclaw.exe' Source='$(var.CargoTargetBinDir)\ironclaw.exe'
KeyPath='yes'/> KeyPath='yes'/>
</Component> </Component>
<Component Id='binary1' Guid='*'>
<File
Id='exe1'
Name='sandbox_daemon.exe'
DiskId='1'
Source='$(var.CargoTargetBinDir)\sandbox_daemon.exe'
KeyPath='yes'/>
</Component>
</Directory> </Directory>
</Directory> </Directory>
</Directory> </Directory>
@@ -150,6 +158,7 @@
<!--<ComponentRef Id='License'/>--> <!--<ComponentRef Id='License'/>-->
<ComponentRef Id='binary0'/> <ComponentRef Id='binary0'/>
<ComponentRef Id='binary1'/>
<Feature <Feature
Id='Environment' Id='Environment'