crates/trios-ext/
βββ Cargo.toml # wasm32-unknown-unknown, dioxus 0.6, web-sys, wasm-bindgen
βββ src/
β βββ lib.rs # #[wasm_bindgen(start)] pub fn main()
β βββ app.rs # Dioxus root component
β βββ components/
β β βββ mod.rs
β β βββ sidebar.rs
β β βββ chat.rs
β β βββ agent_list.rs
β βββ mcp/
β β βββ mod.rs
β β βββ client.rs # WebSocket β trios-server :9005/ws
β β βββ protocol.rs # MCP message types
β βββ bridge/
β βββ mod.rs
β βββ comet.rs # direct Comet β ext channel (#157)
βββ extension/
β βββ manifest.json # MV3, side_panel.default_path, action.default_icon{16,32,48,128}
β βββ assets/
β β βββ logo.svg # Trinity brand (from brandbook)
β β βββ icons/
β β βββ 16.png
β β βββ 32.png
β β βββ 48.png
β β βββ 128.png
β βββ sidepanel.html # ONLY <script type="module" src="/dist/trios_ext.js"></script>
β βββ background.html # WASM service worker loader (auto-generated)
β βββ styles/
β βββ brand.css # --trinity-black:#000000; --trinity-accent:β¦
βββ xtask/
β βββ Cargo.toml
β βββ src/main.rs # cargo xtask build β wasm-bindgen β dist/
βββ .gitignore # dist/
ποΈ MASTER P0: trios-ext revival
Context:
crates/trios-ext/extension/does not exist. All prior "fixes" (#152, #155, #156, #157, #189) were closed without real scaffold. This issue tracks ground-up creation.Branch & worktree (L10)
git worktree add ../trios-ext-revival -b fix/trios-ext-revival main cd ../trios-ext-revivalTarget structure
Acceptance Criteria
cargo build -p trios-ext --target wasm32-unknown-unknownsucceedscargo xtask build-extproducescrates/trios-ext/dist/with generatedtrios_ext.js+trios_ext_bg.wasmfind crates/trios-ext/extension -name "*.js" -not -path "*/dist/*"= empty (Closes π¨ P0 VIOLATION: JS in extension/ β ALL extension code MUST be Rust β WASM (no .js handwritten)Β #156, π¦ P0 EPIC: trios-ext FULL RustβWASM rewrite β fix CSP inline-script + DELETE all handwritten .js (Π΄Π΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΏΠ»Π°Π½ Π΄Π»Ρ Π°Π³Π΅Π½ΡΠ°)Β #189)extension/manifest.jsonreferences existing icons 16/32/48/128 +side_panel.default_path(Closes π¨ P0: Chrome Extension β missing icons + popup not clickable (refs #108)Β #152)#000000) applied inbrand.css(Closes π¨ P0: Brand enforcement β Trinity logo + Total Black palette + working chat (Chrome Extension)Β #155)ws://localhost:9005/wsand renders chat (Closes π¨ P0: Brand enforcement β Trinity logo + Total Black palette + working chat (Chrome Extension)Β #155)chrome.runtime.connectround-trips test message (Closes π P0: Comet β Trios direct bridge β let the operator AI test the extension end-to-end (white screen blocker)Β #157).github/workflows/no-js.ymlenforces zero handwritten JS (Closes π¦ P0 EPIC: trios-ext FULL RustβWASM rewrite β fix CSP inline-script + DELETE all handwritten .js (Π΄Π΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΏΠ»Π°Π½ Π΄Π»Ρ Π°Π³Π΅Π½ΡΠ°)Β #189)cargo clippy --all-targets --all-features -- -D warnings= 0 (L3)cargo test --workspacegreen (L4)Commit plan (L8 PUSH FIRST β push after every commit)
feat(trios-ext): scaffold crate skeleton + Cargo.toml (refs #108)feat(trios-ext): extension/manifest.json + icons 16/32/48/128 (Closes #152)feat(trios-ext): Dioxus app + WASM entry point (refs #189)feat(trios-ext): Trinity brand.css + logo.svg (refs #155)feat(trios-ext): MCP WebSocket client + chat component (Closes #155)feat(trios-ext): Comet bridge via chrome.runtime (Closes #157)feat(trios-ext): xtask build pipeline (wasm-bindgen β dist/)feat(ci): no-js.yml + manifest validator (Closes #156, Closes #189)docs(trios-ext): README + load-unpacked instructions (Closes #108)Single PR
Title:
feat(trios-ext): full revival β Rust/Dioxus/WASM sidepanel + MCP bridgeBody:
Closes #108 Closes #152 Closes #155 Closes #156 Closes #157 Closes #189Verification (manual, before merge)
cargo xtask build-extchrome://extensionsβ Load unpacked βcrates/trios-ext/extension/Constraints (reaffirmed)
.shfilesCloses #NBlocks: #108 #152 #155 #156 #157 #189
Assignee: DELTA (NATO call-sign)
TRINITY board: add β In progress