Skip to content

Write docs/parallel-one.md about delegation, at least five hundred characters - #17

Merged
gHashTag merged 18 commits into
queen/1137-write-docs-parallel-one-md-about-basefrom
queen/1137-write-docs-parallel-one-md-about
Aug 2, 2026
Merged

Write docs/parallel-one.md about delegation, at least five hundred characters#17
gHashTag merged 18 commits into
queen/1137-write-docs-parallel-one-md-about-basefrom
queen/1137-write-docs-parallel-one-md-about

Conversation

@gHashTag

Copy link
Copy Markdown
Owner

For gHashTag/trios#1137

Opened by the Queen for queen-swift.

gHashTagand others added 18 commits July 24, 2026 08:43
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.
@gHashTag
gHashTag merged commit 1f16aec into queen/1137-write-docs-parallel-one-md-about-baseAug 2, 2026
@github-actions

Copy link
Copy Markdown

✅ Tests passed — 1040/1041

SuitePassedFailedSkipped
agent-core-agent262/26200
agent-core-browser4/400
agent-core-integration0/101
agent-core-lib272/27200
agent-core-root34/3400
agent-core-skills31/3100
agent-core-tools235/23500
⚠️agent-typecheck0/000
agent80/8000
build6/600
cdp-protocol5/500
eval97/9700
shared14/1400

View workflow run

@github-actions
github-actionsBot deleted the queen/1137-write-docs-parallel-one-md-about branch August 9, 2026 02:05
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@gHashTag