13586 Commits

Author SHA1 Message Date
kumarabhirup
efbeacff54
test(web): update workspace init tests for new profile-based flow 2026-03-02 18:34:12 -08:00
kumarabhirup
3568779912
feat(web): overhaul workspace init with profile creation, onboarding, and port allocation 2026-03-02 18:34:06 -08:00
kumarabhirup
d8e2d455b8
test(web): update profiles API tests for gateway metadata and switch validation 2026-03-02 18:33:59 -08:00
kumarabhirup
d4a2e445ca
feat(web): harden profile switch with validation, existence check, and env override detection 2026-03-02 18:33:52 -08:00
kumarabhirup
6f6b841d92
feat(web): enrich profiles API with gateway metadata 2026-03-02 18:33:44 -08:00
kumarabhirup
910d0521e2
test(web): add subagent-runs tests 2026-03-02 18:33:38 -08:00
kumarabhirup
2723352028
feat(web): extend subagent-runs with status reasoning and media URL support 2026-03-02 18:33:31 -08:00
kumarabhirup
14feec10af
test(web): add active-runs tests with retry and lifecycle coverage 2026-03-02 18:33:24 -08:00
kumarabhirup
0d219413a8
feat(web): enhance active-runs with WS RPC, subscribe retry, and chat event support 2026-03-02 18:33:17 -08:00
kumarabhirup
f6769d3e05
test(web): add comprehensive agent-runner tests 2026-03-02 18:33:09 -08:00
kumarabhirup
7bd6583697
feat(web): add WebSocket gateway client and RPC support to agent-runner 2026-03-02 18:33:01 -08:00
kumarabhirup
ba1a66d222
feat(web): extend workspace lib with profile discovery and state dir resolution 2026-03-02 18:32:53 -08:00
kumarabhirup
b45ac0166a
feat(web): externalize ws/bufferutil in next.config and watch .openclaw-* dirs 2026-03-02 18:32:46 -08:00
kumarabhirup
a04e97a753
chore(web): configure vitest with jsdom env, JSX, and setup file 2026-03-02 18:32:38 -08:00
kumarabhirup
2b8a0e2503
chore: add test:evals scripts to root package.json 2026-03-02 18:32:31 -08:00
kumarabhirup
954ac67346
chore: update pnpm-lock.yaml for new dependencies 2026-03-02 18:32:25 -08:00
kumarabhirup
e3c0ca9fec
feat(web): add ws and testing dependencies (jsdom, testing-library) 2026-03-02 18:32:18 -08:00
kumarabhirup
49b46fc657
docs(cli): add testing edge case matrix for CLI bootstrap 2026-03-02 18:32:10 -08:00
kumarabhirup
b7ddb23e34
chore(cli): add vitest config for CLI test suite 2026-03-02 18:32:03 -08:00
kumarabhirup
6d51543f39
test(cli): add argv, cli-name, cli-utils, ports, profile, profile-utils, and respawn-policy tests 2026-03-02 18:31:56 -08:00
kumarabhirup
55a94523a7
test(cli): add run-main entry point tests 2026-03-02 18:31:48 -08:00
kumarabhirup
5eb084db95
test(cli): add bootstrap-external unit and bootstrap-command tests 2026-03-02 18:31:40 -08:00
kumarabhirup
0f057c0346
feat(cli): overhaul bootstrap-external with gateway auto-fix, robust CLI detection, and agent-auth check 2026-03-02 18:31:15 -08:00
kumarabhirup
be246df30f
feat(cli): add workspace-seed module for profile bootstrapping 2026-03-02 18:31:08 -08:00
kumarabhirup
e5aa1ac311
test(cli): add windows-argv unit tests 2026-03-02 18:31:00 -08:00
kumarabhirup
91e3742be7
feat(cli): add testability options to normalizeWindowsArgv 2026-03-02 18:30:52 -08:00
kumarabhirup
5b371afd66
chore: add .cursor/skills/ to gitignore and ironclaw-auth extension label 2026-03-02 18:30:45 -08:00
kumarabhirup
52707f471d
refactor!: IronClaw v2.0 - external OpenClaw runtime
BREAKING CHANGE: Convert repository to IronClaw-only package with strict
external dependency on globally installed `openclaw` runtime.

