mirror of
https://github.com/nearai/ironclaw.git
synced 2026-09-03 08:06:01 +08:00
* release(docs): deploy public docs from a docs-live branch moved by stable releases The Mintlify GitHub App deployed docs/ on every push to main, so the public site described unreleased behavior while binaries shipped from ironclaw-v* tags — the root cause behind #7317's drift reports. The site now tracks the latest stable release: - .github/workflows/ironclaw-release.yml: new publish-docs-live job (after host, prerelease-guarded via the dist manifest's announcement_is_prerelease) force-updates refs/heads/docs-live to the released commit through the GitHub refs API, bootstrapping the branch on first run. Forced by design: successive stable tags need not be ancestor-related, and docs-live is a pointer, not a history. The Mintlify dashboard repoint to docs-live is the one out-of-repo step, documented in the release strategy. - scripts/ci/ws12_workflow_contracts.py: the job, the branch ref, and the prerelease guard join REQUIRED_MARKERS so a cargo-dist regeneration that drops the hand-added job fails Code Style instead of silently unhooking docs publication. - docs/changelog.mdx (new, in en nav under a Releases group): human-curated <Update> entry per stable release, seeded with v1.1.0 and v1.0.0 from the GitHub release notes; links tagged docs trees for older releases instead of maintaining versioned page sets. - scripts/ci/cut_ironclaw_release.py: ensure_stable_changelog_entry — a stable (non-rc) cut refuses when the candidate commit's changelog lacks the release's vX.Y.Z entry, with an actionable message; rc cuts are exempt so the freeze/blocker flow is unimpeded. Five new cases in test_cut_ironclaw_release.py (missing entry, missing file, present entry, rc exemption, malformed-version deferral to the canonical validator). - docs/internal/weekly-release-strategy.md: Monday checklist writes the changelog entry on the release branch; promotion notes the automatic docs-live repoint; new "Docs publication" section records the dashboard configuration, post-promotion verification, branch-protection recommendation, emergency manual repoint, and older-release access. End-to-end proof of the workflow job rides the next stable release; until the Mintlify dashboard is repointed the site keeps deploying from main, so the rollout order is: merge, repoint the dashboard, then the next stable tag takes over. Part of #7317 (doc-truth pipeline, PR 4 of 5). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * release(docs): harden the docs-live chain after review Three gaps found reviewing the pipeline end to end: - Changelog history loss: the runbook told the release owner to write the changelog entry on the frozen release branch, which is never merged back — next week's candidate, cut from main, would ship a changelog missing the release and docs-live would silently drop it. The entry now lands on main before the Monday cut; the gate's message and the runbook say so, with a cherry-pick fallback. - Substring gate false-pass: the stable gate accepted any 'vX.Y.Z' substring, so an rc-labeled entry (description="vX.Y.Z-rc.1") or a prose mention satisfied it. It now requires the exact description="vX.Y.Z" attribute; both cases pinned in tests. - Backwards repoint: re-running an older release's workflow would force-move docs-live to the older commit and silently revert the live site. publish-docs-live now moves the pointer only when its own tag is the newest stable ironclaw-v* tag, and the guard is pinned in ws12 REQUIRED_MARKERS so regeneration cannot drop it. The runbook also gains the docs-hotfix recipe (publish tag+fix, never main) and spells out that docs-live branch protection must allow force pushes or it 422s the automation. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * release(docs): match a real changelog Update tag and fail the repoint closed Post-review hardening: the stable gate now requires the version on an actual <Update> tag (lookalike attributes and other elements refuse, with a regression test); the publish-docs-live step runs under set -euo pipefail and rejects empty tag discovery instead of silently skipping; ws12 pins the backward-repoint comparison itself; comments trimmed and the public changelog no longer overclaims while the dashboard still deploys from main. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * release(docs): close the review-round gaps in the docs-live chain Seed the changelog with v1.2.0 (already-shipped stable whose branch never merges back), put ironclaw-release.yml in code_style's has_code scope and pin that semantically in ws12, bootstrap docs-live via POST only when the branch truly does not exist so protection 422s surface as themselves, drive the changelog gate through main() in tests, restore the emergency paragraph to its own runbook section, and tell contributors docs reach the live site with the next stable release. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
410 lines
11 KiB
JSON
410 lines
11 KiB
JSON
{
|
|
"$schema": "https://mintlify.com/docs.json",
|
|
"theme": "almond",
|
|
"name": "IronClaw",
|
|
"colors": {
|
|
"primary": "#1191f0",
|
|
"light": "#1191f0",
|
|
"dark": "#1191f0"
|
|
},
|
|
"favicon": "/images/logo/favicon.ico",
|
|
"logo": {
|
|
"light": "/images/logo/logo.svg",
|
|
"dark": "/images/logo/logo-dark.svg"
|
|
},
|
|
"navbar": {
|
|
"links": [
|
|
{
|
|
"label": "Get Support",
|
|
"href": "https://t.me/ironclawAI"
|
|
}
|
|
],
|
|
"primary": {
|
|
"type": "button",
|
|
"label": "Deploy Now",
|
|
"href": "https://agent.near.ai/"
|
|
}
|
|
},
|
|
"navigation": {
|
|
"languages": [
|
|
{
|
|
"language": "en",
|
|
"tabs": [
|
|
{
|
|
"tab": " ",
|
|
"groups": [
|
|
{
|
|
"group": " ",
|
|
"pages": [
|
|
"index",
|
|
"quickstart",
|
|
"onboard"
|
|
]
|
|
},
|
|
{
|
|
"group": "Using IronClaw",
|
|
"icon": "play",
|
|
"pages": [
|
|
"using/webui",
|
|
"using/cli",
|
|
"using/service"
|
|
]
|
|
},
|
|
{
|
|
"group": "Capabilities",
|
|
"icon": "cubes",
|
|
"pages": [
|
|
"capabilities/overview",
|
|
"capabilities/llm-providers",
|
|
{
|
|
"group": "Core Capabilities",
|
|
"pages": [
|
|
"security",
|
|
"capabilities/database",
|
|
"capabilities/configuration",
|
|
{
|
|
"group": "Memory",
|
|
"pages": [
|
|
"capabilities/memory/memory",
|
|
"capabilities/memory/identity"
|
|
]
|
|
},
|
|
{
|
|
"group": "Routines",
|
|
"pages": [
|
|
"capabilities/routines/cron",
|
|
"capabilities/routines/heartbeat",
|
|
"capabilities/routines/reactive"
|
|
]
|
|
},
|
|
{
|
|
"group": "Jobs",
|
|
"pages": [
|
|
"capabilities/jobs/jobs",
|
|
"capabilities/jobs/self-repair"
|
|
]
|
|
},
|
|
"capabilities/skills",
|
|
"capabilities/sandboxed-tools",
|
|
"capabilities/traces"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"group": "Channels",
|
|
"icon": "message",
|
|
"pages": [
|
|
"channels/overview",
|
|
"channels/slack",
|
|
"channels/telegram"
|
|
]
|
|
},
|
|
{
|
|
"group": "IronHub",
|
|
"icon": "archive",
|
|
"pages": [
|
|
"hub/overview",
|
|
"hub/installing",
|
|
"hub/contributing"
|
|
]
|
|
},
|
|
{
|
|
"group": "API",
|
|
"icon": "code",
|
|
"pages": [
|
|
"api/responses"
|
|
]
|
|
},
|
|
{
|
|
"group": "Extensions (Tools)",
|
|
"icon": "hammer",
|
|
"pages": [
|
|
"extensions/overview",
|
|
{
|
|
"group": "Built-in Extensions",
|
|
"pages": [
|
|
"extensions/file-tools",
|
|
"extensions/github",
|
|
{
|
|
"group": "Google",
|
|
"pages": [
|
|
"extensions/google/oauth-setup",
|
|
"extensions/google/gmail",
|
|
"extensions/google/calendar",
|
|
"extensions/google/docs",
|
|
"extensions/google/drive",
|
|
"extensions/google/sheets",
|
|
"extensions/google/slides"
|
|
]
|
|
},
|
|
"extensions/mcp",
|
|
"extensions/web-search",
|
|
"extensions/shell"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"group": "Tutorials",
|
|
"icon": "graduation-cap",
|
|
"pages": [
|
|
"extensions/building-a-tool",
|
|
"channels/building-a-channel",
|
|
{
|
|
"group": "How to host IronClaw on...",
|
|
"pages": [
|
|
"infrastructure/droplet",
|
|
"infrastructure/google",
|
|
"infrastructure/amazon"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"group": "Releases",
|
|
"icon": "clock-rotate-left",
|
|
"pages": [
|
|
"changelog"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"language": "zh",
|
|
"navbar": {
|
|
"links": [
|
|
{
|
|
"label": "支持",
|
|
"href": "https://t.me/ironclawAI"
|
|
}
|
|
],
|
|
"primary": {
|
|
"type": "button",
|
|
"label": "立即部署",
|
|
"href": "https://agent.near.ai/"
|
|
}
|
|
},
|
|
"tabs": [
|
|
{
|
|
"tab": " ",
|
|
"groups": [
|
|
{
|
|
"group": " ",
|
|
"pages": [
|
|
"zh/index",
|
|
"zh/quickstart",
|
|
"zh/onboard"
|
|
]
|
|
},
|
|
{
|
|
"group": "核心能力",
|
|
"icon": "cubes",
|
|
"pages": [
|
|
"zh/capabilities/overview",
|
|
{
|
|
"group": "核心能力",
|
|
"pages": [
|
|
"zh/security",
|
|
{
|
|
"group": "记忆",
|
|
"pages": [
|
|
"zh/capabilities/memory/memory",
|
|
"zh/capabilities/memory/identity"
|
|
]
|
|
},
|
|
{
|
|
"group": "例程",
|
|
"pages": [
|
|
"zh/capabilities/routines/cron",
|
|
"zh/capabilities/routines/heartbeat",
|
|
"zh/capabilities/routines/reactive"
|
|
]
|
|
},
|
|
{
|
|
"group": "任务",
|
|
"pages": [
|
|
"zh/capabilities/jobs/jobs",
|
|
"zh/capabilities/jobs/self-repair"
|
|
]
|
|
},
|
|
"zh/capabilities/skills",
|
|
"zh/capabilities/sandboxed-tools"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"group": "渠道",
|
|
"icon": "message",
|
|
"pages": [
|
|
"zh/channels/overview",
|
|
"zh/channels/telegram"
|
|
]
|
|
},
|
|
{
|
|
"group": "IronHub",
|
|
"icon": "archive",
|
|
"pages": [
|
|
"zh/hub/overview",
|
|
"zh/hub/installing",
|
|
"zh/hub/contributing"
|
|
]
|
|
},
|
|
{
|
|
"group": "扩展(工具)",
|
|
"icon": "hammer",
|
|
"pages": [
|
|
"zh/extensions/overview",
|
|
{
|
|
"group": "内置扩展",
|
|
"pages": [
|
|
"zh/extensions/file-tools",
|
|
"zh/extensions/github",
|
|
{
|
|
"group": "Google",
|
|
"pages": [
|
|
"zh/extensions/google/oauth-setup",
|
|
"zh/extensions/google/gmail",
|
|
"zh/extensions/google/calendar",
|
|
"zh/extensions/google/docs",
|
|
"zh/extensions/google/drive",
|
|
"zh/extensions/google/sheets",
|
|
"zh/extensions/google/slides"
|
|
]
|
|
},
|
|
"zh/extensions/mcp",
|
|
"zh/extensions/web-search",
|
|
"zh/extensions/shell"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"group": "教程",
|
|
"icon": "graduation-cap",
|
|
"pages": [
|
|
"zh/extensions/building-a-tool",
|
|
{
|
|
"group": "在以下平台托管 IronClaw",
|
|
"pages": [
|
|
"zh/infrastructure/droplet",
|
|
"zh/infrastructure/google",
|
|
"zh/infrastructure/amazon"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"global": {
|
|
"anchors": [
|
|
{
|
|
"anchor": "Agent Dashboard",
|
|
"href": "https://agent.near.ai/",
|
|
"icon": "sliders"
|
|
},
|
|
{
|
|
"anchor": "NEAR AI Cloud",
|
|
"href": "https://cloud.near.ai",
|
|
"icon": "cloud"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"contextual": {
|
|
"options": [
|
|
"copy",
|
|
"view",
|
|
"chatgpt",
|
|
"claude",
|
|
"perplexity",
|
|
"mcp",
|
|
"cursor",
|
|
"vscode"
|
|
]
|
|
},
|
|
"footer": {
|
|
"socials": {
|
|
"x": "https://x.com/near_ai",
|
|
"github": "https://github.com/nearai",
|
|
"linkedin": "https://linkedin.com/company/near-ai"
|
|
}
|
|
},
|
|
"redirects": [
|
|
{
|
|
"source": "/capabilities/mcp",
|
|
"destination": "/extensions/mcp"
|
|
},
|
|
{
|
|
"source": "/tunnel",
|
|
"destination": "/using/webui"
|
|
},
|
|
{
|
|
"source": "/channels/discord",
|
|
"destination": "/channels/overview"
|
|
},
|
|
{
|
|
"source": "/channels/signal",
|
|
"destination": "/channels/overview"
|
|
},
|
|
{
|
|
"source": "/channels/wechat",
|
|
"destination": "/channels/overview"
|
|
},
|
|
{
|
|
"source": "/channels/wecom",
|
|
"destination": "/channels/overview"
|
|
},
|
|
{
|
|
"source": "/channels/local",
|
|
"destination": "/channels/overview"
|
|
},
|
|
{
|
|
"source": "/channels/webhook",
|
|
"destination": "/channels/overview"
|
|
},
|
|
{
|
|
"source": "/zh/channels/discord",
|
|
"destination": "/zh/channels/overview"
|
|
},
|
|
{
|
|
"source": "/zh/channels/signal",
|
|
"destination": "/zh/channels/overview"
|
|
},
|
|
{
|
|
"source": "/zh/channels/wechat",
|
|
"destination": "/zh/channels/overview"
|
|
},
|
|
{
|
|
"source": "/zh/channels/wecom",
|
|
"destination": "/zh/channels/overview"
|
|
},
|
|
{
|
|
"source": "/zh/channels/local",
|
|
"destination": "/zh/channels/overview"
|
|
},
|
|
{
|
|
"source": "/zh/channels/webhook",
|
|
"destination": "/zh/channels/overview"
|
|
},
|
|
{
|
|
"source": "/zh/tunnel",
|
|
"destination": "/zh/index"
|
|
},
|
|
{
|
|
"source": "/zh/capabilities/jobs",
|
|
"destination": "/zh/capabilities/jobs/jobs"
|
|
},
|
|
{
|
|
"source": "/zh/extensions/google-calendar",
|
|
"destination": "/zh/extensions/google/calendar"
|
|
}
|
|
]
|
|
}
|