mirror of
https://github.com/rowboatlabs/rowboat.git
synced 2026-07-03 20:41:07 +02:00
ci(code-mode): cross-platform smoke matrix + one-shot diagnose script
- x-code-mode-smoke.yml: on apps/x PRs, package the app on mac/linux/windows and run acp-smoke.mjs, which asserts (1) adapters staged + native engines stripped, (2) each staged adapter boots from the packaged app via the packaged Electron binary and answers ACP initialize, (3) a fake engine that launches but never responds is converted into a clear startup-timeout error instead of hanging forever (the silent-hang class) - diagnose-code-mode.sh: colleagues run one command and send one blob (engine versions/paths/types, login-shell vs GUI PATH, auth presence, stream-json probe, newest SDK debug log) — one round trip instead of five - forge.config.cjs: only sign/notarize when APPLE_ID is set, so unsigned local mac builds and the CI smoke matrix can package deterministically - client.ts: startup timeout overridable via ROWBOAT_ACP_STARTUP_TIMEOUT_MS (CI uses 10s; also an escape hatch for slow MCP-heavy setups) Verified on Windows: all smoke checks pass, including the end-to-end fake-hanging-engine timeout (fails in 10.0s with the stderr-enriched error).
This commit is contained in:
parent
ae362f50f4
commit
d2d1814bea
5 changed files with 371 additions and 13 deletions
|
|
@ -33,7 +33,12 @@ export interface AcpClientOptions {
|
|||
// never answers the handshake). Without a deadline that failure mode is an infinite
|
||||
// "(pending...)" with zero feedback. Prompts are intentionally NOT time-limited:
|
||||
// turns legitimately run for many minutes and may wait on user permission asks.
|
||||
const STARTUP_TIMEOUT_MS = 60_000;
|
||||
// Overridable via ROWBOAT_ACP_STARTUP_TIMEOUT_MS — used by the CI smoke test to
|
||||
// avoid waiting the full minute, and an escape hatch for genuinely slow setups
|
||||
// (e.g. many MCP servers configured in the engine's user settings).
|
||||
const STARTUP_TIMEOUT_MS = Number(process.env.ROWBOAT_ACP_STARTUP_TIMEOUT_MS) > 0
|
||||
? Number(process.env.ROWBOAT_ACP_STARTUP_TIMEOUT_MS)
|
||||
: 60_000;
|
||||
|
||||
// Map a raw ACP session/update notification onto our small CodeRunEvent union.
|
||||
function toEvent(update: SessionUpdate): CodeRunEvent {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue