mirror of
https://gh-proxy.org/https://github.com/klinsmaya/multica.git
synced 2026-11-09 01:46:46 +08:00
207a4bf4e9b46158cf01eadee1cdaec11b341e7d
8
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
e8fdcfd226 |
MUL-6623 feat(agent): add host-local Devin CLI over ACP (#7485)
* feat(agent): add host-local Devin CLI over ACP Spawn `devin acp` via the shared ACP client. Local CLI only — not cloud Devin VMs/Playbooks/Secrets. Model via `devin acp --model`. Catalog from `devin models list --format json` (families/variants). * fix: skip Devin ACP handshake when browser auth is also offered * fix: close dim case string so Devin compiles Missing quote after dim broke runtime_config.go and every Go CI job. * fix: stop runtimeConfigPath recursion on Devin Devin is a builtin whose ProtocolFamily is itself. Recursing on that overflowed the stack and killed backend-tests. * test(agent): cover Devin model failures and final-answer delivery Co-authored-by: multica-agent <[email protected]> * fix(agent): honor Devin model aliases and stored login (MUL-6623) Co-authored-by: multica-agent <[email protected]> * fix(agent): drain Kiro panic details before terminating runtime (MUL-6623) Co-authored-by: multica-agent <[email protected]> --------- Co-authored-by: Sol-Boy <[email protected]> Co-authored-by: multica-agent <[email protected]> |
||
|
|
e13a902f59 |
MUL-8220: docs: interactive demos, structured pages and docs for undocumented features (#9498)
* chore(docs): upgrade to Fumadocs 16 and Next.js 16 Fumadocs UI 16 requires Next.js 16, so the docs app moves to Next 16 alongside it (apps/web is already on 16). - fumadocs-core/ui 15 -> 16, fumadocs-mdx 12 -> 15 - import collections from .source/server and RootProvider from fumadocs-ui/provider/next - migrate UI translation keys to the v16 message ids - rename middleware.ts to proxy.ts per the Next 16 convention - declare the status, diff and overlay color slots v16 moved out of preset.css - keep heading anchors, now rendered as a[data-card], out of the card styles - drop the language select v16 adds to the sidebar footer; the docs settings menu already switches language * feat(docs): add a kit for click-through product demos Docs pages can embed small demos that imitate the product and walk the reader through one action. The kit holds the shared frame (title, replay, live caption), the coach mark that rings the next control with a localized "Click" and an arrow, and timeline pieces for runs, comments and steps. Demos start when scrolled into view, take their scenario copy per locale, and isolate their stacking so they stay under the page header. tw-animate-css provides the enter animations, as in apps/web. * fix(docs): consistent Steps, Tabs and Accordion styling - a Steps item is at least as tall as its number badge, so one-line steps don't stack their badges - accordion headers (not-prose h3) skip the editorial heading styles - hide the copy-link button Fumadocs adds beside accordion titles; the ids stay so links still open an entry - tab bars end in a hairline that carries the active underline without overflowing the scrolling bar, and a lone code block in a tab keeps its inset and border, so every tab group looks the same * docs: interactive getting-started pages - concepts: clickable map of the core objects and their relations - how-multica-works: step-through of one run from issue to result - triggering-agents: pick a goal, get the way to start an agent, including issue wakeups - cloud-quickstart and tutorial use Steps; agent creation, the runtimes entry and the sidebar paths match the current product Covers en, zh, ja, ko and fr; copy edited to drop template phrasing. * docs: interactive workspace, issue and project pages - demos for member roles, issue statuses, project progress, workflow handoffs, creating an issue with an agent, deliverable versions and local directory modes - new Analytics page with a demo of the usage and errors tabs: cost estimates, runtime usage, custom prices and per-issue spend - issues: custom properties, display settings and saved views, peek, bulk edits and duplicates - project progress counts the done and closed categories; status category names, the workflow return label and share links follow the product; agent moves trigger handoffs too - project-resources: modes as Tabs, worktree details as Accordions Covers en, zh, ja, ko and fr; copy edited to drop template phrasing. * docs: interactive agent pages - demos for agent Access, creating an agent, adding a skill and a squad run led by its leader - agents-create describes the current runtime -> configure -> done flow instead of the removed start-blank / build-with-AI choice, and covers workspace-shared MCP servers - squads: notified members, a three-column re-trigger table, and the sections the ja/ko pages were missing Covers en, zh, ja, ko and fr; copy edited to drop template phrasing. * docs: interactive everyday-collaboration pages - demos for steering a running agent, mentioning an agent, assigning an issue, resolving a thread, running a quick action, chat, the chat message queue and the inbox - mentioning-agents documents steering and the per-recipient delivery options; follow-ups no longer always wait for the run to end - comments: sub-issues created from a thread, the thread minimap and edit-conflict comparison - chat: the floating window, draft restore and the message queue - new page for search, keyboard shortcuts and preferences - quick actions: the sidebar list is not filtered by invoke permission Covers en, zh, ja, ko and fr; copy edited to drop template phrasing. * docs: interactive runtime and automation pages - demos for a failed run and its retry, a run waiting on an offline computer, an autopilot run, an issue wakeup and picking a coding tool - new Issue wakeups page: event, time and periodic conditions, check-ins, limits, the child_done system rule and its workspace default, and the `multica issue wakeup` commands - daemon-runtimes: start at login, local MCP merging, cleanup and retention, Codex memory defaults, and sharing a runtime with specific members - runs on an offline runtime fail only after the reconnect grace (default 3h); the execution log lists the latest three past runs - providers and the install guide add ZeroClaw and the model-selection column; install-agent-runtime uses Steps, Tabs and per-tool Accordions - the event-filter heading keeps the anchor the product links to Covers en, zh, ja, ko and fr; copy edited to drop template phrasing. * docs: interactive integration and app pages - demos for talking to a channel bot, a merged PR completing its issue and per-workspace desktop tabs - the bot guides share one Steps-based layout with their old anchors - Lark and Telegram attach recent group messages as read-only context - desktop-app: pinned tabs - fix stale French GitHub and mobile self-hosting sections, and the compressed ja/ko Telegram pages Covers en, zh, ja, ko and fr; copy edited to drop template phrasing. * docs: restructure self-hosting and reference pages - self-host-quickstart and troubleshooting use Steps, Tabs and Accordions with ASCII ids so links open the right entry; code-block tabs become Tabs like everywhere else - environment-variables adds the GC, log rotation and per-tool path/model settings and drops the unused MULTICA_KEEP_ENV_AFTER_TASK - cli adds issue timeline, issue wakeup, daemon autostart and the commonly used flags - fix a corrupted link, flattened code indentation and dead anchors - translations no longer call GitHub issues "tasks" Covers en, zh, ja, ko and fr; copy edited to drop template phrasing. * feat(docs): show the search bar with compact results The site already served a per-locale search index from /api/search (with character-level tokenizers for zh and ja), but the layout hid Fumadocs's search toggle, leaving ⌘K as the only, undiscoverable way in. The toggle is back: a search bar atop the sidebar on desktop and an icon in the mobile header. Fumadocs's default dialog renders every matching paragraph, table and row in full, which buries the page titles. Like DocSearch and Pagefind, results now show the page and section titles plus at most three matches per page, each a two-line excerpt around the match; table rows become one line with their cells joined. The index and ranking are unchanged. |
||
|
|
9a50d0cc65 |
fix(docs): stop default-locale pages failing hydration with React #418 (MUL-8013) (#9244)
* fix(docs): stop default-locale pages failing hydration with React #418 SSG prerenders each page under its canonical `[lang]` route, so client components see `/en/agents` as the pathname at build time, while the browser URL for the hidden default locale is `/agents` (the i18n middleware rewrites it). Fumadocs resolves the page tree path with `usePathname()`, and the tree stores default-locale URLs without the prefix — so the prerendered HTML rendered tree-path fallbacks ("On this page" in the TOC popover trigger) while hydration resolved the real page name ("Agents"). The text mismatch threw React error #418 on every EN page load and React regenerated the whole tree on the client, dropping SSR-injected elements such as the next/font preload links. Non-default locales matched on both sides and were unaffected. Wrap the docs layout in fumadocs' `FrameworkProvider` with a `usePathname` that strips the hidden default-locale prefix, so prerender and hydration see the same locale-less path the page tree uses. The prerendered HTML now carries the real page names as well. Non-default locales keep their `/zh`-style prefix and behave exactly as before. Fixes #9243 * fix(docs): preserve static image imports in framework provider Co-authored-by: multica-agent <[email protected]> --------- Co-authored-by: Bohan-J <[email protected]> Co-authored-by: multica-agent <[email protected]> |
||
|
|
e395fb8744 |
docs: four-language documentation overhaul with verified facts and product screenshots (MUL-5057) (#5714)
Complete rework of the docs site, in three passes squashed into one change: 1. P0 fact corrections across the core-loop pages (agent access model, comment triggers and coalescing, issue lifecycle, offline/queue semantics, task states and retries, dispatch via realtime push). 2. Chinese rewrite as the authoring language: final 12-group IA, new "Core concepts" and "Put agents to work" pages, curated welcome page, permanent-UI quickstart (no onboarding-wizard dependency), operator reference restored (CLI command reference, webhook response codes, task state/timeout tables, config set keys, upgrade notes). 3. Verification and sync: every load-bearing claim re-checked against current main with file:line evidence (migration 103 auto-backfill, CLI-only trigger toggling, duplication semantics, COOKIE_DOMAIN, GitHub App variables, Qwen Code as the 17th provider); register standards applied to all 39 pages; en/ja/ko synced from zh with same-language heading anchors (verified, zero dead links); 17 product screenshots plus 2 diagrams wired in. Supporting fixes: i18n middleware no longer swallows /images assets, sidebar folder indent survives custom link padding, unused editorial components removed. Co-authored-by: Claude Fable 5 <[email protected]> |
||
|
|
73b9a41260 |
feat(docs): reusable VideoEmbed + Chinese intro video on zh docs homepage (#4597)
* feat(docs): add reusable VideoEmbed and embed intro video on zh homepage Add a provider-agnostic, click-to-load <VideoEmbed> component (Bilibili now, YouTube reserved) and embed the Chinese intro video (BV1cv7Y6gEg7) at the top of the Chinese docs homepage. The facade renders on first paint; the third-party player iframe only mounts on user click, so first paint pays nothing for an external player or its trackers. Registered in both docs MDX component maps so it is reusable on any docs page. Scope is zh docs only — no usecase, no other locales, no analytics, no video hosting. Co-Authored-By: Claude Opus 4.8 <[email protected]> Co-authored-by: multica-agent <[email protected]> * docs(zh): drop duration from intro video title Use the duration-free title "Multica 中文介绍视频" for the homepage VideoEmbed instead of a minute-count phrasing. Copy accuracy only; no component, layout, or provider changes. Co-Authored-By: Claude Opus 4.8 <[email protected]> Co-authored-by: multica-agent <[email protected]> --------- Co-authored-by: Claude Opus 4.8 <[email protected]> Co-authored-by: multica-agent <[email protected]> |
||
|
|
bd1fb10afa |
chore: react-doctor cleanup — button types, useContext→use(), toSorted, error fixes (#3350)
- Add explicit type="button" to 61 <button> elements missing the attribute - Replace useContext() with React 19 use() across 16 context consumers - Replace [...arr].sort() with arr.toSorted() in 12 web/desktop files (mobile excluded — Hermes lacks toSorted support) - Fix rules-of-hooks violation: useSidebar try/catch → useSidebarSafe null check - Fix nested component definition: useMemo wrapping HeaderRight → useCallback - Fix missing ARIA: add aria-expanded + aria-controls to combobox in create-squad React Doctor score: 23 → 30. No behavioral changes, no business logic modified. Co-authored-by: Claude Opus 4.7 (1M context) <[email protected]> |
||
|
|
53a3b33c50 |
fix(docs): keep zh internal links inside the zh locale (#2179)
Markdown links like `[xx](/workspaces)` written in `*.zh.mdx` rendered as bare `<a href="/workspaces">`, which Next's basePath rewrote to `/docs/workspaces` and the docs middleware then routed to English — silently kicking Chinese readers out of their locale on every internal click. Add a `LocaleLink` MDX `a` override that runs every internal href through `prefixLocale(href, lang)` before passing it to `next/link`, and wire a `DocsLocaleProvider` around the MDX body in both page entry points so the override and `NumberedCard` know the active locale. External links, in-page anchors, relative paths, already-prefixed paths, and default-language pages are deliberately left untouched. Closes the bug reported in https://github.com/multica-ai/multica/issues/2173. Co-authored-by: multica-agent <[email protected]> |
||
|
|
8c2e08418f |
feat(docs-site): rewrite docs as bilingual flat content tree (#1591)
* chore(docs-site): add @multica/ui bridge and dev:docs script Link @multica/ui as a workspace dep of @multica/docs so the docs app can consume the shared design tokens (tokens.css, base.css) via a relative import — same pattern the web and desktop apps use. Add a top-level pnpm dev:docs script for a one-command docs dev server (port 4000). Preparation for the docs site rewrite tracked in docs/docs-outline.md. Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]> * feat(docs-site): apply Multica tokens and pure-sans typography Replace Fumadocs' neutral color preset with a @theme inline bridge that maps the --color-fd-* chrome tokens to Multica's --background / --foreground / --border / --sidebar-* etc. Sidebar, nav, cards now pick up Multica's cool-gray palette automatically, and switching Multica's .dark flips Fumadocs chrome with it. Typography: pure sans (36px / weight 600 / tight tracking h1, h2+h3 tuned to match), landing continuity without serif display. Code blocks: pinned to near-black (oklch(0.12 0.01 250)) regardless of page theme so they read as a continuation of the landing hero surface. Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]> * docs(plan): add rewrite plan and outline tracker Two planning documents for the docs site rewrite: - docs/docs-rewrite-plan.md — strategic rationale (positioning, reader personas, design principles, visual direction, phase breakdown). - docs/docs-outline.md — execution tracker. 25 v1 pages with per-page entries (source files, audience, what-to-write, what-not-to-write, ⚠️ verify-before-drafting). Workflow: claim via Owner + Status, read source, verify checklist, draft, review, ship. Language: zh only for v1. Outline is the source of truth for scope and status; the earlier "EN first, ZH as Phase 10" line in rewrite-plan.md is superseded. Welcome (§1.1) is claimed under this tracker and currently in 👀 review. Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]> * docs(docs-site): write first Welcome page (zh) — §1.1 Implements §1.1 Welcome per docs/docs-outline.md. Chinese-first (per outline language decision); terms translated to their clearest Chinese equivalents (issue → 任务, agent → 智能体, daemon → 守护进程, etc.), product proper nouns and commands kept in English. Voice: reference-style, not marketing. Follows google-gemini/docs-writer skill rules (BLUF opener, second-person, active voice, no hype, overview prose before every list). Content: - Opens by describing Multica as a 任务协作 platform and how humans + AI 智能体 share the same 工作区 - Two interaction modes: 分配任务 and 聊天 - 智能体在哪里运行: local daemon (today), cloud runtime (soon, waitlist). 10 providers listed from source (server/pkg/agent/*.go). - Three usage paths split into back-end (Cloud / Self-host) and client (Desktop) choices — Desktop bundles CLI and auto-starts daemon. - Status: 👀 In review. Also simplifies content/docs/meta.json to just ["index"] (placeholder page entries removed; IA skeleton will be populated in Phase 2). Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]> * chore(docs-site): wire up client-side Mermaid rendering Add a <Mermaid> React component under apps/docs/components/ that dynamic- imports the mermaid package in useEffect and renders the resulting SVG. Deps added: mermaid@^11.14.0 and next-themes@^0.4.6 (transitively present via fumadocs-ui but needs explicit declaration to be importable). Design choices: - Client-side render (not build-time). No Playwright / browser automation in CI. Mermaid bundle (~400 KB) is loaded only on pages that use the component, thanks to the dynamic import. - Theme flips automatically — useTheme() from next-themes re-invokes mermaid.initialize() with the correct theme on .dark toggle. - SSR safe: the component returns a "Rendering diagram…" placeholder on the server; the SVG appears after hydration. - securityLevel "strict" — diagrams render as static SVG with no inline script or event handlers. Usage in mdx (explicit import, same pattern as Cards/Callout): import { Mermaid } from "@/components/mermaid"; <Mermaid chart={` graph LR User --> Server `} /> Verified by a scratch /app/mermaid-test/ route that compiled to 4665 modules and returned HTTP 200 (cleanup done pre-commit). Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]> * feat(docs-site): adopt v2 editorial palette and typography Replace the Linear/Vercel-style cool-gray token override with a warm editorial palette (bg matches landing #f7f7f5, brand-color primary via Multica's existing --brand hue 255) and wire Source Serif 4 for heading typography. Italic is avoided sitewide — Chinese italic renders as a synthetic slant against upright-designed glyphs and reads as broken; emphasis is carried by serif/sans contrast, brand color, and weight. Sidebar adopts the product app's active-fill pattern (solid sidebar-accent background, no ::before mark). Code blocks drop the always-dark hero treatment and follow page theme so the reading column stays coherent. Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]> * feat(docs-site): add editorial MDX components New components/editorial.tsx exposes Byline, NumberedCards/NumberedCard, and NumberedSteps/Step — the "wow moment" pieces from v2-editorial (ruled-divider bylines, No. 01 serif card numbering, large serif step counters). All escape prose via not-prose so they run their own type scale. DocsHero is rewritten as an editorial showpiece: title accepts ReactNode so callers can pass a brand-color em accent, eyebrow becomes a small uppercase sans label, lede uses serif at 20px. Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]> * docs(docs-site): rewrite welcome page as editorial showpiece Welcome page now opens with an editorial hero (eyebrow + serif h1 with brand-color em accent on "共处一方。" + serif lede), a ruled byline strip carrying the section / updated / read-time metadata, and then flows into prose. The three deployment paths switch from fumadocs's <Cards> to <NumberedCards> so each gets a No. 01/02/03 label, and the "next steps" list becomes a <NumberedSteps> block with large serif counters. These are the highest-impact visual moments on the page; the rest of the guide pages still get the global editorial chrome without needing per-page code. Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]> * feat(docs-site): add bilingual flat content tree with i18n routing Restructures the docs site from nested topic folders (cli/, getting-started/, developers/, guides/) into a flat content tree, and adds Chinese alongside English. The old nested structure forced contributors to think about both the topic AND the user-journey grouping; the flat tree lets a single meta.json control reading order with separator labels, and lets the same slug serve both languages via the `foo.zh.mdx` parser convention. Routing - New `app/[lang]/` segment hosts layout, home, slug page, and not-found - Self-contained basePath-aware middleware (fumadocs's built-in middleware isn't basePath-aware, so its rewrite/redirect targets break under /docs) - `hideLocale: 'default-locale'` keeps English URLs prefix-less; Chinese lives under /docs/zh/ - Sitemap excluded from middleware matcher so crawlers don't get rewritten into a non-existent locale-prefixed sitemap route - Default-language redirect preserves search string (UTM safety) - Home page declares its own generateStaticParams (Next layout params don't cascade) so /docs/ and /docs/zh are SSG, not dynamic per request SEO - New app/sitemap.ts emits hreflang alternates for every page - absoluteDocsUrl normalizes the home `/` so canonical URLs don't carry a trailing slash that mismatches the page's own canonical link - apps/web/app/robots.ts now advertises the docs sitemap Search - CJK tokenizer registered for the zh locale (Orama's English regex strips Han characters; without this Chinese search either returns empty or throws) Chrome - Custom DocsSettings replaces fumadocs's default icon-only sidebar footer with two labelled buttons (language + theme), matching the editorial design language Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]> --------- Co-authored-by: Claude Opus 4.7 (1M context) <[email protected]> |