From 26bdad6d1b6c1f406607dd3af8a91bda329e81f8 Mon Sep 17 00:00:00 2001 From: Oleks Date: Wed, 27 May 2026 10:15:36 +0300 Subject: [PATCH] Wire oleks/mcp-chrome into flake-hub Adds mcp-chrome as a flake input (mirroring the woodpecker-peek pattern) and re-exposes two packages: mcp-chrome-wasm-simd (proven green, ~22 s) and mcp-chrome-extension (KNOWN-BROKEN under nix-daemon; exposed for local builds but kept out of the CI matrix to avoid red pipelines). CI warms attic with mcp-chrome-wasm-simd on x86_64-linux and aarch64-linux only; s390x cross and Darwin are out of scope. Closes oleks/mcp-chrome#5. --- ci/build.py | 6 ++++++ flake.lock | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++- flake.nix | 19 ++++++++++++++++++ 3 files changed, 82 insertions(+), 1 deletion(-) diff --git a/ci/build.py b/ci/build.py index e6e5d9c..419d087 100644 --- a/ci/build.py +++ b/ci/build.py @@ -57,6 +57,12 @@ packages = ["hello-world", "geesefs", "xonsh"] # default builds for Linux/Darwin; we cache the Linux native arches). if ARCH in ("x86_64-linux", "aarch64-linux"): packages += ["woodpecker-peek"] +# mcp-chrome: cache the proven-green wasm-simd worker only. +# mcp-chrome-extension is exposed in the flake but NOT built in CI — it's +# KNOWN-BROKEN under nix-daemon at the current pin (see oleks/mcp-chrome +# issue #1 close comment); CI would just go red on it. +if ARCH in ("x86_64-linux", "aarch64-linux"): + packages += ["mcp-chrome-wasm-simd"] # google-antigravity{,-no-fhs} skipped in CI: pulls in google-chrome, which # transitively builds liberation-fonts; fontforge segfaults while generating # the .ttf files (pipeline #40). Package definitions stay in the flake for diff --git a/flake.lock b/flake.lock index e4588c5..128e403 100644 --- a/flake.lock +++ b/flake.lock @@ -75,6 +75,24 @@ "type": "github" } }, + "flake-utils_4": { + "inputs": { + "systems": "systems_4" + }, + "locked": { + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, "fleet-pins": { "inputs": { "nixpkgs": "nixpkgs", @@ -143,13 +161,35 @@ "type": "github" } }, - "nix-deps": { + "mcp-chrome": { "inputs": { "flake-utils": "flake-utils_3", "nixpkgs": [ "nixpkgs" ] }, + "locked": { + "lastModified": 1779817034, + "narHash": "sha256-uRiqIPmTGeTCeoQtCz+CuC2NXNEv8xoP696HgYrA8fU=", + "ref": "main", + "rev": "8b5ec6cedfed0d46eff8ee4f6bf3912fd33acc22", + "revCount": 210, + "type": "git", + "url": "https://git.oleks.space/oleks/mcp-chrome" + }, + "original": { + "ref": "main", + "type": "git", + "url": "https://git.oleks.space/oleks/mcp-chrome" + } + }, + "nix-deps": { + "inputs": { + "flake-utils": "flake-utils_4", + "nixpkgs": [ + "nixpkgs" + ] + }, "locked": { "lastModified": 1778863463, "narHash": "sha256-TynOVZBZHiBZAjZbW2sQfaVEh5UXi4UgZ3X0pcu4nYE=", @@ -186,6 +226,7 @@ "flake-utils": "flake-utils_2", "fleet-pins": "fleet-pins", "hyprspace": "hyprspace", + "mcp-chrome": "mcp-chrome", "nix-deps": "nix-deps", "nixpkgs": [ "fleet-pins", @@ -260,6 +301,21 @@ "type": "github" } }, + "systems_4": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, "woodpecker-peek": { "inputs": { "nixpkgs": [ diff --git a/flake.nix b/flake.nix index 76deaea..eaa3c9e 100644 --- a/flake.nix +++ b/flake.nix @@ -40,6 +40,16 @@ url = "git+https://git.oleks.space/oleks/woodpecker-peek?ref=main"; inputs.nixpkgs.follows = "nixpkgs"; }; + + # mcp-chrome — Chrome MCP server + extension (English-localized fork of + # hangwin/mcp-chrome). Re-exposes the from-source wasm-simd worker (proven + # green, ~22 s) and the full chrome-mcp-extension build. The extension + # target is KNOWN-BROKEN under nix-daemon at this pin (see oleks/mcp-chrome + # issue #1 close comment); expect attic to miss it until that's resolved. + mcp-chrome = { + url = "git+https://git.oleks.space/oleks/mcp-chrome?ref=main"; + inputs.nixpkgs.follows = "nixpkgs"; + }; }; outputs = @@ -53,6 +63,7 @@ nix-deps, stalewood, woodpecker-peek, + mcp-chrome, ... }: let @@ -127,6 +138,14 @@ # attic-cached binary via flake-hub's overlay, then set # services.woodpecker-peek.package = pkgs.woodpecker-peek;. woodpecker-peek = woodpecker-peek.packages.${sys}.default; + # mcp-chrome — Rust→wasm worker (proven green) plus the full + # chrome-mcp-extension build. The latter is KNOWN-BROKEN under + # nix-daemon at this pin; flake-hub CI will miss the cache on it + # until upstream resolves that. wasm-simd alone is what consumers + # actually pull cached today (commits 9534234, b276465 in + # oleks/mcp-chrome sync the built wasm back into the tree). + mcp-chrome-wasm-simd = mcp-chrome.packages.${sys}.wasm-simd; + mcp-chrome-extension = mcp-chrome.packages.${sys}.chrome-mcp-extension; }; # Overlay providing Hyprspace. Requires `pkgs.hyprland` to be present