Each agent profile now gets a dedicated workspace directory
(~/.super-multica/workspace/{profileId}) used as the default CWD
for tool operations. Supports override via MULTICA_WORKSPACE_DIR
env var or config.json workspaceDir field. The workspace path is
injected into system prompt and runtime info.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
A subagent that times out loses all its work, so a generous default
reduces wasted compute. Update the constant, tool description, system
prompt guidelines, and documentation to reflect the new 1800s default.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add xlsx skill with openpyxl/pandas workflows, formula-first approach, LibreOffice recalculation, financial model color coding standards, and formula verification checklist.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add pptx skill with template-based editing workflow, PptxGenJS creation from scratch, slide thumbnails, design guidelines, and visual QA process.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add pdf skill with text/table extraction, merge/split, form filling (fillable and non-fillable), PDF creation with reportlab, and command-line tools integration.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add docx skill with document creation via docx-js, XML editing workflow (unpack/edit/pack), tracked changes, comments, and LibreOffice integration for PDF conversion.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Agent was skipping all web searches because instructions used optional
language ("if...", "after reviewing..."). Changed key searches from
conditional to mandatory (MUST/REQUIRED), added a checkpoint after
Step 1b, and rewrote Web Search Guidelines as "Requirements" with a
minimum of 3 mandatory searches per analysis.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
When writeInternal fails with a transient error (e.g. undici
"terminated", connection reset, 502/503), wait 5 seconds and retry
once. This prevents continuation tasks from silently failing when
the LLM streaming connection is interrupted mid-generation.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
sessions_spawn now accepts groupId and next parameters. First spawn with
next auto-creates a group; subsequent spawns join via groupId. sessions_list
groups runs by groupId with completion progress display.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
When all runs in a group complete, deliver combined findings plus the
`next` continuation prompt to the parent agent via writeInternal. The
parent can then act on the collected data (summarize, write files, etc).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add SubagentGroup for "collect all, then act" workflows where multiple
subagents complete before a continuation task runs. Groups are persisted
alongside run records and support a `next` continuation prompt.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add targeted web search guidance at key analysis steps: earnings call
highlights, industry context, anomaly explanation (margin shifts, debt
changes, CapEx spikes), quality-of-earnings validation, and earnings
call transcript supplementation. Includes guardrails to keep searches
targeted (3-6 total) and source-quality hierarchy.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Adds a new bundled skill for analyzing company financial statements with
a structured 9-step framework including Buffett competitive advantage
scoring, quality of earnings assessment, and SEC filing qualitative
analysis. Includes reference files for sector benchmarks and scoring
criteria.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Refactor QR code component with extracted hooks (useQRToken, useCountdown, useCopyToClipboard)
- Extract reusable sub-components (QRCodeFrame, ExpiryTimer, CopyLinkButton)
- Extract QRCodeCard and DevicesCard components in clients page
- Add GatewayStatus indicator for connection state
- Minor styling fix for empty device list state
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The listStates IPC handler now waits for any "starting" status to
settle (max 3.5s) before returning, ensuring the UI always gets the
final status (running/error) instead of the transient "starting" state.
Also fixes unused variable lint warning in profile page.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add CompactionItem component that renders a subtle inline notification
in the chat stream when the agent compacts its context window. Extends
Message type with "system" role and handles compaction_end events in
useChat's handleStream.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add `dev:desktop:reset` to delete ~/.super-multica directory
- Add `dev:desktop:fresh` to reset and start app in one command
Enables testing the complete onboarding flow as a new user.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Rename channels.tsx to clients.tsx
- Remove standalone skills.tsx and tools.tsx pages
- Add agent/ directory for agent-related pages
- Update layout and navigation structure
- Add tabs component to ui package
- Update fonts and global styles
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Root cause: compaction only ran after successful assistant response,
never before calling the LLM API. Internal runs skipped it entirely,
and the fire-and-forget void swallowed errors with race conditions.
Layer 1 - Pre-flight compaction in transformContext:
Runs before EVERY LLM call (including internal runs). Prunes tool
results and drops oldest messages when utilization exceeds 80%.
Pure in-memory, no disk writes.
Layer 2 - Fix post-hoc compaction:
Store compaction promise instead of voiding it, await at _run() start
to prevent race conditions. Emit compaction_start before the actual
compaction. Remove useless catch-rethrow block.
Layer 3 - Context overflow recovery:
Catch context overflow 400 errors → auto-compact → retry (up to 2
attempts). Runs before classifyError/auth rotation so overflow errors
are handled by compaction, not profile switching.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- ESTIMATION_SAFETY_MARGIN: 1.2 → 1.5 (50% buffer covers CJK text)
- estimateSystemPromptTokens: /3 → /2 (conservative for mixed content)
This makes the 80% compaction trigger fire earlier, reducing the gap
between estimated and actual token counts that caused overflow errors.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Detects context overflow 400 errors from various LLM providers
(prompt too long, context length exceeded, request too large, etc.)
for use in auto-compaction recovery.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add stop button to interrupt agent generation mid-stream. The send button
toggles to a stop icon during loading. Abort propagates from UI through
IPC to the Agent layer (PiAgentCore.abort()), preserving all partial
content in the agent's context so users can follow up immediately.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Send "typing" chat action while LLM generates a response, with 5s
interval refresh and 60s safety timeout. Stop on message_end,
agent_error, or generic error events.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Gateway source moved out of src/ subdirectory but Dockerfile still
referenced old paths, breaking docker build. Rewrite to use tsx runtime
(no tsc/esbuild compile step), copy all workspace package.json for
lockfile compatibility, and filter install to gateway deps only (616 vs
1911 packages). Also update build-and-push script to tag latest.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Wrap page content with container class for consistent max-width
- Move overflow-auto to outer div so scrollbar stays at viewport edge
- Add self-stretch to vertical divider in home page
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Convert update-notification component from Hugeicons to Lucide icons
- Add UpdateNotification to layout.tsx for auto-update functionality
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add silent option to setProvider to suppress toast notifications
- Improve device list with better state handling
- Update onboarding setup step with silent provider switch
- Minor UI tweaks in layout and App components
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add AppState module in core for managing app state persistence
- Add app-state IPC handlers for reading/writing onboarding state
- Hydrate onboarding state from file system on app startup
- Prevent flash by showing blank screen during hydration
- Update onboarding store to sync with file system
- Improve MulticaIcon with enhanced animation states
- Minor UI fixes in chat and device list components
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>