11262 Commits

Author SHA1 Message Date
kumarabhirup
238989cdf7
release: bump version to 2026.2.15-1.8 2026-02-21 15:41:03 -08:00
kumarabhirup
7aadd02313
test: add comprehensive workspace test suite and deploy pre-flight checks
- Profile management: discoverProfiles, getEffectiveProfile precedence,
  setUIActiveProfile, resolveWebChatDir, workspace registry (32 tests)
- Workspace init API: creation, bootstrap seeding, custom paths,
  validation, idempotency (13 tests)
- Profile switch API: GET/POST profiles, validation, default reset (10 tests)
- Chat isolation: profile-scoped chat dirs, session isolation (7 tests)
- LLM context awareness: bootstrap loading, subagent filtering,
  resolveBootstrapContextForRun content isolation (15 unit + 5 live)
- Subagent streaming: registerSubagent, event replay, persistence,
  ensureRegisteredFromDisk, fan-out (24 unit + 5 live)
- deploy.sh: add --skip-tests flag, pnpm test + web:build pre-flight,
  auto git commit/push of version bump after publish
- package.json: add test:workspace and test:workspace:live scripts

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-21 15:38:31 -08:00
kumarabhirup
30333857a1
Merge branch 'kumareth/workspaces' of https://github.com/denchHQ/ironclaw 2026-02-21 15:18:18 -08:00
kumarabhirup
6665bf4a71
refactor: simplify web session management by removing unused functions and adding DELETE and PATCH endpoints
- Removed unused functions related to session index management.
- Added DELETE endpoint to remove a web chat session and its associated file.
- Added PATCH endpoint to update session metadata, including renaming sessions.
- Streamlined file writing for new session creation.
2026-02-21 15:17:10 -08:00
Kumar Abhirup
4180d047ff
Merge pull request #5 from DenchHQ/kumareth/workspaces
feat: Workspaces, Subagent Infrastructure, and Gateway Event Subscriptions
2026-02-21 15:13:13 -08:00
kumarabhirup
d88ed44521
Merge remote-tracking branch 'origin/main' into kumareth/workspaces
Co-authored-by: Cursor <cursoragent@cursor.com>

# Conflicts:
#	apps/web/app/components/chat-message.tsx
2026-02-21 15:00:45 -08:00
kumarabhirup
5b41523f17
feat: add CLI-only streaming hardening and interactive subagent panel plans
- Introduced a new plan for CLI-only streaming hardening, focusing on protocol-level improvements and the removal of web WS clients.
- Added a plan for an interactive subagent panel, enabling subagents to operate independently from the parent agent's event stream, with unified API routes for enhanced interactivity.
2026-02-21 14:52:27 -08:00
kumarabhirup
c8ae7acbf4
fix: restore remaining merge regressions (SKILL.md, MIME types, showHidden, symlink, activeProfileHint) 2026-02-21 14:39:55 -08:00
kumarabhirup
57b7d8bd0f
fix: restore workspace pass-through dropped by design merge 2026-02-21 14:05:37 -08:00
kumarabhirup
92fadd6700
fix: filter non-parent events in main NDJSON handler and fix workspace creation path
Bug 1: Subagent events from gateway broadcasts were processed as parent
events because the sessionKey filter was accidentally removed during the
subagent decoupling refactor. Re-add the filter in wireChildProcess.

Bug 2: Creating workspaces at custom paths failed because:
- mkdir API rejected absolute paths outside workspace root
- Directory picker started at workspace root, not home
- Error responses from mkdir were silently swallowed
Add absolute path support to mkdir, handle errors in picker UI,
start picker at home dir, and normalize init route paths.
2026-02-21 13:45:11 -08:00
kumarabhirup
109b88b93c
web: restore functional features dropped by design merge
Restore backend/logic features that were incorrectly auto-merged from the
design branch:

- Spreadsheet viewer (xlsx, csv, ods, etc.) and xlsx dependency
- HTML iframe viewer with source toggle
- Directory picker modal for workspace creation
- Workspace registry for custom-path workspaces
- Session auto-discovery for orphaned sessions
- Workspace init seeding (CRM objects, DuckDB, templates, bootstrap files)
- Symlink resolution and showHidden in tree/browse routes
- Upload to workspace assets/ instead of hidden ~/.ironclaw/uploads/
- Webpack dev watcher config (next.config.ts)
- router.push for back-button navigation history
2026-02-21 13:10:32 -08:00
kumarabhirup
db4c90b37d
Merge remote-tracking branch 'origin/markrachapoom/design' into kumareth/workspaces
Co-authored-by: Cursor <cursoragent@cursor.com>

