spawn/.github/workflows
A ec210e37af
fix: Result monad for retry logic — prevent duplicate server creation (#1771)
* fix: Result monad for retry logic — prevent duplicate server creation

SSH exit 255 after an interactive session caused runWithRetries to retry
the entire bash script, creating duplicate servers. The old withRetry
also blindly retried all errors including timeouts where the remote
command may have already completed.

Introduces a Result<T> monad (Ok/Err) so callers explicitly signal
whether a failure is retryable (return Err) or fatal (throw). Adds
wrapSshCall() that classifies SSH errors: transient connection failures
are retryable, timeouts are not. Removes retry loop from the top-level
script runner entirely since it spans server creation + interactive
session.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* docs: mandate draft-PR-first workflow for all changes

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix: add biome lint to CI and pre-commit hook, fix lint violations

- Add Biome lint job to .github/workflows/lint.yml
- Add TypeScript lint check to .githooks/pre-commit
- Fix useBlockStatements violations in ui.ts and tests
- Add biome lint to CLAUDE.md "After Each Change" checklist

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* refactor: rename Result.value to Result.data

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix: clean up stale pre-commit hook

- Remove dead check for deleted functions (write_oauth_response_file,
  create_oauth_response_html) — they no longer exist in the codebase
- Fix early exit skipping Biome lint when no .sh files are staged
- Replace echo -e with printf (the hook was using the pattern it bans)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix: resolve biome lint errors blocking CI

- Fix useImportType: import { type Result } → import type { Result }
- Fix noUnusedImports: remove unused KNOWN_FLAGS import
- Fix noUnusedTemplateLiteral: template literal → string literal

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: lab <6723574+louisgv@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-02-22 20:39:42 -05:00
..
cli-release.yml refactor: move fly TS into cli/src/fly/, add build-clouds.sh (#1604) 2026-02-21 12:34:09 -08:00
discovery.yml fix: Node.js v22 upgrade, aider uv install, SSH & cloud reliability (#1440) 2026-02-18 06:54:07 -05:00
fly-docker.yml feat: pre-built Docker image for OpenClaw on Fly.io (#1686) 2026-02-22 02:50:46 -05:00
gate.yml fix: allow repo collaborators through the gate workflow (#1166) 2026-02-14 18:32:50 -08:00
lint.yml fix: Result monad for retry logic — prevent duplicate server creation (#1771) 2026-02-22 20:39:42 -05:00
qa.yml chore: disable QA workflow schedule until VM is fixed (#1722) 2026-02-22 11:06:50 -08:00
refactor.yml fix: Node.js v22 upgrade, aider uv install, SSH & cloud reliability (#1440) 2026-02-18 06:54:07 -05:00
security.yml refactor: simplify claude launch — no streaming, no output monitoring (#1412) 2026-02-17 09:02:47 -08:00
test.yml refactor: remove shared/common.sh and 27 subprocess-heavy test files (#1728) 2026-02-22 11:32:27 -08:00