mirror of
https://github.com/browseros-ai/BrowserOS.git
synced 2026-05-21 12:55:09 +00:00
Three diagnostics + one config swap to investigate why the eval-weekly
workflow has been failing on dev since 2026-04-25 with "Server health
check timed out" (every worker, every retry).
Background:
- Last successful weekly eval on dev: 2026-04-18 (sha f5a2b73)
- Since then, ~30 server commits landed including Lima/VM runtime,
OpenClaw service, ACL system, ACP SDK — 108 server files changed,
~13K LOC added.
- Server process spawns cleanly in CI (PID logged) but never binds
/health within the 30s eval-side timeout. Static analysis finds no
obvious blocker; we need runtime evidence.
Changes:
1. apps/server/package.json — add `start:ci` script (no `--watch`).
The default `start` uses `bun --watch` which forks a child process
that watches every file in the import graph. Dev's graph is ~108
files larger than main's; on a cold CI runner the watcher setup is a
plausible source of multi-second startup overhead.
2. apps/eval/src/runner/browseros-app-manager.ts:
- Use `start:ci` when `process.env.CI` is set (true on
GitHub-hosted runners by default), else `start`.
- Capture per-worker server stderr to /tmp/browseros-server-logs/
instead of ignoring it. Without this we have no visibility into
why the server is hung pre-/health.
- Bump SERVER_HEALTH_TIMEOUT_MS 30s -> 90s. Dev's larger module
graph may simply need more cold-start time on CI.
3. .github/workflows/eval-weekly.yml — upload the server logs dir as a
workflow artifact (always, not just on success) so we can post-mortem
any startup failure on the next run.
4. configs/agisdk-real-smoke.json — swap K2.5 from OpenRouter ->
Fireworks (bypasses the OpenRouter per-key spend cap that has been
eating recent runs) and drop num_workers 10 -> 4 (well below the
Fireworks per-account TPM threshold that overwhelmed the original
2026-04-23 run).
Plan: trigger the eval-weekly workflow on this branch with the agisdk
config and observe (a) whether it gets past server startup, and
(b) if it doesn't, what the captured server stderr says.
133 lines
4.5 KiB
JSON
133 lines
4.5 KiB
JSON
{
|
|
"name": "@browseros/server",
|
|
"version": "0.0.92",
|
|
"description": "BrowserOS server",
|
|
"type": "module",
|
|
"main": "./src/index.ts",
|
|
"bin": {
|
|
"browseros-server": "./src/index.ts"
|
|
},
|
|
"scripts": {
|
|
"start": "bun --watch --env-file=.env.development src/index.ts",
|
|
"start:ci": "bun --env-file=.env.development src/index.ts",
|
|
"build": "bun ../../scripts/build/server.ts --target=all",
|
|
"test": "bun run test:all",
|
|
"test:all": "bun run ./tests/__helpers__/run-test-group.ts all",
|
|
"test:agent": "bun run ./tests/__helpers__/run-test-group.ts agent",
|
|
"test:api": "bun run ./tests/__helpers__/run-test-group.ts api",
|
|
"test:browser": "bun run ./tests/__helpers__/run-test-group.ts browser",
|
|
"test:cdp": "bun run test:browser",
|
|
"test:core": "bun run ./tests/__helpers__/run-test-group.ts core",
|
|
"test:integration": "bun run ./tests/__helpers__/run-test-group.ts integration",
|
|
"test:lib": "bun run ./tests/__helpers__/run-test-group.ts lib",
|
|
"test:root": "bun run ./tests/__helpers__/run-test-group.ts root",
|
|
"test:skills": "bun run ./tests/__helpers__/run-test-group.ts skills",
|
|
"test:tools": "bun run ./tests/__helpers__/run-test-group.ts tools",
|
|
"test:tools:acl": "bun run test:cleanup && bun --env-file=.env.development test ./tests/tools/acl-scorer.test.ts",
|
|
"test:tools:filesystem": "bun run test:cleanup && bun --env-file=.env.development test ./tests/tools/filesystem",
|
|
"test:tools:input": "bun run test:cleanup && bun --env-file=.env.development test ./tests/tools/input.test.ts",
|
|
"test:cleanup": "./tests/__helpers__/cleanup.sh",
|
|
"typecheck": "tsc --noEmit",
|
|
"devtools": "bunx @ai-sdk/devtools"
|
|
},
|
|
"exports": {
|
|
".": {
|
|
"types": "./src/rpc.ts",
|
|
"import": "./src/rpc.ts"
|
|
},
|
|
"./agent": {
|
|
"types": "./src/agent/ai-sdk-agent.ts",
|
|
"default": "./src/agent/ai-sdk-agent.ts"
|
|
},
|
|
"./agent/types": {
|
|
"types": "./src/agent/types.ts",
|
|
"default": "./src/agent/types.ts"
|
|
},
|
|
"./agent/errors": {
|
|
"types": "./src/agent/errors.ts",
|
|
"default": "./src/agent/errors.ts"
|
|
},
|
|
"./lib/clients/gateway": {
|
|
"types": "./src/lib/clients/gateway.ts",
|
|
"default": "./src/lib/clients/gateway.ts"
|
|
},
|
|
"./agent/tool-loop": {
|
|
"types": "./src/agent/ai-sdk-agent.ts",
|
|
"default": "./src/agent/ai-sdk-agent.ts"
|
|
},
|
|
"./agent/tool-loop/provider-factory": {
|
|
"types": "./src/agent/provider-factory.ts",
|
|
"default": "./src/agent/provider-factory.ts"
|
|
},
|
|
"./browser": {
|
|
"types": "./src/browser/browser.ts",
|
|
"default": "./src/browser/browser.ts"
|
|
},
|
|
"./browser/backends/cdp": {
|
|
"types": "./src/browser/backends/cdp.ts",
|
|
"default": "./src/browser/backends/cdp.ts"
|
|
},
|
|
"./tools/registry": {
|
|
"types": "./src/tools/registry.ts",
|
|
"default": "./src/tools/registry.ts"
|
|
}
|
|
},
|
|
"dependencies": {
|
|
"@agentclientprotocol/sdk": "0.21.0",
|
|
"@ai-sdk/amazon-bedrock": "^4.0.62",
|
|
"@ai-sdk/anthropic": "^3.0.46",
|
|
"@ai-sdk/azure": "^3.0.31",
|
|
"@ai-sdk/devtools": "^0.0.15",
|
|
"@ai-sdk/google": "^3.0.30",
|
|
"@ai-sdk/mcp": "^1.0.21",
|
|
"@ai-sdk/openai": "^3.0.30",
|
|
"@ai-sdk/openai-compatible": "^2.0.30",
|
|
"@ai-sdk/provider": "^3.0.8",
|
|
"@browseros/cdp-protocol": "workspace:*",
|
|
"@browseros/shared": "workspace:*",
|
|
"@google/gemini-cli-core": "^0.16.0",
|
|
"@google/genai": "1.30.0",
|
|
"@hono/mcp": "^0.2.3",
|
|
"@hono/node-server": "^1.19.6",
|
|
"@hono/zod-validator": "^0.4.3",
|
|
"@huggingface/transformers": "^3.4.0",
|
|
"@modelcontextprotocol/sdk": "^1.27.1",
|
|
"@openrouter/ai-sdk-provider": "^2.2.3",
|
|
"@sentry/bun": "^10.31.0",
|
|
"acpx": "0.6.1",
|
|
"ai": "^6.0.94",
|
|
"chrome-devtools-frontend": "^1.0.1577886",
|
|
"commander": "^14.0.1",
|
|
"core-js": "3.45.1",
|
|
"debug": "4.4.3",
|
|
"eventsource-parser": "^3.0.0",
|
|
"fuse.js": "^7.1.0",
|
|
"gray-matter": "^4.0.3",
|
|
"hono": "^4.12.3",
|
|
"jimp": "^1.6.0",
|
|
"klavis": "^2.15.0",
|
|
"pino": "^9.6.0",
|
|
"posthog-node": "^4.17.0",
|
|
"puppeteer-core": "24.23.0",
|
|
"ws": "^8.18.0",
|
|
"zod": "^3.24.2",
|
|
"zod-from-json-schema": "^0.1.0"
|
|
},
|
|
"devDependencies": {
|
|
"@types/bun": "1.3.5",
|
|
"@types/debug": "^4.1.12",
|
|
"@types/node": "^24.3.3",
|
|
"@types/sinon": "^21.0.0",
|
|
"@types/ws": "^8.5.13",
|
|
"async-mutex": "^0.5.0",
|
|
"pino-pretty": "^13.0.0",
|
|
"puppeteer": "24.23.0",
|
|
"sinon": "^21.0.1",
|
|
"typescript": "^5.9.2"
|
|
},
|
|
"optionalDependencies": {
|
|
"chrome-devtools-mcp": "latest"
|
|
},
|
|
"license": "AGPL-3.0-or-later"
|
|
}
|