# Conflicts:
#	apps/web/app/api/chat/subagent-stream/route.ts
#	apps/web/app/api/workspace/watch/route.ts
#	apps/web/app/components/chat-panel.tsx
#	apps/web/app/components/subagent-panel.tsx
#	apps/web/lib/subagent-runs.ts
#	apps/web/tsconfig.tsbuildinfo
2026-02-21 12:40:07 -08:00
kumarabhirup
536ae59667
web: add interactive messaging UI to subagent panel
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-21 12:32:59 -08:00
kumarabhirup
7cdcf61639
web: support subagent sessions in chat and stop API routes 2026-02-21 12:32:37 -08:00
kumarabhirup
54d048bfb9
web: merge subagent-stream into unified stream route 2026-02-21 12:32:32 -08:00
kumarabhirup
e267fe7df4
web: export stream parser and add user-message event type 2026-02-21 12:32:27 -08:00
kumarabhirup
7d762b2b75
web: refactor subagent-runs to use direct gateway subscription with interactive messaging 2026-02-21 12:32:21 -08:00
kumarabhirup
3ee2528b75
web: filter silent-reply tokens and remove subagent event routing from parent stream 2026-02-21 12:32:16 -08:00
kumarabhirup
f3ae8127da
web: filter leaked NO_REPLY tokens in chat message display 2026-02-21 12:32:10 -08:00
kumarabhirup
a2845a321e
fix: type JSON.parse results to avoid Object.values unknown entries 2026-02-21 11:11:47 -08:00
kumarabhirup
18fb87ba76
fix: cast Object.values to typed array in subagent-stream route
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-21 11:05:42 -08:00
kumarabhirup
32baa3f149
chore: update tsconfig.tsbuildinfo 2026-02-21 11:05:09 -08:00
kumarabhirup
44f80a09af
fix: cast Object.values to typed array in subagent-stream route 2026-02-21 11:04:49 -08:00
kumarabhirup
9c3c339f48
fix: prefix unused watcherReady with underscore 2026-02-21 11:04:43 -08:00
kumarabhirup
119dcdc775
web: show 'Waiting for subagents...' status in chat panel 2026-02-21 11:04:37 -08:00
kumarabhirup
149dfb7d50
web: add SSE keepalive and waiting-for-subagents header in stream route 2026-02-21 11:04:32 -08:00
kumarabhirup
9d8c384517
web: add waiting-for-subagents state and subscribe continuation in active-runs 2026-02-21 11:04:26 -08:00
kumarabhirup
6650287da2
fix: prefix unused key variable in activateGatewayFallback 2026-02-21 11:04:20 -08:00
kumarabhirup
f83731d3b5
web: replace gateway WS with subscribe-child streams in subagent-runs 2026-02-21 11:04:07 -08:00
kumarabhirup
a6dab967a2
web: add globalSeq to AgentEvent and spawnAgentSubscribeProcess helper 2026-02-21 11:04:01 -08:00
kumarabhirup
0f28afd59b
web: remove gateway-events.ts WebSocket module in favor of subscribe-child streams 2026-02-21 11:03:57 -08:00
kumarabhirup
c554828f6a
fix: resolve no-base-to-string lint in subscribe test mock 2026-02-21 11:03:50 -08:00
kumarabhirup
d20b67c370
CLI: add subscribe mode e2e tests 2026-02-21 11:03:37 -08:00
kumarabhirup
da9f5ee992
fix: resolve no-base-to-string lint in agent subscribe CLI 2026-02-21 11:03:31 -08:00
kumarabhirup
d57c2bbf36
CLI: add --subscribe-session-key mode for tailing agent events 2026-02-21 11:03:11 -08:00
kumarabhirup
6c3e144166
gateway: add session event log and replay cursor tests 2026-02-21 11:03:04 -08:00
kumarabhirup
581e73d1ce
gateway: add agent.subscribe/unsubscribe server method handlers 2026-02-21 11:02:58 -08:00
kumarabhirup
0f5ddf7e8f
gateway: add session event log, subscription registry, and broadcast globalSeq 2026-02-21 11:02:50 -08:00
kumarabhirup
d8afea2cbb
gateway: add agent.subscribe/unsubscribe protocol schema and types 2026-02-21 11:02:44 -08:00
kumarabhirup
76f06e0eaf
web: scope subagent storage to workspace profile
Subagent event JSONL files and rehydration metadata were stored in the
shared ~/.openclaw/web-chat/ directory regardless of the active workspace
profile, while parent chat sessions were correctly profile-scoped.

Move subagent event persistence into the profile-scoped web-chat dir
(web-chat-<profile>/subagent-events/) and add a profile-local
subagent-index.json for fast rehydration after page refresh. The shared
gateway registry (~/.openclaw/subagents/runs.json) remains the fallback
source. Existing events in the legacy shared path are still readable as
a migration fallback.
2026-02-20 13:37:46 -08:00
Mark
ca8ac9fda1 Revert "Merge kumar workspaces to design branch"
This reverts commit bf4445115b911fa7831e6a35f7d0114154bb58ec, reversing
changes made to face53f2341417e339c02d5d7d4c412b961f87f6.
2026-02-20 12:45:42 -08:00
Mark
bf4445115b Merge kumar workspaces to design branch 2026-02-20 12:04:56 -08:00
kumarabhirup
161c329214
skills: document triple-alignment rule and fix workspace path refs in Dench 2026-02-20 00:43:10 -08:00
kumarabhirup
d422c5a540
web: wire up HTML/spreadsheet viewers and use push navigation 2026-02-20 00:43:03 -08:00
kumarabhirup
88d10ab800
web: add spreadsheet viewer with xlsx parsing support 2026-02-20 00:42:58 -08:00
kumarabhirup
436a07c3c8
web: add HTML viewer with rendered preview and code modes 2026-02-20 00:42:49 -08:00
kumarabhirup
8a0520d7bd
web: add symlink support and hidden-files toggle across workspace 2026-02-20 00:42:38 -08:00
kumarabhirup
d86c4fb5b5
web: restrict Next.js dev watcher to prevent EMFILE exhaustion 2026-02-20 00:42:31 -08:00
kumarabhirup
b4502d7bc6
fix: prefix unused watcherReady with underscore 2026-02-20 00:42:22 -08:00
kumarabhirup
d2015fd9d5
web: refactor file watcher to singleton with polling mode 2026-02-20 00:41:48 -08:00