### Changes

- Remove entire OpenClaw core source from repository (src/agents/*, src/acp/*,
  src/commands/*, and related modules)
- Implement CLI delegation: non-bootstrap commands now delegate to global
  `openclaw` binary via external contract
- Remove local OpenClaw path resolution from web app; always spawn global
  `openclaw` binary instead of local scripts
- Rename package.json scripts: `pnpm openclaw` → `pnpm ironclaw`,
  `openclaw:rpc` → `ironclaw:rpc`
- Update bootstrap flow to verify and install global OpenClaw when missing
- Migrate web workspace/profile logic to align with OpenClaw state paths
- Add migration contract tests for stream-json, session subscribe, and profile
  resolution behaviors
- Update build/release pipeline for IronClaw-only artifacts
- Update documentation for new peer + global installation model

### Architecture

IronClaw is now strictly a frontend/UI/bootstrap layer:
- `npx ironclaw` bootstraps OpenClaw (if missing), runs guided onboarding
- IronClaw UI serves on localhost:3100
- OpenClaw Gateway runs on standard port 18789
- Communication via stable CLI contracts and Gateway WebSocket protocol only

### Migration

Users must have `openclaw` installed globally:
  npm install -g openclaw

Existing IronClaw profiles and sessions remain compatible through gateway
protocol stability.

Refs: bootstrap_dev_testing, ironclaw_frontend_split, strict-external-openclaw
2026-03-01 16:11:40 -08:00
kumarabhirup
9ca4263147
👌 IMPROVE: discord fix 2026-02-24 17:20:34 -05:00
kumarabhirup
00baf45a2f
fix(web): handle array-style date values in object view filters
YAML-parsed date_between/between filters store range values as a
two-element array under `value`, but the filter system expected
separate value/valueTo fields. Add normalizeFilterGroup at the YAML
read boundary and defensive array handling in the evaluator and SQL
builder so both formats work correctly.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-22 02:08:25 -08:00
kumarabhirup
38215f08ea
release: v2026.2.22-1.1 2026-02-22 01:40:27 -08:00
kumarabhirup
0cf12a3f03
fix(tests): update SKIP_PATTERNS regex to match test-helpers files more accurately 2026-02-22 01:37:38 -08:00
kumarabhirup
e96bb0f59e
release: v2026.2.22-1 2026-02-22 01:17:46 -08:00
kumarabhirup
6d220fb4f4
ci: skip Run tests step for bun lane on push events 2026-02-22 01:14:05 -08:00
kumarabhirup
20ace16d4c
fix(web): prevent subagent sessions from leaking into chat sidebar
- Skip updateIndex for session IDs containing :subagent: so they don't
  appear as top-level "New Chat" entries in the sidebar
- Filter subagent IDs in the sidebar component as a safety net
- Clean up existing leaked entries from index.json

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-22 01:11:26 -08:00
kumarabhirup
36553cf0c0
docs: enhance description of past web sessions in system prompt
Updated the documentation for past web sessions to clarify that each session is stored as a .jsonl file, and provided instructions on managing the index.json file for UI control and chat deletion.
2026-02-22 01:10:21 -08:00
Kumar Abhirup
8eb30c435d
Merge pull request #78 from DenchHQ/openclaw/2026.2.22
Upstream sync: Openclaw 2026.2.22
2026-02-22 00:39:20 -08:00
kumarabhirup
e4c01e7ca2
update: always install canonical ironclaw package name 2026-02-22 00:38:25 -08:00
kumarabhirup
6e2f34e193
agents: add self_update tool for non-owner gateway updates 2026-02-22 00:38:18 -08:00
kumarabhirup
e5a3b3685f
ci: add Docker base images to Dependabot schedule 2026-02-22 00:38:13 -08:00
kumarabhirup
7e894b5199
chore: bump version to 2026.2.22 2026-02-22 00:38:09 -08:00
kumarabhirup
a046cf2349
refactor(web): unify subagent tracking with parent session system
Subagents now use the same ActiveRun infrastructure as parent sessions:
- startSubscribeRun() creates a subscribe-only ActiveRun when sessions_spawn
  tool results are detected, using the same event buffering, persistence,
  and SSE reconnection as parent runs
- Stream/stop/chat routes no longer branch on subagent vs parent; both
  use getActiveRun/subscribeToRun with the session key as map key
- hasRunningSubagentsForParent moved into active-runs.ts to check the
  unified activeRuns map (+ disk registry fallback)
- Deferred finalization on lifecycle/end with 5s safety timeout
- ev.data.text fallback for assistant events without delta field
- 24h cleanup grace for subscribe-only runs (vs 30s for parent)

Reverts the broken childSessionKey registration from 32cfcf14f.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-22 00:35:07 -08:00
kumarabhirup
32cfcf14fa
fix(web): use correct field name childSessionKey in sessions_spawn registration
The spawn tool result uses `childSessionKey` (not `sessionKey`), and
task/label come from the tool input args, not the result details.
Without this fix registerSubagent was never called because the
extracted sessionKey was always undefined.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-22 00:15:33 -08:00
kumarabhirup
b29b2e39a3
fix(web): repair subagent streaming pipeline
- Handle ev.data.text fallback when delta is absent in assistant events
  (both active-runs and subagent-runs)
- Defer subagent finalizeRun until subscribe process closes so buffered
  events in readline are still delivered to SSE subscribers
- Register subagents from sessions_spawn tool results in active-runs so
  hasRunningSubagentsForParent works without opening SubagentPanel first
- Add disk registry fallback in hasRunningSubagentsForParent for cases
  where in-memory parentIndex has no entries
- Fix pre-commit hook: tolerate oxfmt exit 2 when all files are ignored

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-22 00:06:31 -08:00
kumarabhirup
15063e85a2
Merge branch 'main' of https://github.com/openclaw/openclaw into openclaw/2026.2.22 2026-02-21 21:27:55 -08:00
Vignesh Natarajan
98b2b16ac3 Security/Exec: persist inner commands for shell-wrapper approvals 2026-02-21 21:26:20 -08:00
miz-cha
2f023a4775
fix(telegram): disable autoSelectFamily by default on WSL2 (#21916)
Merged via /review-pr -> /prepare-pr -> /merge-pr.

Prepared head SHA: 431fd966706e300a378b177b25b00af952eddc8b
Co-authored-by: MizukiMachine <185313792+MizukiMachine@users.noreply.github.com>
Co-authored-by: obviyus <22031114+obviyus@users.noreply.github.com>
Reviewed-by: @obviyus
2026-02-22 10:54:49 +05:30
Vignesh Natarajan
73b4330d4c CLI/Config: keep explicitly unset keys removed 2026-02-21 21:08:04 -08:00
Robin Waslander
daf036a4f6
fix(slash): persist channel metadata from slash command sessions (#23065)
Merged via /review-pr -> /prepare-pr -> /merge-pr.

Prepared head SHA: 29fa20c7d773b2aac62dea912e00e438ce8ba9f6
Co-authored-by: hydro13 <6640526+hydro13@users.noreply.github.com>
Co-authored-by: obviyus <22031114+obviyus@users.noreply.github.com>
Reviewed-by: @obviyus
2026-02-22 10:29:06 +05:30
Vignesh Natarajan
6d11b46994 Media: preserve PDF MIME classification in file extraction 2026-02-21 20:50:25 -08:00