Write docs/parallel-one.md about delegation, at least five hundred characters - #17
Merged
gHashTag merged 18 commits intoAug 2, 2026
Conversation
Replace ad-hoc task surfacing with a trailing TODO panel in the expanded chat workspace, sourced entirely from persisted AgentTask planner state via a new pure TodoListProjection (no static/demo fixtures). Panel uses the native SwiftUI inspector (macOS 14) with a bounded, scrollable column, completion toggles, and the existing accept/reject/complete actions. A pure TodoPanelPolicy governs availability and default presentation: visible by default in fullscreen, collapsible/toggleable at narrower widths so it never crushes the conversation column. Accessibility labels, keyboard toggle, dark/light theming, and reduced-motion are preserved. Refs T27-EPIC-001 / FULLSCREEN-CHAT-001
Add .github/workflows/trios-swift.yml running on the macos-15 runner image (macos-14 is being deprecated in 2026). The app keeps its macOS 14 deployment target (Package.swift .macOS(.v14)); a newer runner still builds for the older target. Uses the runner's stable default Xcode and logs swift/xcodebuild/SDK versions — no exact Xcode version is pinned because the repo does not require one. Runs the two new focused standalone tests (TodoListProjection, TodoPanelPolicy) and the existing ChatWorkspaceLayout/ChatLogic harnesses via their exact swiftc commands, then compiles TriOSKit and runs XCTest via SwiftPM. The workflow is compile/test-only: no GUI launch, no code signing, no artifacts. trios/build.sh is deliberately not run in CI because it needs the private Trinity Queen SwiftPM package and ad-hoc bundle signing; this limitation is documented in the workflow and trios/CLAUDE.md. No secrets or signing credentials are used. Concurrency cancels superseded runs; SwiftPM .build is cached on Package.swift hash. Refs T27-EPIC-001 / FULLSCREEN-CHAT-001
The .internal-docs submodule is a private external repo, so the sync needs INTERNAL_DOCS_SYNC_TOKEN. When that secret is unset, passing it as an empty `token:` made actions/checkout fail with "Input required and not supplied: token", turning the scheduled run red every 4 hours. Add a preflight step that gates checkout and the sync on the token being present, mirroring the existing handoff-window skip for an unconfigured submodule. When the secret exists the full sync and validation run unchanged. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
gHashTag/BrowserOS is a fork of browseros-ai/BrowserOS and inherits this workflow, but the .internal-docs submodule (browseros-ai/internal-docs) is private to upstream and 404s in the fork even when a secret is set. Add a repository identity guard as the first step: only browseros-ai/BrowserOS proceeds; any fork logs a clear message and exits cleanly WITHOUT accessing INTERNAL_DOCS_SYNC_TOKEN. Upstream keeps the existing token preflight and full sync/PR/auto-merge behavior. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Remove hardcoded /Users/playra/BrowserOS-full/trios macOS path. TRIOS_ROOT now resolves to process.env.TRIOS_ROOT || __dirname, and all ports (SOVEREIGN/A2A/CANARY/DASHBOARD) are env-overridable with the previous values as defaults. Config is now identical across macOS/Linux/CI checkouts.
Backend consolidated into Rust trios-server. Host-runtime browser/VM pieces now driven over A2A (browser/enqueue|poll|result). Do not add new backend logic here. Physical removal deferred until clients repointed (TS-retirement item 3, deploy decision). See trios/docs/TS_RETIREMENT.md.
TS-retirement item 3 (client switchover), code side. The consolidated Rust trios-server serves MCP, A2A and /health on one port. Repoint clients at it: - build.sh Info.plist: TRIOS_A2A_PORT 9200 -> 9105 (== TRIOS_MCP_PORT), so Swift agentHealthURL/mcpBaseURL hit one backend process. - trios-mcp-bridge DEFAULT_CONFIG.browserosMcpUrl 9200 -> 9105 (+ --help text and contract test updated; bun test green). trios-server already resolves 9105 via its TRIOS_PORT -> TRIOS_MCP_PORT fallback, so no server change needed. Remainder is deploy-only: rebuild .app and run trios-server on 9105 instead of Hono.
…hTag/trios monorepo Canonical copies now live in trios repo (apps/trios-macos, apps/trios-mcp-bridge) next to the consolidated Rust backend (crates/trios-server, REST /a2a/* + SSE). Copies here remain temporarily for the macOS CI workflow; edit in trios repo.
The Swift macOS app now lives in gHashTag/trios (apps/trios-macos) with its own CI; the Rust trios-server serves the full A2A surface on the port the app already targets (TRIOS_MCP_PORT). Removed from this repo: - trios/ (385 files) — verified file-by-file present in trios repo first - packages/browseros-agent/apps/trios-mcp-bridge/ — superseded by trios-server (Rust) speaking the Swift wire contract natively - .github/workflows/trios-swift.yml — moved to the trios repo - INTEGRATION.md — documented the deleted bridge topology - .gitmodules: dropped trios-mesh submodule (content lives in gHashTag/tri-net) - bun.lock regenerated without the trios-mcp-bridge workspace package apps/server stays for now: tracked apps/eval imports @browseros/server (agent tool-loop, CDP browser, tools registry) in 10 files, and src/agent/ai-sdk-agent.ts couples to src/api/services/klavis — physical deletion would break bun workspace resolution and every test.yml suite. Wave 7 plan: extract the agent core into its own package, then delete.
…face - apps/server -> packages/agent-core: keep only the host-bound agent core (tool loop, CDP browser driver, MCP tools, clients); klavis strata proxy/cache moved to src/lib/clients/klavis - delete the TS HTTP surface: src/api (51 Hono routes), index/main/rpc/ config/types entrypoints, API tests, server build (scripts/build/server*, build:server*, release-server.yml) - apps/eval now depends on @browseros/agent-core; apps/agent no longer imports @browseros/server (RPC contract served by Rust trios-server) - dev tooling (tools/dev, tools/dogfood, process-compose, scripts/dev) starts 'cargo run -p trios-server' from $TRIOS_REPO - CI: test.yml matrix -> 7 agent-core suites, eval-weekly paths updated - docs: CLAUDE.md/README.md point at packages/agent-core + Rust backend Backend is now solely the Rust trios-server (gHashTag/trios).
TS-retirement endgame: apps/eval can now delegate goals to the production Rust agent loop instead of the local TS tool loop. - agent-core: new thin typed client ./lib/clients/trios-server (POST /agent/run, GET /agent/tools; fetch-based, zero deps, AbortSignal + timeout, TriosServerError on non-2xx) + bun tests against a Bun.serve mock - eval: new ExecutorBackendKind 'rust-server' + RustServerExecutorBackend mapping /agent/run replies onto the ExecutorResult contract (max_steps -> timeout, transport errors -> blocked, toolsUsed from transcript), wired into createExecutorBackend; 4 tests - agent-core README: TS tool loop is legacy eval baseline only; production loop is Rust trios-server typecheck agent-core+eval clean; bun tests 7/7; biome clean
…S server helpers - tests/__helpers__/trios-server.ts: spawns the Rust trios-server binary (TRIOS_SERVER_BIN env or PATH lookup), waits /health, SIGTERM/SIGKILL - setup.ts: server spawn is optional — browser-only when binary absent - utils.ts: remove dead withMcpServer + MCP SDK glue (MCP is over WS now) - new gated tests/tools/trios-server-http.test.ts: /health, /agent/tools, /metrics against the real binary (skipIf no binary) - CI test.yml: agent-core-tools job checks out gHashTag/trios, builds trios-server (cached by Cargo.lock) and passes TRIOS_SERVER_BIN
Bare 'lsof -ti :port' also matches connected client sockets — including the bun test process itself (lingering CDP connections after a browser shutdown) — so the helper was killing the test runner mid-suite (navigation.test.ts aborted the whole tools run with exit 1). Restrict to -sTCP:LISTEN and never kill our own pid.
…platforms CI runs BrowserOS headless on Linux where the Ozone platform is not x11, so CDP hidden windows are unavailable by design (browser_handler.cc HiddenWindowsSupportedOnThisPlatform). Detect the capability error and skip instead of failing (3 tests: new_hidden_page, show_page restore, create_hidden_window).
…r persistence
A) fetchMcpTools compiled zod schemas via Function (14 calls, CSP/MV3
hazard). Root cause: two zod instances — app resolved zod@4.3.6 while
@modelcontextprotocol/sdk got its own zod@4.3.5 from a scoped bun.lock
entry, so z.config({ jitless: true }) configured the wrong instance.
Fix: permanent jitless at module top of lib/mcp/client.ts + bun.lock
dedup (scoped sdk/zod entry removed; SDK now uses hoisted zod@4.3.6).
Test 'lists tools without invoking Function-based schema compilation'
now passes; full agent suite 80/0.
B) Delete dead TS server persistence layer superseded by Rust
trios-server (trios-store, SeaORM/SQLite): src/lib/db (drizzle client,
schema, migrations), db-agent-store + AgentStore, server-side OAuth
stack (token-store/manager, callback-server, providers, index) and
their tests — 2585 lines. initializeOAuth had no callers, so
resolveOAuthConfig always threw; behavior preserved explicitly.
Drop drizzle-orm/drizzle-kit deps + db:generate script. Remove stale
bun.lockb (7 weeks behind text bun.lock; bun>=1.2 uses bun.lock).
agent-core suites: lib 272, agent 262, root 34, skills 31 — all green;
typecheck + biome clean.- apps/agent had 42 tsc errors, all but two caused by the missing
GraphQL codegen output (generated/ is gitignored); typecheck now
runs codegen first when generated/graphql is absent (same guard
as the dev script)
- fix the two real errors in useSoulContent: hc<any> fallback needs
an explicit $get({}) arg and a typed json() payload (the typed
Hono AppType died with the TS server; the Rust trios-server keeps
the same wire contract)
- test.yml: new agent-typecheck matrix suite…erOS rename The hardcoded /Users/playra/BrowserOS-full/trios/... path broke when the checkout was renamed. Resolution now: TRIOS_CLADE_IMPROVE_PATH override, then TRIOS_ROOT/target/release/clade-improve, then the new default /Users/playra/BrowserOS/trios/target/release/clade-improve.
…on, at least five hundred characters
✅ Tests passed — 1040/1041
|
github-actionsBot
deleted the
queen/1137-write-docs-parallel-one-md-about
branch
August 9, 2026 02:05
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
For gHashTag/trios#1137
Opened by the Queen for queen-swift.