Commit graph

1152 commits

Author SHA1 Message Date
Jiayuan Zhang
d4f5c5b16f
feat: pivot to AI-native task management platform (#232)
Replace the agent framework codebase with a new monorepo structure
for an AI-native Linear-like product where agents are first-class citizens.

New architecture:
- server/ — Go backend (Chi + gorilla/websocket + sqlc)
  - API server with REST routes for issues, agents, inbox, workspaces
  - WebSocket hub for real-time updates
  - Local daemon entry point for agent runtime connection
  - PostgreSQL migration with 13 tables (issue, agent, inbox, etc.)
  - WebSocket protocol types for server<->daemon communication
- apps/web/ — Next.js 16 frontend
  - Dashboard layout with sidebar navigation
  - Route skeleton: inbox, issues, agents, board, settings
- packages/ui/ — Preserved shadcn/ui design system (26+ components)
- packages/types/ — Full API contract types (Issue, Agent, Workspace, Inbox, Events)
- packages/sdk/ — REST ApiClient + WebSocket WSClient
- packages/store/ — Zustand stores (issue, agent, inbox, auth)
- packages/hooks/ — React hooks (useIssues, useAgents, useInbox, useRealtime)
- packages/utils/ — Shared utilities

Removed: apps/cli, apps/desktop, apps/mobile, apps/gateway,
packages/core, skills/, and all agent-framework code.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-20 17:55:49 +08:00
LinYushen
3f589d8326
Merge pull request #231 from multica-ai/fix/remove-broken-finance-actions
fix(data): remove broken finance actions
2026-02-27 13:15:19 +08:00
yushen
a93949511b fix(data): remove broken finance actions (get_price_snapshot, get_prices, get_financial_metrics_snapshot)
These three Financial Datasets API endpoints return 404 Not Found.
Remove their action definitions, handlers, schema docs, and skill
references. Skills now use get_financial_metrics or web_search as
alternatives.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 19:03:10 +08:00
yushen
ac733326d9 chore(release): bump version to 0.1.3 2026-02-26 18:45:11 +08:00
Bohan Jiang
ef13d0768e
Merge pull request #230 from multica-ai/fix/strip-aborted-toolcalls-from-repair
fix(agent): strip toolCalls from aborted/error assistant messages
2026-02-26 17:35:30 +08:00
Jiang Bohan
033ff87861 fix(agent): strip toolCalls from aborted/error assistant messages in transcript repair
When a streaming request is aborted mid-toolCall, the session persists an
assistant message with stopReason "aborted" containing partial toolCall blocks.
Our sanitizeToolUseResultPairing then inserts synthetic toolResults for these
toolCalls. However, pi-ai's transformMessages drops the entire aborted assistant
message downstream, leaving orphaned toolResults that reference non-existent
tool_use_ids — causing persistent 400 errors that block all subsequent
conversations in the session.

Fix: in repairToolCallInputs, strip toolCall blocks from assistant messages
with stopReason "aborted" or "error" before the result-pairing sanitizer runs.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 17:33:58 +08:00
Naiyuan Qing
1eb8fdab58
Merge pull request #229 from multica-ai/fix/macos-fullscreen-close-black-screen
fix(desktop): prevent black screen when closing fullscreen window on macOS
2026-02-26 16:40:38 +08:00
Naiyuan Qing
229a709ec8 fix(desktop): prevent black screen when closing fullscreen window on macOS
On macOS, calling win.hide() on a fullscreen window causes a black screen
because it interrupts the Space transition animation. This is a known
macOS Cocoa limitation (NSWindow.orderOut() + fullscreen).

Fix: Exit fullscreen first and wait for 'leave-full-screen' event before
hiding the window.

Also added render-process-gone handler for debugging renderer crashes.

Refs:
- https://github.com/electron/electron/issues/20263
- https://github.com/electron/electron/issues/6033

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-26 16:36:25 +08:00
Naiyuan Qing
c10ad352e0
Merge pull request #228 from multica-ai/fix/tool-empty-div-flicker
fix(ui): prevent empty div flicker between tool transitions
2026-02-26 16:23:01 +08:00
Naiyuan Qing
d96bdb0126 fix(ui): prevent empty div flicker between tool transitions
The text wrapper div was rendering when `isStreaming` was true but
`text` was empty, causing a brief empty flex container to appear
between tool executions. Changed condition from `(text || isStreaming)`
to `text` only, so the div only renders when there's actual content.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-26 16:18:29 +08:00
Naiyuan Qing
e9e8b9c7a1
Merge pull request #227 from multica-ai/fix/remove-api-proxy
fix(web): remove API proxy, use direct backend requests
2026-02-26 15:37:04 +08:00
Naiyuan Qing
78543d7187 fix(web): remove API proxy, use direct backend requests
- Remove Next.js rewrites proxy configuration
- Use NEXT_PUBLIC_API_URL for direct API requests
- Fixes ECONNRESET errors from proxy failures

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-26 15:35:53 +08:00
Bohan Jiang
5d39958913
Merge pull request #226 from multica-ai/fix/auto-update-repo-url
fix(desktop): point auto-update to correct repository
2026-02-26 14:40:51 +08:00
Jiang Bohan
aa3ebeb1c8 fix(desktop): point auto-update to correct repository
dev-app-update.yml and update-notification.tsx were still referencing the
old multica-ai/multica repo. Updated both to multica-ai/super-multica.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 14:39:38 +08:00
yushen
c97ee8efa1 chore(release): bump version to 0.1.2 2026-02-26 13:48:53 +08:00
Bohan Jiang
61bbf8fa6b
Merge pull request #225 from multica-ai/fix/format-error-recovery
fix(agent): auto-recover from persistent 400 format errors
2026-02-24 13:33:28 +08:00
Jiang Bohan
bfab8d97b2 fix(agent): auto-recover from persistent 400 format errors by reloading session
When the LLM API returns a 400 "tool_call_id is not found" error, the corrupted
in-memory message state persists, blocking all subsequent messages until restart.
This adds a recovery handler that reloads sanitized messages from disk and retries,
similar to the existing context overflow recovery pattern.

Also adds `default` export condition to core package.json to fix tsx watch
resolution for subpath exports (gateway startup failure).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 13:19:39 +08:00
Jiayuan Zhang
7387216482
Merge pull request #224 from multica-ai/codex/fix-multi-session-chat-sync
fix(chat): stabilize multi-session sync and tool flow
2026-02-17 16:05:53 +08:00
Jiayuan Zhang
06c5792bf5 fix(chat): stabilize multi-session sync and tool flow 2026-02-17 15:59:25 +08:00
Jiayuan Zhang
47e9c3ffc2
Merge pull request #223 from multica-ai/codex/remove-legacy-memory
refactor(agent): remove legacy memory subsystem
2026-02-17 15:58:51 +08:00
Jiayuan Zhang
0f5bd5fff1 refactor(agent): remove legacy memory subsystem 2026-02-17 15:33:39 +08:00
Jiayuan Zhang
700e64342c
Merge pull request #222 from multica-ai/codex/conversation-fasttrack-1-rebased
refactor: adopt conversation-first architecture across core and apps (rebased)
2026-02-17 10:01:26 +08:00
Jiayuan Zhang
642b674f33 fix(ci): resolve runner parse break and desktop lint warning 2026-02-17 09:50:28 +08:00
Jiayuan Zhang
218e6da544 refactor(apps): adopt conversation-first IPC and API surfaces 2026-02-17 09:42:13 +08:00
Jiayuan Zhang
5af7aa7840 refactor(core-hub): remove legacy agent RPC and fallback routing 2026-02-17 09:41:37 +08:00
Jiayuan Zhang
e622b8c6ba refactor(core-sdk): enforce conversation-only client protocol 2026-02-17 09:41:37 +08:00
Jiayuan Zhang
e1eaa73e04 fix(agent): infer run-log tool errors from payload 2026-02-17 09:41:37 +08:00
Jiayuan Zhang
9d1ac0049f refactor(protocol): standardize sessionId alias across conversation flows 2026-02-17 09:40:28 +08:00
Jiayuan Zhang
0e54c4118c refactor(gateway): isolate telegram session routing by chat thread 2026-02-17 09:40:28 +08:00
Jiayuan Zhang
6969790c25 refactor(protocol): deprecate legacy agentId conversation fallback 2026-02-17 09:40:28 +08:00
Jiayuan Zhang
4de89943f2 refactor(session): add agent/conversation hierarchical storage 2026-02-17 09:40:28 +08:00
Jiayuan Zhang
a0bb88e7b7 refactor(hub): enforce conversation-scoped device authorization 2026-02-17 09:39:25 +08:00
Jiayuan Zhang
3123506657 refactor(channels): persist route bindings across restarts 2026-02-17 09:39:25 +08:00
Jiayuan Zhang
c4d9f0273a docs: clarify channel route key conversation binding 2026-02-17 09:39:25 +08:00
Jiayuan Zhang
dee70ea659 refactor(channels): bind route keys to isolated conversations 2026-02-17 09:39:25 +08:00
Jiayuan Zhang
f0f6055031 feat(platform): align conversation semantics across surfaces 2026-02-17 09:39:25 +08:00
Jiayuan Zhang
b7b3d323b8 refactor(hub): decouple agent and conversation runtime model 2026-02-17 09:39:25 +08:00
Jiayuan Zhang
6a778e38e7 test(hub): cover conversation rpc handlers 2026-02-17 09:39:25 +08:00
Jiayuan Zhang
5ccf7bd798 fix(hooks): persist verified main conversation identity 2026-02-17 09:39:25 +08:00
Jiayuan Zhang
8e245e77ca refactor(clients): adopt conversation rpc with legacy fallback 2026-02-17 09:39:25 +08:00
Jiayuan Zhang
3c8569151a refactor(hub): add conversation-first rpc aliases 2026-02-17 09:39:25 +08:00
Jiayuan Zhang
708116afb1 feat(gateway): support telegram active conversation sessions 2026-02-17 09:39:25 +08:00
Jiayuan Zhang
16753d719b feat(desktop): add conversation switcher and new-session flow 2026-02-17 09:39:24 +08:00
Jiayuan Zhang
754e604a40 refactor(protocol): add conversationId compatibility across hub/client 2026-02-17 09:39:24 +08:00
Jiayuan Zhang
f4bd5b7bbc
Merge pull request #220 from multica-ai/codex/delegate-progress-timer
feat(desktop): show delegate sub-task progress and running timers
2026-02-17 03:34:52 +08:00
Jiayuan Zhang
d45605283e feat(desktop): show delegate sub-task progress and timers 2026-02-17 03:27:17 +08:00
Jiayuan Zhang
62feefb07d
Merge pull request #219 from multica-ai/codex/web-policy-hybrid-roadmap
docs(agent): add web tools policy optimization roadmap
2026-02-17 02:47:02 +08:00
Jiayuan Zhang
e28ecb9a91
Merge pull request #216 from multica-ai/codex/meta-skill-installer-e2e-skills-benchmark
feat(skills): add ClawHub meta installer and agent-driven E2E benchmark
2026-02-17 02:45:45 +08:00
Jiayuan Zhang
39fde8e4b0
Merge pull request #218 from multica-ai/codex/web-fetch-evidence-coverage
fix(agent): enforce web search fetch evidence coverage
2026-02-17 02:45:12 +08:00
Jiayuan Zhang
276e30626a docs(agent): add web tools policy optimization roadmap 2026-02-17 02:43:55 +08:00