Skip to content

Changelog

RSS

New features, improvements, and fixes.

Bilingual changelog · English primary, Chinese translation

docsi18n

Changelog entries are now bilingual pairs: the primary file docs/changelog/<date>-<slug>.md is English, and <date>-<slug>.zh.md is the Chinese translation. The sync script generates the English tree (/changelog/<slug>) from the primary file and the Chinese tree (/zh/changelog/<slug>) from the .zh.md side; RSS, llms sections, and markdown alternates follow each tree’s language.

  • Fallback: when one side of a pair is missing, the other language’s entry fills the gap flagged untranslated, and the page plus its feed entry show the notice banner (This page has not been translated yet. / 本页暂未提供中文。) linking to the counterpart.
  • Sync / collections: scripts/sync-docs.mjs pairs repo files by base name and writes src/content/changelog/** (the changelog collection) and src/content/changelog-zh/** (the changelog-zh collection); both generated trees stay gitignored.
  • Routes: the English routes read changelog, the /zh routes and feeds read changelog-zh; the landing’s recent-changelog block still shows the newest entries, now with English titles.

English becomes the default · Chinese moves to /zh

docsi18n

English is now the site’s primary language: the root paths (/, /docs/**, /dev/**, /changelog) serve English directly, and Chinese moves entirely to /zh/** (/zh, /zh/docs/**, /zh/dev/**, /zh/changelog); the header’s EN / 中文 switch preserves the current path (/docs/overview/zh/docs/overview).

  • Mechanism: the docs collection holds the English tree (Nimbus versions.current: "en"), and docs-zh is mounted at /zh via versions.others; the old /en/** routes and the docs-en collection are removed.
  • Untranslated pages: spec / PRD / ADR in the English tree still show the Chinese source with This page has not been translated yet. at the top; the reverse case (an English page without Chinese) shows 本页暂未提供中文。 in the /zh tree. Neither notice can be dismissed.
  • Generation: scripts/sync-docs.mjs now writes the Chinese repo sources into both trees (the English tree flags the fallback with untranslated, the Chinese tree stays clean); the English architecture page goes to the root tree, the Chinese one to the /zh tree.
  • Metadata: the root llms.txt describes the English tree and links /zh/llms.txt; the root llms-full.txt is English; sitemap / canonical / markdown alternates / RSS are correct per tree; Pagefind still indexes both languages.

Docs site: /docs and /dev restructure · bilingual switch · mermaid pre-rendering

docsi18ndiagrams
  • Content restructure: /docs for user docs (overview / quickstart), /dev for developers and audit (architecture / spec / ADR), /changelog at the top level; both domains (botharness.ai / .dev) serve the same site. The header gains icon+text navigation (Docs / Development & Audit / Changelog) and highlights the current section.
  • Bilingual: English is mounted at /en/** (the docs-en collection + Nimbus versions mounting); the header’s 中/EN switch preserves the path (/docs/overview/en/docs/overview); user-facing pages are translated to English, and /en/dev/** plus the changelog fall back to Chinese with “本页暂未提供英文。”; Pagefind indexes both languages (en / zh-hans).
  • mermaid is now pre-rendered SVG: docs/architecture/diagrams/*.mmd are the sources; pnpm diagrams renders light + dark versions locally to rendered/*.svg (committed, so CI needs no browser); the site uses the <Diagram> component with a lightbox and no longer loads mermaid at runtime.
  • Known issue: SVG labels use foreignObject (needed for multi-line <br/>), so Safari’s <img> may not show the text; og:locale/JSON-LD are still hard-coded to zh.

Landing rebuilt on coss ui

docsdesign
  • The landing moved from Astryx to coss ui (Cal.com’s official design system: shadcn registry + Base UI + Tailwind v4); all Astryx dependencies were removed.
  • COSS components are copied in under apps/docs/src/components/coss/ (54 of them), with aliases.ui pointing there to avoid clashing with Nimbus’s own components.
  • Style reconciliation stays additive: only dark: variants are added (aligned with Nimbus’s [data-mode="dark"]) plus a few missing color mappings; no --nb-* token is changed.
  • The homepage is pared back to a restrained portal: hero (one-liner + quickstart command + CTA) → three path cards → compact capability block (six-state badges) → recent changelog; pure SSR, zero hydration.
  • Navigation icons switch to HugeIcons (@iconify-json/hugeicons).

Astryx landing page

docsdesign
  • The homepage switched to Meta’s Astryx design system: React 19 components, static SSR output, zero client hydration; docs pages keep Nimbus’s own components (split by environment).
  • Added a single source of truth for brand tokens, design/tokens.css; on the Astryx side, apps/docs/src/styles/astryx.css declares the layer order explicitly (reset, theme, base, astryx-base, astryx-theme, components, utilities, landing).
  • Astryx CSS loads only on the homepage route (build check: 181 KB, referenced only by index.html); docs pages carry zero extra weight. If it needs to be leaner later, an Astryx source build can bundle only the components in use.
  • Homepage content: hero (Badge / H1 / Lead / CTA), four capability cards (PersonaBot / memory as files / visible state / no fork), why, docs entry points, footer.

v1.0 baseline · M1 skeleton · docs site launch

milestonedocscore

v1.0 baseline

  • Spec restructure: the platform layer (PersonaBot / memory / state / working style) becomes its own docs/botharness.md; PRD.md now covers only the DeepSeekBot app.
  • New decisions: ADR-0015 (BotHarness is a DSH plugin layer, no fork), ADR-0016 (PersonaBot as a first-class entity + two-layer state), ADR-0017 (work = session, no Task entity), ADR-0018 (Workspace = single directory).
  • Repository renamed to BotHarness/BotHarness; glossary rewritten (PersonaBot / Agent / Session / Workspace / six states).

M1: BotHarness skeleton (PR #13)

  • @botharness/core: PersonaBot registry (atomic bot.json writes, unique slugs, configurable memory directory), bot home, state model (Session’s five states → aggregation + three events), settings namespace and provide('botharness').
  • The original M1 scaffold moves into packages/core; workspace→bot resolution is downgraded to an IM binding helper.
  • All 38 tests green; merged after a three-axis code review (Standards / Spec / Test economy).

Docs site

  • Built apps/docs on Nimbus (Astro 7), deployed to Cloudflare Workers, domain botharness.ai (.dev 301).
  • Architecture and data flow are maintained in docs/architecture/botharness-architecture.md; this page and the site sync from it automatically.

Type to search…

↑↓ navigate↵ selectEsc close