Commit Graph

551 Commits

Author SHA1 Message Date
Dhruv Sharma 2c0a32da24 fix: use createRequire for JSON import (Node16 module compat)
Import attributes (`with { type: "json" }`) require module >= node18.
Use createRequire instead since tsconfig targets Node16.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 05:10:50 +05:30
Dhruv Sharma 42adf3f35d fix: add JSON import attribute for plugin-registry.json
Node.js v20 requires `with { type: "json" }` for JSON module imports.
This fixes the ERR_IMPORT_ASSERTION_TYPE_MISSING error in the onboarding
integration test.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 05:07:56 +05:30
Dhruv Sharma 7eac80cec4 fix: resolve lint errors in plugin, start, and test files
- Remove unused `resolve` import from plugin.ts
- Use strict equality (`!== null && !== undefined`) instead of `!=` in start.ts
- Attach `cause` to re-thrown errors in plugin install/update rollback
- Fix forbidden `import()` type annotation in plugin test

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 05:05:50 +05:30
Dhruv Sharma 41989b71bc fix: remove dead code, validate SHELL path, and guard health JSON parsing
- Remove unused printPluginList wrapper (all callers use printPluginListFromCatalog directly)
- Remove unused getAgentFromRegistry export (all callers use getAgentByNameFromRegistry)
- Validate SHELL env var starts with / before passing to spawnSync
- Add shape validation for openclaw-health.json parsed content

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 05:01:28 +05:30
Dhruv Sharma 846ddc4135 refactor: enhance OpenClaw plugin interfaces and improve setup options 2026-03-31 04:56:03 +05:30
Dhruv Sharma 97b0646022 improve notifier-openclaw error messages 2026-03-31 04:02:33 +05:30
Dhruv Sharma 76c3a78d68 add OpenClaw health checks to ao doctor 2026-03-31 04:02:33 +05:30
Dhruv Sharma b613158675 auto-detect OpenClaw in non-interactive setup 2026-03-31 04:02:33 +05:30
Dhruv Sharma 85924b82a8 wire OpenClaw status and credentials into ao start 2026-03-31 04:02:33 +05:30
Dhruv Sharma 4d142eac1f add credential resolver for OpenClaw key sharing 2026-03-31 04:02:33 +05:30
Dhruv Sharma a10ceb6c09 enhance openclaw-probe with installation detection 2026-03-31 04:02:33 +05:30
Dhruv Sharma 7445e134c4 add plugin spec and update docs 2026-03-31 04:02:25 +05:30
Dhruv Sharma 594c371e37 add browser-open error handling 2026-03-31 04:02:25 +05:30
Dhruv Sharma 9ba04391d9 use plugin store for shared loader paths 2026-03-31 04:02:25 +05:30
Dhruv Sharma b4b111a910 add ao plugin CLI commands 2026-03-31 04:02:25 +05:30
Dhruv Sharma df9409eceb add plugin scaffold generator 2026-03-31 04:02:25 +05:30
Dhruv Sharma bd60fb7b52 extract marketplace catalog to JSON with refresh 2026-03-31 04:02:25 +05:30
Dhruv Sharma 39396d4534 add cli error formatter and plugin store 2026-03-31 04:02:25 +05:30
Dhruv Sharma 30cf2cb84a update core README 2026-03-31 04:02:14 +05:30
Dhruv Sharma 147cd2ea37 support custom import function in plugin registry 2026-03-31 04:02:14 +05:30
Dhruv Sharma 582c296737 add InstalledPluginConfig type and plugin config schema 2026-03-31 04:02:14 +05:30
Ashish Huddar b8c67dca50
Merge pull request #670 from ComposioHQ/chore/remove-mobile-app
chore: remove React Native/Expo mobile app
2026-03-30 18:24:55 +05:30
Ashish Huddar 3e5224cb88 Merge main into chore/remove-mobile-app - resolve conflicts 2026-03-30 18:06:08 +05:30
Gautam Tayal b7d3293858
Merge pull request #759 from gautamtayal1/fix/add-launch-command-script
fix (cli): tmux runtime to execute long launch commands via temp script
2026-03-30 15:48:52 +05:30
Gautam Tayal 1d659f953c
Merge pull request #786 from gautamtayal1/feat/add-model-prompt
feat (cli): add interactive agent runtime selection prompt
2026-03-30 15:41:09 +05:30
Gautam Tayal 79938be822 refactor(cli): replace clack prompts with custom promptSelect function 2026-03-30 15:32:15 +05:30
Gautam Tayal fbf177300e refactor(cli): simplify agent selection prompt by removing unnecessary confirmation step 2026-03-30 15:32:15 +05:30
Gautam Tayal da8aabe0f2 feat(cli): add interactive option for agent configuration prompt before starting 2026-03-30 15:32:15 +05:30
Gautam Tayal 2282e0e9c9 fix: update jsdocs 2026-03-30 15:32:15 +05:30
Gautam Tayal 7d42dd7672 fix(cli): reload project configuration after saving changes 2026-03-30 15:32:15 +05:30
Gautam Tayal 56b36613f6 refactor(cli): streamline agent handling in spawn command 2026-03-30 15:32:15 +05:30
Gautam Tayal 7ca7632e73 refactor(cli): remove save to config option 2026-03-30 15:32:15 +05:30
Gautam Tayal 8c23903fa2 feat: add agent selection prompt 2026-03-30 15:32:15 +05:30
Dhruv Sharma b611222d87
Merge pull request #730 from ruskaruma/fix/parallel-pr-enrichment
perf(web): parallelize PR enrichment in GET /api/sessions
2026-03-30 14:30:54 +05:30
Deepak Veluvolu 852f1f93c8
fix: added GraphQL batch PRfeat: add GraphQL batch PR enrichment for orchestrator polling enrichment for orchestrator polling (fixes #608) (#637)
## Approach

  The orchestrator polling loop previously made individual API calls for each PR's
  state, CI status, and review decision - 3 separate calls per PR per poll.
  With multiple PRs being monitored, this quickly exhausted GitHub's 5,000-point
  hourly rate limit.

  This PR implements GraphQL batching using aliases, which allows fetching data
  for up to 25 PRs in a single GraphQL query. Additionally, a 2-Guard ETag
  strategy is used to skip queries entirely when nothing has changed.

  ## Implementation

  ### GraphQL Batching
  - `generateBatchQuery()` creates a single GraphQL query with unique aliases (pr0, pr1, pr2...)
  - Each PR gets the same set of fields: state, CI status, review decision, mergeability
  - Uses inline fragments for union types (CheckRun/StatusContext)
  - Variable types: String! for owner/repo, Int! for PR numbers

  ### 2-Guard ETag Strategy
  Before running expensive GraphQL queries, two lightweight REST ETag checks detect if
  anything changed:

  **Guard 1 (PR List ETag):**
  - Checks `/repos/{owner}/{repo}/pulls` with If-None-Match header
  - Returns 304 if no changes → skips GraphQL (0 points)
  - Detects: New commits, title/body edits, labels, reviews, state changes

  **Guard 2 (Commit Status ETag):**
  - Checks `/repos/{owner}/{repo}/commits/{sha}/status` per cached PR
  - Returns 304 if no changes → skips GraphQL (0 points)
  - Detects: CI status transitions (failing → passing, passing → failing, etc.)

  ### Caching
  - LRU caches for PR metadata (max 200 entries), ETags (100/500 entries)
  - Cache misses trigger individual API fallback via lifecycle-manager
  - No placeholder caching on errors - allows proper fallback behavior

  ## Impact

  - **API reduction:** ~88% fewer REST calls (216 vs 1,800 calls/hour for 5 PRs)
  - **GraphQL efficiency:** Batch query fetches 25 PRs for ~40 points vs ~400 for individual calls
  - **Polling interval:** Still 30s, but most polls return cached data (0 cost)
  - **Fallback:** Individual SCM calls still work for edge cases (permissions, cache misses)

  ## Testing

  - Unit tests for query generation and parsing helpers
  - Integration tests for real GraphQL API calls (skipped by default)
  - Covers batch failures, partial success, empty arrays, edge cases
2026-03-30 00:31:04 +05:30
Dhruv Sharma dfc8cdf516
Merge pull request #790 from gautamtayal1/fix/git-worktree-origin
fix (workspace): bugfix with git worktree creation for local repos
2026-03-29 22:18:13 +05:30
Dhruv Sharma d65d72e5c1
Merge pull request #797 from gautamtayal1/refactor/migrate-to-clack-prompts
refactor(cli): replace readline prompts with clack prompts
2026-03-29 22:17:49 +05:30
Gautam Tayal 1ed4430c70 fix: revert unlink script file 2026-03-29 20:34:33 +05:30
Harshit Singh Bhandari 8f271c4da5
Merge pull request #795 from harshitsinghbhandari/main
Fix: Resolved OpenCode discovery flakiness via extended timeouts, enabled integration test suite, and parallelized CLI session/status I/O for 80% faster response times.
2026-03-29 19:01:07 +05:30
harshitsinghbhandari 844c97cb63 minor fix 2026-03-29 18:52:34 +05:30
harshitsinghbhandari 8cafb578ba fix(core): sync enrichment timeout with discovery constant to ensure sufficient headroom 2026-03-29 18:47:00 +05:30
Gautam Tayal 5ba73016e0 fix: update promptSelect to handle undefined initialValue 2026-03-29 18:39:32 +05:30
suraj_markup 523550dd15
Merge pull request #791 from ComposioHQ/changeset-release/main
chore: version packages
2026-03-29 18:31:32 +05:30
harshitsinghbhandari e858cef29b perf(cli): parallelize tmux activity and agent introspection in fallback 'ao status' 2026-03-29 18:28:16 +05:30
harshitsinghbhandari 124cc33745 perf(cli): parallelize I/O calls in 'ao session ls' for faster listing 2026-03-29 18:28:04 +05:30
Gautam Tayal a180520575 refactor(cli): replace readline prompts with clack prompts 2026-03-29 18:06:27 +05:30
suraj-markup e9d7b64b05 chore: trigger CI for release PR 2026-03-29 17:11:48 +05:30
harshitsinghbhandari dd21054f48 extend opencode discovery timeout, include integration tests in pnpm test 2026-03-29 16:44:53 +05:30
github-actions[bot] d1e937b855 chore: version packages 2026-03-29 09:21:26 +00:00
suraj_markup f73aebe634
Merge pull request #761 from suraj-markup/fix-runtime-terminal-projectid-hardening
fix(web): runtime terminal port resolution + project-id hardening
2026-03-29 14:50:25 +05:30