Commit graph

336 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
yushen
ac733326d9 chore(release): bump version to 0.1.3 2026-02-26 18:45:11 +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
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
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
0f5bd5fff1 refactor(agent): remove legacy memory subsystem 2026-02-17 15:33:39 +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
e622b8c6ba refactor(core-sdk): enforce conversation-only client protocol 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
a0bb88e7b7 refactor(hub): enforce conversation-scoped device authorization 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
8e245e77ca refactor(clients): adopt conversation rpc with legacy fallback 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
d45605283e feat(desktop): show delegate sub-task progress and timers 2026-02-17 03:27:17 +08:00
Jiayuan Zhang
a5901b7db8 fix(desktop): restore remove action in collapsed queue 2026-02-17 01:47:19 +08:00
Jiayuan Zhang
fe50519a92 fix(desktop): keep queued message bar hook order stable 2026-02-17 01:47:19 +08:00
Jiayuan Zhang
37a68fc5c0 feat(desktop): add collapsible queued message panel 2026-02-17 01:47:19 +08:00
Jiayuan Zhang
3c1fa3f349 fix(desktop): keep queued messages blocked during toolUse phases 2026-02-17 01:47:19 +08:00
Jiayuan Zhang
bfe0c82e87 feat(desktop): queue user messages while agent is busy 2026-02-17 01:47:19 +08:00
Jiayuan Zhang
6e71598c2c
Merge pull request #215 from multica-ai/codex/docs-prune-and-regenerate-core-docs
docs: prune stale docs and regenerate prioritized core docs
2026-02-17 01:26:21 +08:00
Jiayuan Zhang
fc8a813120
Merge pull request #214 from multica-ai/codex/chat-context-window-indicator
feat(chat): add context window usage indicator
2026-02-17 00:55:09 +08:00
Jiayuan Zhang
ecb0cd392e chore(docs): remove non-e2e documentation 2026-02-17 00:46:36 +08:00
Jiayuan Zhang
ec8b62cef1 feat(chat): add context window usage indicator 2026-02-17 00:38:17 +08:00
Jiayuan Zhang
db63369837
Merge pull request #213 from multica-ai/codex/remove-legacy-subagent-registry
refactor: remove legacy async subagent orchestration path
2026-02-17 00:30:19 +08:00
Jiayuan Zhang
4d339ab80f fix(gateway): preserve telegram reply context ordering 2026-02-17 00:20:46 +08:00
Jiayuan Zhang
db0f8b3f7b refactor(desktop): drop legacy subagent dashboard wiring 2026-02-17 00:07:23 +08:00
Jiayuan Zhang
cf94bc32d2 fix(gateway): relax rpc param generic for typed sdk payloads 2026-02-16 12:33:45 +08:00
Jiayuan Zhang
4a2ef835fb feat(gateway): send agent-generated welcome after telegram connect 2026-02-16 12:24:30 +08:00
Jiayuan Zhang
f60551195a chore(agent): remove old sessions_spawn/sessions_list tools and update references
Delete sessions-spawn.ts, sessions-list.ts and their tests. Update CLI
to remove waitForSubagents polling workaround (delegate is synchronous).
Update UI, desktop IPC, SWE-bench, and system prompt tests to use the
new delegate tool name.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 01:09:21 +08:00
Jiayuan Zhang
94ae88ed8b
Merge pull request #208 from multica-ai/forrestchang/compaction-audit
Context window: 4-phase compaction improvements
2026-02-16 00:01:58 +08:00
Naiyuan Qing
fa040404d2
Merge pull request #207 from multica-ai/fix/onboarding-header-centering
fix(desktop): center onboarding step indicator
2026-02-15 22:10:50 +08:00
Naiyuan Qing
1e5174582b fix(desktop): center onboarding step indicator using absolute positioning
Use absolute positioning for the step indicator to achieve true centering
regardless of left/right element widths. This is the standard approach for
header layouts where the center element must be centered relative to the
entire container width, not the remaining flex space.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-15 22:05:03 +08:00
Jiayuan Zhang
87a83fba1a feat(telegram): add reply context parsing and send new messages for tool narration
- Extract reply_to_message text from Telegram replies and prepend as
  [Replying to: "..."] context so the agent can reference specific messages
- Replace edit-message pattern with new messages for each tool narration,
  improving clarity in the chat flow
- Remove dead code: sendOrEditStatus, editFormatted, statusMessages map

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 21:39:45 +08:00
Jiayuan Zhang
40a2e8ae55 fix(context-window): prioritize config over model for context window resolution
resolveContextWindowInfo now uses config > model > default priority so
explicit --context-window flag overrides model defaults. Also adds
--context-window CLI option to the run command.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 21:37:02 +08:00
Jiayuan Zhang
9f95566616 fix(desktop): make login and onboarding windows draggable on macOS
Login page: replace full-container drag region with a dedicated header
bar, matching the pattern used across the app. The previous approach
applied -webkit-app-region: drag to the entire content container which
could interfere with child element interactions.

Onboarding steps 1-4: move drag region from a tiny 80px left strip to
the entire header element, and mark the ModeToggle as no-drag so it
remains clickable.

Closes MUL-241

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 21:16:27 +08:00
Jiayuan Zhang
e39f9a5dfe feat(cli): wait for sub-agents and output findings in run mode
In CLI mode, the parent Agent is not registered with the Hub, so the
normal announce flow can't deliver sub-agent results. Added polling
mechanism that waits for sub-agents to complete and prints their
findings directly to stdout.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 19:53:26 +08:00
Jiayuan Zhang
b007ddffc8 feat(cli): initialize Hub in run mode for full agent capabilities
Always initialize Hub in CLI run mode to match the Desktop environment
where Hub is always active. This enables sessions_spawn (sub-agent
creation), cron tasks, channel plugins, and other Hub-dependent
features during E2E testing.

Hub constructor is non-blocking — gateway connection failures are
handled gracefully with auto-reconnect. hub.shutdown() in finally
block ensures clean teardown on exit.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 18:06:51 +08:00
Jiayuan Zhang
a2c1379c1d feat(cli): add --run-log flag and session dir output for agent-driven E2E testing
Add --run-log CLI flag to enable structured run logging without env var.
Print session directory path to stderr when run-log is enabled so Coding
Agents can easily locate log files for analysis.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 16:03:40 +08:00
Jiayuan Zhang
313f826d58
Merge pull request #200 from multica-ai/forrestchang/fix-telegram-conflict
fix(gateway): handle Telegram 409 conflict and add error resilience
2026-02-15 14:48:25 +08:00
Jiayuan Zhang
fe7c772219 fix(gateway): add process-level error handlers and graceful shutdown
Add unhandledRejection and uncaughtException handlers to prevent the
gateway from crashing on unexpected errors. Add SIGTERM/SIGINT handlers
for graceful shutdown via app.close().

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 14:07:50 +08:00
Jiayuan Zhang
5741402a1a fix(telegram): handle 409 polling conflict and add global error boundary
Add bot.catch() to prevent unhandled errors from crashing the polling
loop, and catch the 409 "terminated by other getUpdates request" error
specifically when another bot instance is already running.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 14:07:49 +08:00