diff --git a/CHANGELOG.md b/CHANGELOG.md index ea9dd2c5..54842fb7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -29,6 +29,7 @@ - Fix duplicated Devin session transcripts in the dashboard. Devin stores a session's messages as a **forest** (`node_id`/`parent_node_id`) and replays earlier context under fresh roots each turn, so a 10-message conversation is stored as 26-31 nodes — the parser read every node and rendered each message 2-4×. Now reconstructs the real conversation (walk `parent_node_id` from the newest leaf to its root, reversed) via `devinActiveConversationPath`. (#508) ### Docs +- Migrate the community Discord link from `discord.gg/2zjBZP7yQJ` to the branded `https://discord.befailproof.ai/` everywhere it's user-facing: the `failproofai --help` LINKS banner, the branded launch banner (`tui.ts`), the dashboard "Reach Us" dropdown, the docs-site footer, and the README community badge (English + 15 translations). (#539) - Restructure the docs-site navigation so the two products are top-level tabs — **Agent Observability** (AgentEye) and **Agent Enforcement** (FailproofAI) — instead of a product dropdown; each product's Docs/Examples groups move into the sidebar and the tab icons are dropped. Verified idempotent against the `translate-docs` nav regenerator and safe from the AgentEye doc-sync pipeline (which never touches `docs.json`). (#517) - Make the README's 12-CLI logo grid responsive: replace the two inline-image paragraphs (which re-wrapped into ragged 5+1 rows on narrow windows) with a 6-column table that stays 2×6 at every width, scrolling horizontally on very narrow screens instead of collapsing. Keeps every logo's link and light/dark `` variant. (#516) - Backfill **OpenClaw** into the user-facing supported-CLI docs (README + `configuration` / `getting-started` / `introduction`) — it shipped as a wired integration but was never added to those lists. (#508) diff --git a/README.md b/README.md index 543dff7f..c8446473 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ [![npm](https://img.shields.io/npm/v/failproofai?style=flat-square&color=CB3837)](https://www.npmjs.com/package/failproofai) [![CI](https://img.shields.io/github/actions/workflow/status/failproofai/failproofai/ci.yml?branch=main&style=flat-square&label=CI)](https://github.com/failproofai/failproofai/actions) [![Supply Chain](https://img.shields.io/badge/supply%20chain-secure-brightgreen?style=flat-square)](https://github.com/failproofai/failproofai/actions/workflows/osv-scanner.yml) -[![Discord](https://img.shields.io/badge/Discord-join%20us-5865F2?style=flat-square&logo=discord)](https://discord.gg/2zjBZP7yQJ) +[![Discord](https://img.shields.io/badge/Discord-join%20us-5865F2?style=flat-square&logo=discord)](https://discord.befailproof.ai/) [![Docs](https://img.shields.io/badge/docs-befailproof.ai-002CA7?style=flat-square)](https://docs.befailproof.ai/introduction) [![License](https://img.shields.io/badge/license-MIT%20%2B%20Commons%20Clause-blue?style=flat-square)](./LICENSE) diff --git a/__tests__/components/reach-developers.test.tsx b/__tests__/components/reach-developers.test.tsx index f5267413..5bca7864 100644 --- a/__tests__/components/reach-developers.test.tsx +++ b/__tests__/components/reach-developers.test.tsx @@ -35,7 +35,7 @@ describe("ReachDevelopers", () => { await user.click(btn); const discordLink = screen.getByText("Join our Discord").closest("a"); - expect(discordLink).toHaveAttribute("href", "https://discord.gg/2zjBZP7yQJ"); + expect(discordLink).toHaveAttribute("href", "https://discord.befailproof.ai/"); const feedbackLink = screen.getByText("Feedback & Issues").closest("a"); expect(feedbackLink).toHaveAttribute( diff --git a/bin/failproofai.mjs b/bin/failproofai.mjs index ac69f942..ff9ed1db 100755 --- a/bin/failproofai.mjs +++ b/bin/failproofai.mjs @@ -209,7 +209,7 @@ EXAMPLES LINKS ⭐ Star us: https://github.com/failproofai/failproofai 📖 Docs: https://docs.befailproof.ai/introduction - 💬 Discord: https://discord.gg/2zjBZP7yQJ + 💬 Discord: https://discord.befailproof.ai/ `.trimStart()); process.exit(0); } diff --git a/components/reach-developers.tsx b/components/reach-developers.tsx index 32af376e..47a71f6b 100644 --- a/components/reach-developers.tsx +++ b/components/reach-developers.tsx @@ -25,7 +25,7 @@ const options = [ { label: "Join our Discord", icon: MessageCircle, - href: "https://discord.gg/2zjBZP7yQJ", + href: "https://discord.befailproof.ai/", color: "#5865f2", bg: "rgba(88,101,242,0.08)", }, diff --git a/docs/docs.json b/docs/docs.json index e79e4d5b..4549a06b 100644 --- a/docs/docs.json +++ b/docs/docs.json @@ -1679,7 +1679,7 @@ }, { "anchor": "Discord", - "href": "https://discord.gg/2zjBZP7yQJ", + "href": "https://discord.befailproof.ai/", "icon": "discord" } ] diff --git a/docs/i18n/README.ar.md b/docs/i18n/README.ar.md index c159d96f..118596c3 100644 --- a/docs/i18n/README.ar.md +++ b/docs/i18n/README.ar.md @@ -13,7 +13,7 @@ [![npm](https://img.shields.io/npm/v/failproofai?style=flat-square&color=CB3837)](https://www.npmjs.com/package/failproofai) [![CI](https://img.shields.io/github/actions/workflow/status/failproofai/failproofai/ci.yml?branch=main&style=flat-square&label=CI)](https://github.com/failproofai/failproofai/actions) [![Supply Chain](https://img.shields.io/badge/supply%20chain-secure-brightgreen?style=flat-square)](https://github.com/failproofai/failproofai/actions/workflows/osv-scanner.yml) -[![Discord](https://img.shields.io/badge/Discord-join%20us-5865F2?style=flat-square&logo=discord)](https://discord.gg/2zjBZP7yQJ) +[![Discord](https://img.shields.io/badge/Discord-join%20us-5865F2?style=flat-square&logo=discord)](https://discord.befailproof.ai/) [![Docs](https://img.shields.io/badge/docs-befailproof.ai-002CA7?style=flat-square)](https://docs.befailproof.ai/introduction) [![License](https://img.shields.io/badge/license-MIT%20%2B%20Commons%20Clause-blue?style=flat-square)](./LICENSE) diff --git a/docs/i18n/README.de.md b/docs/i18n/README.de.md index f647e879..425dff17 100644 --- a/docs/i18n/README.de.md +++ b/docs/i18n/README.de.md @@ -11,7 +11,7 @@ [![npm](https://img.shields.io/npm/v/failproofai?style=flat-square&color=CB3837)](https://www.npmjs.com/package/failproofai) [![CI](https://img.shields.io/github/actions/workflow/status/failproofai/failproofai/ci.yml?branch=main&style=flat-square&label=CI)](https://github.com/failproofai/failproofai/actions) [![Supply Chain](https://img.shields.io/badge/supply%20chain-secure-brightgreen?style=flat-square)](https://github.com/failproofai/failproofai/actions/workflows/osv-scanner.yml) -[![Discord](https://img.shields.io/badge/Discord-join%20us-5865F2?style=flat-square&logo=discord)](https://discord.gg/2zjBZP7yQJ) +[![Discord](https://img.shields.io/badge/Discord-join%20us-5865F2?style=flat-square&logo=discord)](https://discord.befailproof.ai/) [![Docs](https://img.shields.io/badge/docs-befailproof.ai-002CA7?style=flat-square)](https://docs.befailproof.ai/introduction) [![License](https://img.shields.io/badge/license-MIT%20%2B%20Commons%20Clause-blue?style=flat-square)](./LICENSE) diff --git a/docs/i18n/README.es.md b/docs/i18n/README.es.md index dd9c7bc1..a49fccae 100644 --- a/docs/i18n/README.es.md +++ b/docs/i18n/README.es.md @@ -11,7 +11,7 @@ [![npm](https://img.shields.io/npm/v/failproofai?style=flat-square&color=CB3837)](https://www.npmjs.com/package/failproofai) [![CI](https://img.shields.io/github/actions/workflow/status/failproofai/failproofai/ci.yml?branch=main&style=flat-square&label=CI)](https://github.com/failproofai/failproofai/actions) [![Supply Chain](https://img.shields.io/badge/supply%20chain-secure-brightgreen?style=flat-square)](https://github.com/failproofai/failproofai/actions/workflows/osv-scanner.yml) -[![Discord](https://img.shields.io/badge/Discord-join%20us-5865F2?style=flat-square&logo=discord)](https://discord.gg/2zjBZP7yQJ) +[![Discord](https://img.shields.io/badge/Discord-join%20us-5865F2?style=flat-square&logo=discord)](https://discord.befailproof.ai/) [![Docs](https://img.shields.io/badge/docs-befailproof.ai-002CA7?style=flat-square)](https://docs.befailproof.ai/introduction) [![License](https://img.shields.io/badge/license-MIT%20%2B%20Commons%20Clause-blue?style=flat-square)](./LICENSE) diff --git a/docs/i18n/README.fr.md b/docs/i18n/README.fr.md index 1396260f..5a203922 100644 --- a/docs/i18n/README.fr.md +++ b/docs/i18n/README.fr.md @@ -11,7 +11,7 @@ [![npm](https://img.shields.io/npm/v/failproofai?style=flat-square&color=CB3837)](https://www.npmjs.com/package/failproofai) [![CI](https://img.shields.io/github/actions/workflow/status/failproofai/failproofai/ci.yml?branch=main&style=flat-square&label=CI)](https://github.com/failproofai/failproofai/actions) [![Supply Chain](https://img.shields.io/badge/supply%20chain-secure-brightgreen?style=flat-square)](https://github.com/failproofai/failproofai/actions/workflows/osv-scanner.yml) -[![Discord](https://img.shields.io/badge/Discord-join%20us-5865F2?style=flat-square&logo=discord)](https://discord.gg/2zjBZP7yQJ) +[![Discord](https://img.shields.io/badge/Discord-join%20us-5865F2?style=flat-square&logo=discord)](https://discord.befailproof.ai/) [![Docs](https://img.shields.io/badge/docs-befailproof.ai-002CA7?style=flat-square)](https://docs.befailproof.ai/introduction) [![License](https://img.shields.io/badge/license-MIT%20%2B%20Commons%20Clause-blue?style=flat-square)](./LICENSE) diff --git a/docs/i18n/README.he.md b/docs/i18n/README.he.md index 80d2838f..a0247b45 100644 --- a/docs/i18n/README.he.md +++ b/docs/i18n/README.he.md @@ -13,7 +13,7 @@ [![npm](https://img.shields.io/npm/v/failproofai?style=flat-square&color=CB3837)](https://www.npmjs.com/package/failproofai) [![CI](https://img.shields.io/github/actions/workflow/status/failproofai/failproofai/ci.yml?branch=main&style=flat-square&label=CI)](https://github.com/failproofai/failproofai/actions) [![Supply Chain](https://img.shields.io/badge/supply%20chain-secure-brightgreen?style=flat-square)](https://github.com/failproofai/failproofai/actions/workflows/osv-scanner.yml) -[![Discord](https://img.shields.io/badge/Discord-join%20us-5865F2?style=flat-square&logo=discord)](https://discord.gg/2zjBZP7yQJ) +[![Discord](https://img.shields.io/badge/Discord-join%20us-5865F2?style=flat-square&logo=discord)](https://discord.befailproof.ai/) [![Docs](https://img.shields.io/badge/docs-befailproof.ai-002CA7?style=flat-square)](https://docs.befailproof.ai/introduction) [![License](https://img.shields.io/badge/license-MIT%20%2B%20Commons%20Clause-blue?style=flat-square)](./LICENSE) diff --git a/docs/i18n/README.hi.md b/docs/i18n/README.hi.md index cfd9e882..77d603d1 100644 --- a/docs/i18n/README.hi.md +++ b/docs/i18n/README.hi.md @@ -11,7 +11,7 @@ [![npm](https://img.shields.io/npm/v/failproofai?style=flat-square&color=CB3837)](https://www.npmjs.com/package/failproofai) [![CI](https://img.shields.io/github/actions/workflow/status/failproofai/failproofai/ci.yml?branch=main&style=flat-square&label=CI)](https://github.com/failproofai/failproofai/actions) [![Supply Chain](https://img.shields.io/badge/supply%20chain-secure-brightgreen?style=flat-square)](https://github.com/failproofai/failproofai/actions/workflows/osv-scanner.yml) -[![Discord](https://img.shields.io/badge/Discord-join%20us-5865F2?style=flat-square&logo=discord)](https://discord.gg/2zjBZP7yQJ) +[![Discord](https://img.shields.io/badge/Discord-join%20us-5865F2?style=flat-square&logo=discord)](https://discord.befailproof.ai/) [![Docs](https://img.shields.io/badge/docs-befailproof.ai-002CA7?style=flat-square)](https://docs.befailproof.ai/introduction) [![License](https://img.shields.io/badge/license-MIT%20%2B%20Commons%20Clause-blue?style=flat-square)](./LICENSE) diff --git a/docs/i18n/README.it.md b/docs/i18n/README.it.md index 368861c2..b5cfe531 100644 --- a/docs/i18n/README.it.md +++ b/docs/i18n/README.it.md @@ -11,7 +11,7 @@ [![npm](https://img.shields.io/npm/v/failproofai?style=flat-square&color=CB3837)](https://www.npmjs.com/package/failproofai) [![CI](https://img.shields.io/github/actions/workflow/status/failproofai/failproofai/ci.yml?branch=main&style=flat-square&label=CI)](https://github.com/failproofai/failproofai/actions) [![Supply Chain](https://img.shields.io/badge/supply%20chain-secure-brightgreen?style=flat-square)](https://github.com/failproofai/failproofai/actions/workflows/osv-scanner.yml) -[![Discord](https://img.shields.io/badge/Discord-join%20us-5865F2?style=flat-square&logo=discord)](https://discord.gg/2zjBZP7yQJ) +[![Discord](https://img.shields.io/badge/Discord-join%20us-5865F2?style=flat-square&logo=discord)](https://discord.befailproof.ai/) [![Docs](https://img.shields.io/badge/docs-befailproof.ai-002CA7?style=flat-square)](https://docs.befailproof.ai/introduction) [![License](https://img.shields.io/badge/license-MIT%20%2B%20Commons%20Clause-blue?style=flat-square)](./LICENSE) diff --git a/docs/i18n/README.ja.md b/docs/i18n/README.ja.md index 8e08c2e9..5343066a 100644 --- a/docs/i18n/README.ja.md +++ b/docs/i18n/README.ja.md @@ -11,7 +11,7 @@ [![npm](https://img.shields.io/npm/v/failproofai?style=flat-square&color=CB3837)](https://www.npmjs.com/package/failproofai) [![CI](https://img.shields.io/github/actions/workflow/status/failproofai/failproofai/ci.yml?branch=main&style=flat-square&label=CI)](https://github.com/failproofai/failproofai/actions) [![Supply Chain](https://img.shields.io/badge/supply%20chain-secure-brightgreen?style=flat-square)](https://github.com/failproofai/failproofai/actions/workflows/osv-scanner.yml) -[![Discord](https://img.shields.io/badge/Discord-join%20us-5865F2?style=flat-square&logo=discord)](https://discord.gg/2zjBZP7yQJ) +[![Discord](https://img.shields.io/badge/Discord-join%20us-5865F2?style=flat-square&logo=discord)](https://discord.befailproof.ai/) [![Docs](https://img.shields.io/badge/docs-befailproof.ai-002CA7?style=flat-square)](https://docs.befailproof.ai/introduction) [![License](https://img.shields.io/badge/license-MIT%20%2B%20Commons%20Clause-blue?style=flat-square)](./LICENSE) diff --git a/docs/i18n/README.ko.md b/docs/i18n/README.ko.md index 7ddf52c3..fafec8b9 100644 --- a/docs/i18n/README.ko.md +++ b/docs/i18n/README.ko.md @@ -11,7 +11,7 @@ [![npm](https://img.shields.io/npm/v/failproofai?style=flat-square&color=CB3837)](https://www.npmjs.com/package/failproofai) [![CI](https://img.shields.io/github/actions/workflow/status/failproofai/failproofai/ci.yml?branch=main&style=flat-square&label=CI)](https://github.com/failproofai/failproofai/actions) [![Supply Chain](https://img.shields.io/badge/supply%20chain-secure-brightgreen?style=flat-square)](https://github.com/failproofai/failproofai/actions/workflows/osv-scanner.yml) -[![Discord](https://img.shields.io/badge/Discord-join%20us-5865F2?style=flat-square&logo=discord)](https://discord.gg/2zjBZP7yQJ) +[![Discord](https://img.shields.io/badge/Discord-join%20us-5865F2?style=flat-square&logo=discord)](https://discord.befailproof.ai/) [![Docs](https://img.shields.io/badge/docs-befailproof.ai-002CA7?style=flat-square)](https://docs.befailproof.ai/introduction) [![License](https://img.shields.io/badge/license-MIT%20%2B%20Commons%20Clause-blue?style=flat-square)](./LICENSE) diff --git a/docs/i18n/README.pt-br.md b/docs/i18n/README.pt-br.md index 5039de03..8cd8d681 100644 --- a/docs/i18n/README.pt-br.md +++ b/docs/i18n/README.pt-br.md @@ -11,7 +11,7 @@ [![npm](https://img.shields.io/npm/v/failproofai?style=flat-square&color=CB3837)](https://www.npmjs.com/package/failproofai) [![CI](https://img.shields.io/github/actions/workflow/status/failproofai/failproofai/ci.yml?branch=main&style=flat-square&label=CI)](https://github.com/failproofai/failproofai/actions) [![Supply Chain](https://img.shields.io/badge/supply%20chain-secure-brightgreen?style=flat-square)](https://github.com/failproofai/failproofai/actions/workflows/osv-scanner.yml) -[![Discord](https://img.shields.io/badge/Discord-join%20us-5865F2?style=flat-square&logo=discord)](https://discord.gg/2zjBZP7yQJ) +[![Discord](https://img.shields.io/badge/Discord-join%20us-5865F2?style=flat-square&logo=discord)](https://discord.befailproof.ai/) [![Docs](https://img.shields.io/badge/docs-befailproof.ai-002CA7?style=flat-square)](https://docs.befailproof.ai/introduction) [![License](https://img.shields.io/badge/license-MIT%20%2B%20Commons%20Clause-blue?style=flat-square)](./LICENSE) diff --git a/docs/i18n/README.ru.md b/docs/i18n/README.ru.md index b7d7356e..c339b1a4 100644 --- a/docs/i18n/README.ru.md +++ b/docs/i18n/README.ru.md @@ -11,7 +11,7 @@ [![npm](https://img.shields.io/npm/v/failproofai?style=flat-square&color=CB3837)](https://www.npmjs.com/package/failproofai) [![CI](https://img.shields.io/github/actions/workflow/status/failproofai/failproofai/ci.yml?branch=main&style=flat-square&label=CI)](https://github.com/failproofai/failproofai/actions) [![Supply Chain](https://img.shields.io/badge/supply%20chain-secure-brightgreen?style=flat-square)](https://github.com/failproofai/failproofai/actions/workflows/osv-scanner.yml) -[![Discord](https://img.shields.io/badge/Discord-join%20us-5865F2?style=flat-square&logo=discord)](https://discord.gg/2zjBZP7yQJ) +[![Discord](https://img.shields.io/badge/Discord-join%20us-5865F2?style=flat-square&logo=discord)](https://discord.befailproof.ai/) [![Docs](https://img.shields.io/badge/docs-befailproof.ai-002CA7?style=flat-square)](https://docs.befailproof.ai/introduction) [![License](https://img.shields.io/badge/license-MIT%20%2B%20Commons%20Clause-blue?style=flat-square)](./LICENSE) diff --git a/docs/i18n/README.tr.md b/docs/i18n/README.tr.md index 0ebdf104..5e9909fd 100644 --- a/docs/i18n/README.tr.md +++ b/docs/i18n/README.tr.md @@ -11,7 +11,7 @@ [![npm](https://img.shields.io/npm/v/failproofai?style=flat-square&color=CB3837)](https://www.npmjs.com/package/failproofai) [![CI](https://img.shields.io/github/actions/workflow/status/failproofai/failproofai/ci.yml?branch=main&style=flat-square&label=CI)](https://github.com/failproofai/failproofai/actions) [![Supply Chain](https://img.shields.io/badge/supply%20chain-secure-brightgreen?style=flat-square)](https://github.com/failproofai/failproofai/actions/workflows/osv-scanner.yml) -[![Discord](https://img.shields.io/badge/Discord-join%20us-5865F2?style=flat-square&logo=discord)](https://discord.gg/2zjBZP7yQJ) +[![Discord](https://img.shields.io/badge/Discord-join%20us-5865F2?style=flat-square&logo=discord)](https://discord.befailproof.ai/) [![Docs](https://img.shields.io/badge/docs-befailproof.ai-002CA7?style=flat-square)](https://docs.befailproof.ai/introduction) [![License](https://img.shields.io/badge/license-MIT%20%2B%20Commons%20Clause-blue?style=flat-square)](./LICENSE) diff --git a/docs/i18n/README.vi.md b/docs/i18n/README.vi.md index 2ba5c51c..ea64eb01 100644 --- a/docs/i18n/README.vi.md +++ b/docs/i18n/README.vi.md @@ -11,7 +11,7 @@ [![npm](https://img.shields.io/npm/v/failproofai?style=flat-square&color=CB3837)](https://www.npmjs.com/package/failproofai) [![CI](https://img.shields.io/github/actions/workflow/status/failproofai/failproofai/ci.yml?branch=main&style=flat-square&label=CI)](https://github.com/failproofai/failproofai/actions) [![Supply Chain](https://img.shields.io/badge/supply%20chain-secure-brightgreen?style=flat-square)](https://github.com/failproofai/failproofai/actions/workflows/osv-scanner.yml) -[![Discord](https://img.shields.io/badge/Discord-join%20us-5865F2?style=flat-square&logo=discord)](https://discord.gg/2zjBZP7yQJ) +[![Discord](https://img.shields.io/badge/Discord-join%20us-5865F2?style=flat-square&logo=discord)](https://discord.befailproof.ai/) [![Docs](https://img.shields.io/badge/docs-befailproof.ai-002CA7?style=flat-square)](https://docs.befailproof.ai/introduction) [![License](https://img.shields.io/badge/license-MIT%20%2B%20Commons%20Clause-blue?style=flat-square)](./LICENSE) diff --git a/docs/i18n/README.zh.md b/docs/i18n/README.zh.md index 83ae5fdd..2e6b86e9 100644 --- a/docs/i18n/README.zh.md +++ b/docs/i18n/README.zh.md @@ -11,7 +11,7 @@ [![npm](https://img.shields.io/npm/v/failproofai?style=flat-square&color=CB3837)](https://www.npmjs.com/package/failproofai) [![CI](https://img.shields.io/github/actions/workflow/status/failproofai/failproofai/ci.yml?branch=main&style=flat-square&label=CI)](https://github.com/failproofai/failproofai/actions) [![Supply Chain](https://img.shields.io/badge/supply%20chain-secure-brightgreen?style=flat-square)](https://github.com/failproofai/failproofai/actions/workflows/osv-scanner.yml) -[![Discord](https://img.shields.io/badge/Discord-join%20us-5865F2?style=flat-square&logo=discord)](https://discord.gg/2zjBZP7yQJ) +[![Discord](https://img.shields.io/badge/Discord-join%20us-5865F2?style=flat-square&logo=discord)](https://discord.befailproof.ai/) [![Docs](https://img.shields.io/badge/docs-befailproof.ai-002CA7?style=flat-square)](https://docs.befailproof.ai/introduction) [![License](https://img.shields.io/badge/license-MIT%20%2B%20Commons%20Clause-blue?style=flat-square)](./LICENSE) diff --git a/src/hooks/tui.ts b/src/hooks/tui.ts index e2debc4b..8b42e366 100644 --- a/src/hooks/tui.ts +++ b/src/hooks/tui.ts @@ -287,7 +287,7 @@ export function renderLaunchBanner(version: string, stdout: TTYOut = process.std row("version", c.pink(version)), row("star", c.dim("https://github.com/failproofai/failproofai")), row("docs", c.dim("https://docs.befailproof.ai/introduction")), - row("discord", c.dim("https://discord.gg/2zjBZP7yQJ")), + row("discord", c.dim("https://discord.befailproof.ai/")), "", ]; }