fix(release): include the built-in computer-use bundle in the TUI crate

Cargo publication of v0.9.12 stopped at codewhale-tui after 18 crates:
its 16 include_str! paths reached outside the package root, so the
verified tarball could not compile. Move the existing plugin into the
TUI package and update every source, test, CI, documentation, and ignore
reference. Keep one canonical bundle, with all 16 embedded runtime files
byte-identical to the v0.9.12 release payload.

Validation:
- Original cargo publish --locked -p codewhale-tui: FAIL, 16 missing-file
  errors; Cargo refused the upload.
- Corrected cargo package --locked --allow-dirty -p codewhale-tui: PASS,
  including compilation of the unpacked library and binary.
- npm test in crates/tui/plugins/computer-use: 31 passed; 0 failed.
- Embedded payload comparison: 16/16 original files identical in source
  and in the verified Cargo tarball.
- cargo fmt --all -- --check: PASS.
- Coordination npm test && npm run check:web gate: unavailable here;
  this Rust repository defines neither root script (both report Missing
  script). No broad-suite or hosted-CI pass is claimed.

This is a local packaging repair based on dcd4c200f7. It does not move
the published v0.9.12 tag or alter the already-published release binaries.
This commit is contained in:
CodeWhale Bot committed 2026-09-05 04:16:19 -07:00
1 parent dcd4c200f7
commit 05241f4095
29 files changed
+9 -12

No files matched your search

+1 -1
View File
@@ -249,7 +249,7 @@ jobs:
# The bundled plugin is dependency-free too; its suites cover the
# manifest contract, the registry, the exec/ssh transport, the four
# platform backends, and the MCP stdio protocol. No GUI input runs.
run: (cd plugins/computer-use && npm test)
run: (cd crates/tui/plugins/computer-use && npm test)
safety-gate:
name: Safety gate
+1 -1
View File
@@ -161,4 +161,4 @@ CODEWHALE_0_9_0_CUTOVER.md
.playwright-mcp/
# computer-use plugin smoke receipts (per-run local evidence)
plugins/computer-use/receipts/
crates/tui/plugins/computer-use/receipts/
@@ -89,7 +89,7 @@ recorder.
## Development
The bundle lives at `plugins/computer-use` in the Codewhale repository and has
The bundle lives at `crates/tui/plugins/computer-use` in the Codewhale repository and has
no dependencies to install; run its suites from that directory.
```bash
File renamed without changes.
File renamed without changes.
File renamed without changes.
+4 -4
View File
@@ -3,8 +3,8 @@
//! [`super::discovery::DiscoveryConfig::builtin_plugin_dirs`] and
//! [`super::types::PluginScope::Builtin`] have existed since plugin discovery
//! landed, with no producer: every construction site passed an empty list, so
//! the in-repo `plugins/computer-use` bundle reached nobody who had not cloned
//! the repository. This module is that producer. It is not a second install
//! the in-repo `crates/tui/plugins/computer-use` bundle reached nobody who had
//! not cloned the repository. This module is that producer. It is not a second install
//! path — installed bundles still arrive through
//! [`super::install`], and discovery, trust, and enablement are unchanged.
//!
@@ -47,12 +47,12 @@ macro_rules! bundle_file {
($relative:literal) => {
(
$relative,
include_str!(concat!("../../../../plugins/computer-use/", $relative)),
include_str!(concat!("../../plugins/computer-use/", $relative)),
)
};
}
/// The runtime tree of `plugins/computer-use`, relative path → contents.
/// The runtime tree of `crates/tui/plugins/computer-use`, relative path → contents.
///
/// Development-only files (`tests/`, `scripts/smoke.mjs`, `package.json`,
/// `README.md`) are deliberately absent: nothing at runtime reads them, and
+1 -4
View File
@@ -2305,10 +2305,7 @@ args = ["server.js", "--mode=worker", "-e", "console.log('ready')"]
#[test]
fn bundled_computer_use_plugin_validates() {
use crate::plugins::agent_plugin;
let root = PathBuf::from(concat!(
env!("CARGO_MANIFEST_DIR"),
"/../../plugins/computer-use"
));
let root = PathBuf::from(concat!(env!("CARGO_MANIFEST_DIR"), "/plugins/computer-use"));
let validated = PluginManifest::validate_from_path(&root.join("plugin.json"))
.expect("in-repo computer-use bundle must validate");
assert_eq!(validated.manifest.plugin.name, "computer-use");
+1 -1
View File
@@ -402,7 +402,7 @@ fn reviewed_product_catalog(locale: Locale) -> Vec<PluginProduct> {
)
.into_owned(),
publisher: "Codewhale".into(),
source_reference: "plugins/computer-use".into(),
source_reference: "crates/tui/plugins/computer-use".into(),
components: vec![
PluginProductComponent {
kind: PluginProductComponentKind::Mcp,