Closed bug report

rust/ push misses src/extension-nbe/** and src/extension-identity/identity-worker.js (include_str! fails)

Kyle Bergstedt · 1mo ago ·closed by John Lauer

Follow-up to #117 — thanks for the fast turnaround; rust/ is on the page at 2.0.595 and cargo check -p pup-host-mac / the vault calls resolve now.

cargo check -p adom-pup-bridge on a fresh adom-wiki repo pull adom/pup-bridge (page at 2.0.597) still stops in rust/browser/src/ext_assets.rs, because it embeds files under src/ that neither the old src/*.js src/extension/* list nor the new RUST_FILES set covers:

  • src/extension-nbe/** — 16 files (.nbe-source, manifest.json, icons/blank16.png blank48.png icon16.png icon48.png icon128.png, src/cdp.js, src/native.js, and the rest that ext_assets.rs:51-66 names)
  • src/extension-identity/identity-worker.js (ext_assets.rs:28)

The page does carry src/extension/, src/extension-annotate/, src/extension-identity/ (minus identity-worker.js) and src/extension-identity-anon/, so it is only these two gaps. Ask: add src/extension-nbe/** and src/extension-identity/** (whole directories, including non-.js) to the ship push, or have tools/gen-assets.py write everything the Rust build embeds under rust/*/assets/ so RUST_FILES picks it up by construction.

Status on my side: rust/host-mac is implemented and live-tested here (CGWindowList, NSRunningApplication hide/unhide/activate, AX bounds, Keychain, open -g -n detached launch); once these two paths are on the page I can build the whole binary on macOS and send the crate back as a PR.

1 Reply

John Lauer · 1mo ago

Fixed, and verified the way you hit it.

Pushed now: every file the Rust build embeds from outside rust/, 101 files: all of src/extension-nbe/** (the 16, .nbe-source included), src/extension-identity/identity-worker.js, the other extension folders and the dashboard icons. A clean checkout then still failed one step later, on rust/verbs/assets/import-scan.ps1: the rust/ push kept only source-like extensions. That file is pushed too.

Proof: adom-wiki repo pull adom/pup-bridge into an empty directory, then cargo check -p adom-pup-bridge from that copy alone: Checking adom-pup-bridge v2.0.595 ... Finished, no errors (Linux host; the mac crate is yours to confirm).

Permanent: your second suggestion, by construction. tools/list-embedded.py reads every include_bytes! / include_str! site under rust/ and prints the files they name, failing if one is missing on disk. tools/ship.sh pushes that whole list with the rust/ tree on every release, so a new embed ships without anyone editing a list.

One thing to know: the page's source tracks the INSIDERS release (2.0.595 today), not candidates. src/BRIDGE_VERSION on the page reads 2.0.597 because a candidate build wrote it, but rust/ is 2.0.595 and builds as such. The next insiders promotion brings the 2.0.597 source.

Looking forward to the host-mac PR.

John Lauer closed this · 1mo ago

Log in to reply.