From 35721007ed49c23798203700d38840a44f30a43e Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Fri, 19 Jun 2026 11:34:09 +0100 Subject: [PATCH] fix: install crawlers from current tap --- CHANGELOG.md | 4 ++++ README.md | 4 ---- .../BuiltInApps/BuiltInCrawlApps+Discrawl.swift | 2 +- .../BuiltInApps/BuiltInCrawlApps+Gitcrawl.swift | 2 +- .../BuiltInApps/BuiltInCrawlApps+Graincrawl.swift | 2 +- .../BuiltInApps/BuiltInCrawlApps+Notcrawl.swift | 2 +- .../BuiltInApps/BuiltInCrawlApps+Slacrawl.swift | 2 +- Sources/CrawlBarSelfTest/SelfTestConfig.swift | 11 ++++++++++- 8 files changed, 19 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 88b52bf..c536d89 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,10 @@ ## Unreleased +### Fixes + +- Install OpenClaw crawler apps from the current Homebrew tap instead of legacy formulas that lag released versions. + ## v0.3.0 - 2026-06-09 ### Changes diff --git a/README.md b/README.md index 531d7b1..2a70b64 100644 --- a/README.md +++ b/README.md @@ -64,13 +64,9 @@ script places it on PATH as `crawlbar`. ## Install ```sh -brew install vincentkoc/tap/crawlbar -# or brew install openclaw/tap/crawlbar ``` -The release also publishes the same formula to the OpenClaw Homebrew tap. - ## Config Main config lives at: diff --git a/Sources/CrawlBarCore/BuiltInApps/BuiltInCrawlApps+Discrawl.swift b/Sources/CrawlBarCore/BuiltInApps/BuiltInCrawlApps+Discrawl.swift index 3fc2a8c..d5bb39c 100644 --- a/Sources/CrawlBarCore/BuiltInApps/BuiltInCrawlApps+Discrawl.swift +++ b/Sources/CrawlBarCore/BuiltInApps/BuiltInCrawlApps+Discrawl.swift @@ -41,6 +41,6 @@ public extension BuiltInCrawlApps { .init(id: "discord", title: "Discord Access", optionIDs: ["discord_token"]), .init(id: "ai", title: "Embeddings", optionIDs: ["openai_api_key", "embedding_model"]), ], - install: .init(method: .homebrew, package: "vincentkoc/tap/discrawl")) + install: .init(method: .homebrew, package: "openclaw/tap/discrawl")) .withSuggestion(Self.appSuggest("Discord", ["com.hnc.Discord"])) } diff --git a/Sources/CrawlBarCore/BuiltInApps/BuiltInCrawlApps+Gitcrawl.swift b/Sources/CrawlBarCore/BuiltInApps/BuiltInCrawlApps+Gitcrawl.swift index cea4c5c..63d8427 100644 --- a/Sources/CrawlBarCore/BuiltInApps/BuiltInCrawlApps+Gitcrawl.swift +++ b/Sources/CrawlBarCore/BuiltInApps/BuiltInCrawlApps+Gitcrawl.swift @@ -39,6 +39,6 @@ public extension BuiltInCrawlApps { .init(id: "github", title: "GitHub Access", optionIDs: ["github_token"]), .init(id: "ai", title: "Embeddings", optionIDs: ["openai_api_key", "embedding_model"]), ], - install: .init(method: .homebrew, package: "vincentkoc/tap/gitcrawl")) + install: .init(method: .homebrew, package: "openclaw/tap/gitcrawl")) .withSuggestion(Self.alwaysSuggest("GitHub")) } diff --git a/Sources/CrawlBarCore/BuiltInApps/BuiltInCrawlApps+Graincrawl.swift b/Sources/CrawlBarCore/BuiltInApps/BuiltInCrawlApps+Graincrawl.swift index 42e9653..cfdbec9 100644 --- a/Sources/CrawlBarCore/BuiltInApps/BuiltInCrawlApps+Graincrawl.swift +++ b/Sources/CrawlBarCore/BuiltInApps/BuiltInCrawlApps+Graincrawl.swift @@ -41,6 +41,6 @@ public extension BuiltInCrawlApps { .init(id: "granola", title: "Granola", optionIDs: ["granola_profile", "preferred_source", "allow_private_api", "allow_desktop_cache"]), .init(id: "sync", title: "Sync", optionIDs: ["sync_limit"]), ], - install: .init(method: .homebrew, package: "vincentkoc/tap/graincrawl")) + install: .init(method: .homebrew, package: "openclaw/tap/graincrawl")) .withSuggestion(Self.appSuggest("Granola", ["com.granola.app"])) } diff --git a/Sources/CrawlBarCore/BuiltInApps/BuiltInCrawlApps+Notcrawl.swift b/Sources/CrawlBarCore/BuiltInApps/BuiltInCrawlApps+Notcrawl.swift index cb33841..7eae2f9 100644 --- a/Sources/CrawlBarCore/BuiltInApps/BuiltInCrawlApps+Notcrawl.swift +++ b/Sources/CrawlBarCore/BuiltInApps/BuiltInCrawlApps+Notcrawl.swift @@ -41,6 +41,6 @@ public extension BuiltInCrawlApps { .init(id: "notion", title: "Notion Access", optionIDs: ["notion_token"]), .init(id: "ai", title: "Embeddings", optionIDs: ["openai_api_key", "embedding_model"]), ], - install: .init(method: .homebrew, package: "vincentkoc/tap/notcrawl")) + install: .init(method: .homebrew, package: "openclaw/tap/notcrawl")) .withSuggestion(Self.appSuggest("Notion", ["notion.id"])) } diff --git a/Sources/CrawlBarCore/BuiltInApps/BuiltInCrawlApps+Slacrawl.swift b/Sources/CrawlBarCore/BuiltInApps/BuiltInCrawlApps+Slacrawl.swift index 415fa03..9a95f7a 100644 --- a/Sources/CrawlBarCore/BuiltInApps/BuiltInCrawlApps+Slacrawl.swift +++ b/Sources/CrawlBarCore/BuiltInApps/BuiltInCrawlApps+Slacrawl.swift @@ -40,6 +40,6 @@ public extension BuiltInCrawlApps { .init(id: "slack", title: "Slack Access", optionIDs: ["slack_token"]), .init(id: "ai", title: "Embeddings", optionIDs: ["openai_api_key", "embedding_model"]), ], - install: .init(method: .homebrew, package: "vincentkoc/tap/slacrawl")) + install: .init(method: .homebrew, package: "openclaw/tap/slacrawl")) .withSuggestion(Self.appSuggest("Slack", ["com.tinyspeck.slackmacgap"])) } diff --git a/Sources/CrawlBarSelfTest/SelfTestConfig.swift b/Sources/CrawlBarSelfTest/SelfTestConfig.swift index e9197ae..f9b1b6e 100644 --- a/Sources/CrawlBarSelfTest/SelfTestConfig.swift +++ b/Sources/CrawlBarSelfTest/SelfTestConfig.swift @@ -144,7 +144,16 @@ extension CrawlBarSelfTest { try Self.expect(secretStatusManifest.needsSecretsForStatus, "external secret status can opt into keychain reads") try Self.expect(BuiltInCrawlApps.slacrawl.privacy.containsPrivateMessages, "Slack privacy metadata flags local messages") try Self.expect(BuiltInCrawlApps.notcrawl.privacy.localOnlyScopes.contains("workspace pages"), "Notion privacy metadata flags workspace pages") - try Self.expect(BuiltInCrawlApps.slacrawl.install?.package == "vincentkoc/tap/slacrawl", "built-in install metadata exists") + let openClawTapApps = [ + BuiltInCrawlApps.gitcrawl, + BuiltInCrawlApps.slacrawl, + BuiltInCrawlApps.discrawl, + BuiltInCrawlApps.notcrawl, + BuiltInCrawlApps.graincrawl, + ] + try Self.expect( + openClawTapApps.allSatisfy { $0.install?.package.hasPrefix("openclaw/tap/") == true }, + "OpenClaw crawlers install from the current tap") try Self.expect(BuiltInCrawlApps.gogcli.availability == .available, "Google manifest is available") try Self.expect(BuiltInCrawlApps.gogcli.binary.name == "gog", "Google manifest uses the installed gog binary") try Self.expect(BuiltInCrawlApps.gogcli.commands["status"] == ["auth", "list", "--check", "--json", "--no-input"], "Google status is wired")