Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
456 commits
Select commit Hold shift + click to select a range
df40444
0.6.1
chrysb Mar 11, 2026
3617999
Merge pull request #11 from armanddp/fix/onboarding-auth-env-leak
chrysb Mar 11, 2026
c57c921
Add skip action on onboarding pairing step.
chrysb Mar 11, 2026
d29c844
Improve agent tools management UX with reusable animated header actio…
chrysb Mar 11, 2026
04cd78c
Add cron jobs tab with job management UI, server routes, and bug fixes
chrysb Mar 12, 2026
e73beed
feat: add Slack as a first-class channel
keaganstokoe Mar 12, 2026
78347d4
Add interactive cron calendar with persisted panel sizing.
chrysb Mar 12, 2026
8849a91
Refine cron overview UX with trend-linked run history.
chrysb Mar 12, 2026
e667d59
Centralize cron and usage cost estimation in a shared server utility.
chrysb Mar 12, 2026
7ef6596
0.6.2-beta.0
chrysb Mar 12, 2026
50801e7
Fix cron usage run counts for calendar tooltip accuracy.
chrysb Mar 12, 2026
7407ecd
0.6.2-beta.1
chrysb Mar 12, 2026
fdc6bfa
Refine cron calendar slot tooltip context and token tiering.
chrysb Mar 12, 2026
e2b71aa
0.6.2-beta.2
chrysb Mar 12, 2026
85c0146
Polish cron detail UX and align cron CLI command usage.
chrysb Mar 12, 2026
c7869d3
Unify cron run history UI and streamline detail editing workflow.
chrysb Mar 12, 2026
2b071a0
0.6.2-beta.3
chrysb Mar 12, 2026
0c631fc
Pin OpenClaw 2026.3.11 and refine cron warning suppression.
chrysb Mar 12, 2026
cfc0e64
0.6.2-beta.4
chrysb Mar 12, 2026
f053f43
fix: complete Slack channel follow-ups and unify add-menu behavior
chrysb Mar 13, 2026
45c6df0
Merge pull request #16 from keaganstokoe/feature/slack-channel-support
chrysb Mar 13, 2026
1b04fe3
Merge pull request #17 from chrysb/feat/cron-tab
chrysb Mar 13, 2026
13fe458
Merge pull request #15 from chrysb/fix/issue-3-skip-pairing
chrysb Mar 13, 2026
3bfbf11
refine onboarding channel step with accordion layout
chrysb Mar 13, 2026
6343864
0.6.2-beta.5
chrysb Mar 13, 2026
372d85d
Refine cron tab UX and add actionable insights.
chrysb Mar 13, 2026
09479a8
Include remaining workspace updates.
chrysb Mar 13, 2026
0f0f4ff
0.6.2-beta.6
chrysb Mar 13, 2026
11c87d1
Refine cron usage math and polish setup UI.
chrysb Mar 13, 2026
c6fe4c9
Add fixed-header pane pattern and polish agent/models/envars tabs
chrysb Mar 13, 2026
791aa2d
0.7.0-beta.0
chrysb Mar 13, 2026
bcd0f83
Polish cron calendar layout and visibility.
chrysb Mar 13, 2026
ad0d67c
Refine up-next chronology and noisy-run expansion.
chrysb Mar 13, 2026
9571534
0.7.0-beta.1
chrysb Mar 13, 2026
d368951
0.7.0
chrysb Mar 13, 2026
2e7cc40
Setup: support read-only OpenClaw onboarding
Mar 13, 2026
cf37ca0
Polish cron calendar UX and add an interactive watchdog terminal.
chrysb Mar 13, 2026
f29fbf3
Refactor watchdog tab into feature submodules and hooks.
chrysb Mar 14, 2026
30b24d5
Decompose server entrypoint into init and websocket modules.
chrysb Mar 14, 2026
7f045bf
Merge branch 'feat/watchdog-terminal-and-cron-ui-polish'
chrysb Mar 14, 2026
2c862f9
Remove watchdog tab compatibility re-export shims.
chrysb Mar 14, 2026
d533eff
0.7.1
chrysb Mar 14, 2026
403da4f
Add AlphaClaw release-notes update modal and GitHub release notes API.
chrysb Mar 14, 2026
5217447
Fix cron recent-run collapse expansion rendering.
chrysb Mar 14, 2026
03d523d
0.7.2-beta.0
chrysb Mar 14, 2026
08646b1
Update usage breakdown analytics and align collapsed run rows with st…
chrysb Mar 14, 2026
d993166
0.7.2-beta.1
chrysb Mar 14, 2026
09a6d94
Upgrade cron trends and run-history UX with richer metrics and reliab…
chrysb Mar 14, 2026
788ae74
Add a Nodes tab and guided local-node setup flow for VPS deployments.
chrysb Mar 14, 2026
f7ec1ef
0.7.2-beta.2
chrysb Mar 14, 2026
0f0db9c
Refine node reconnect UX and harden update-status parsing.
chrysb Mar 14, 2026
5e3c4a0
Refine nodes UI layout and add per-node browser attach checks.
chrysb Mar 14, 2026
8efaa3b
Harden pairings JSON parsing for noisy CLI output.
chrysb Mar 14, 2026
f0e52ff
Handle hook query params safely and redact oauth secrets in logs.
chrysb Mar 14, 2026
a5812e9
0.7.2-beta.3
chrysb Mar 14, 2026
23fa402
Refine node pairing and browser attach UX for safer defaults.
chrysb Mar 14, 2026
17b09eb
0.7.2-beta.4
chrysb Mar 14, 2026
2f23e70
Pin OpenClaw runtime dependency to 2026.3.13.
chrysb Mar 14, 2026
b4ef67a
0.7.2-beta.5
chrysb Mar 14, 2026
13088c4
Refine node routing/pairing controls and harden file editor save hand…
chrysb Mar 14, 2026
db6e67d
0.7.2-beta.6
chrysb Mar 14, 2026
ac6c87d
Refine nodes setup flow and sidebar navigation polish.
chrysb Mar 14, 2026
adb1d8f
0.7.2-beta.7
chrysb Mar 14, 2026
d9d967d
0.8.0
chrysb Mar 14, 2026
aaeb919
Refresh package-lock.json for CI.
chrysb Mar 14, 2026
ece4513
Merge main into pr-4-macos and resolve read-only onboarding conflicts.
chrysb Mar 15, 2026
4d2c08e
Reduce setup UI request volume with shared cache and streaming status.
chrysb Mar 15, 2026
15d9435
0.8.1-beta.0
chrysb Mar 15, 2026
7bcf8af
Add OAuth callback support and refactor webhooks UI structure.
chrysb Mar 15, 2026
9f96ef4
Update createWebhook API test for oauth callback payload.
chrysb Mar 15, 2026
9f843d9
0.8.1-beta.1
chrysb Mar 15, 2026
52da747
Use cached webhook detail fetch and prevent auth mode flash.
chrysb Mar 15, 2026
1f7822b
0.8.1-beta.2
chrysb Mar 15, 2026
32d6256
Fix allowedOrigins not injected during onboarding.
chrysb Mar 16, 2026
1285673
Improve OAuth webhook behavior and detail refresh flow.
chrysb Mar 16, 2026
11e1eec
Add editable webhook delivery destination and shared session-key util…
chrysb Mar 16, 2026
cf964b1
0.8.1-beta.3
chrysb Mar 16, 2026
8542060
Fix missing session key helper import in destination selection hook.
chrysb Mar 16, 2026
21e8129
0.8.1-beta.4
chrysb Mar 16, 2026
606ea3e
Prioritize destination sessions in selector ordering.
chrysb Mar 16, 2026
f1a6cf9
0.8.1-beta.5
chrysb Mar 16, 2026
702d674
Centralize usage-tracker plugin ensure logic across onboarding and boot.
chrysb Mar 16, 2026
ba374ed
0.8.1-beta.6
chrysb Mar 16, 2026
26b41ce
Keep the Gmail setup wizard step count stable for each open session.
chrysb Mar 16, 2026
050cc6c
Improve session-loading UX and GitHub onboarding error details.
chrysb Mar 16, 2026
576d677
0.8.1-beta.7
chrysb Mar 16, 2026
87a30f6
Fix restart banner dismissal and env save state stability.
chrysb Mar 16, 2026
114adb7
Persist agent naming in identity fields with legacy fallback reads.
chrysb Mar 16, 2026
9c998f7
0.8.1-beta.8
chrysb Mar 16, 2026
ea7b7be
Treat GitHub repos with only boilerplate files as empty during onboar…
chrysb Mar 16, 2026
038d94b
Reduce noisy startup polling and harden node browser attach checks.
chrysb Mar 16, 2026
eebf6a6
0.8.1
chrysb Mar 16, 2026
6e4a362
Fix onboarding validation for non-featured model providers. (#23)
chrysb Mar 16, 2026
e566eae
Expose AlphaClaw version in status payload.
chrysb Mar 16, 2026
e6777ea
Update docs and harden node browser attach behavior.
chrysb Mar 16, 2026
5147de5
Bundle setup UI deps locally and remove runtime CDN module reliance
chrysb Mar 18, 2026
fdbc0cc
doctor warning: move actions to bottom row under message
chrysb Mar 18, 2026
70c68d5
Update README
chrysb Mar 20, 2026
400d3f5
Prevent AlphaClaw from starting on port 18789
emileferreira Mar 17, 2026
ca589fe
Merge pull request #28 from emileferreira/feat/prevent-port-18789
chrysb Mar 22, 2026
c2ad5c4
Add space before channel name in onboarding confirmation
emileferreira Mar 19, 2026
412e72e
Merge pull request #31 from emileferreira/fix/onboarding-confirmation…
chrysb Mar 22, 2026
b3521d6
Add semantic theme tokens for text, status, and field roles
keaganstokoe Mar 17, 2026
ff56146
Replace hardcoded Tailwind color classes with semantic tokens
keaganstokoe Mar 17, 2026
6fd92f3
Align semantic tokens with bundled Tailwind build
chrysb Mar 22, 2026
a0a0ac3
Merge pull request #27 from keaganstokoe/feat/semantic-theme-tokens
chrysb Mar 22, 2026
e84afda
Add light theme with sidebar toggle
keaganstokoe Mar 17, 2026
8553895
Default to system color scheme preference
keaganstokoe Mar 17, 2026
7ef5306
Fix light theme toggle runtime integration
chrysb Mar 22, 2026
8f0a47c
watchdog: add test notification endpoint
mvanhorn Mar 22, 2026
0c5e3c5
watchdog: polish test notification button
chrysb Mar 22, 2026
eca2ea6
Merge pull request #32 from mvanhorn/osc/feat-watchdog-test-notification
chrysb Mar 22, 2026
b501be5
Fix watchdog health checks and notification loops
chrysb Mar 22, 2026
c027386
Polish watchdog disk path tooltip
chrysb Mar 22, 2026
928eae7
Merge pull request #33 from chrysb/codex/issue-21-watchdog-health
chrysb Mar 22, 2026
9e94f88
Add WhatsApp channel support and QR login flow parity.
chrysb Mar 13, 2026
9e55621
Simplify onboarding by keeping WhatsApp post-setup.
chrysb Mar 13, 2026
4b10757
build: regenerate UI assets for whatsapp branch
chrysb Mar 22, 2026
ac7eb3b
feat(slack): add threading, reactions, and file upload support
Mar 22, 2026
0bc608a
test(slack): add comprehensive tests for new slack-api methods
Mar 22, 2026
38311b9
docs(slack): add comprehensive enhancement documentation
Mar 22, 2026
a359b68
fix(watchdog): wire up eventType for automatic Slack reactions
Mar 22, 2026
80a69af
Polish WhatsApp pairing flow
chrysb Mar 22, 2026
771367a
Add watchdog copy-all export
chrysb Mar 23, 2026
19effbb
Merge pull request #37 from chrysb/codex/watchdog-copy-all
chrysb Mar 23, 2026
2088932
Limit watchdog copy-all to logs
chrysb Mar 23, 2026
1b6f16e
Fix WhatsApp watchdog notification reporting
chrysb Mar 23, 2026
1abf1fe
fix: address PR review feedback (3 blocking issues)
hnshah Mar 23, 2026
428c1a4
0.8.2
chrysb Mar 23, 2026
cab8e3b
chore: ignore UI build artifacts and validate build in CI
chrysb Mar 23, 2026
3445d4a
fix(onboarding): validate API keys for non-core model providers
chrysb Mar 23, 2026
3b68178
chore: drop SLACK_ENHANCEMENT.md (keep repo docs minimal)
chrysb Mar 23, 2026
1ec9805
Merge pull request #35 from hnshah/feat/slack-foundation-threading-re…
chrysb Mar 23, 2026
ed29c06
feat: make OpenRouter a core provider in setup UI
hnshah Mar 25, 2026
9eb89f2
fix(nodes): move browser detach action to bottom-right
chrysb Mar 25, 2026
6ac7169
Merge main into feat/chat-mvp-polish
chrysb Mar 25, 2026
04d03c5
0.8.3-beta.0
chrysb Mar 25, 2026
9e5fbf9
chore: remove completed UI DRY implementation plan
hnshah Mar 25, 2026
e8d900a
fix(nodes): move browser detach action to bottom-right
chrysb Mar 25, 2026
a70932b
test(slack-api): use Vitest API so CI recognizes the suite
chrysb Mar 26, 2026
4b9434b
Merge pull request #46 from hnshah/cleanup/remove-completed-implement…
chrysb Mar 26, 2026
9fb32a4
Merge pull request #45 from hnshah/feat/openrouter-core-provider
chrysb Mar 26, 2026
748160c
feat: extend Slack API with message management and info methods (#44)
hnshah Mar 28, 2026
8767253
fix: patch openclaw shared-auth regression
chrysb Mar 28, 2026
e87afe4
fix: patch openclaw shared-auth regression (#47)
chrysb Mar 28, 2026
fa98226
chore: bump openclaw to 2026.3.24 and Node engine to 22.14+
chrysb Mar 28, 2026
d84dd31
fix: extend openclaw update copy timeout for slow volumes
chrysb Mar 28, 2026
db64606
feat(slack): add threading, reactions, and file upload support
Mar 22, 2026
d0c8f3a
test(slack): add comprehensive tests for new slack-api methods
Mar 22, 2026
73038a9
docs(slack): add comprehensive enhancement documentation
Mar 22, 2026
0a44596
fix(watchdog): wire up eventType for automatic Slack reactions
Mar 22, 2026
4b69b81
fix: address PR review feedback (3 blocking issues)
hnshah Mar 23, 2026
8ee4e5c
chore: drop SLACK_ENHANCEMENT.md (keep repo docs minimal)
chrysb Mar 23, 2026
71e1289
test(slack-api): use Vitest API so CI recognizes the suite
chrysb Mar 26, 2026
a446a52
chore: bump openclaw to 2026.3.24 and Node engine to 22.14+
chrysb Mar 28, 2026
9b5a752
fix: extend openclaw update copy timeout for slow volumes
chrysb Mar 28, 2026
074d231
fix(chat): improve bridge scopes, errors, routing, and sidebar sync
chrysb Mar 28, 2026
8cbdc2f
0.8.3-beta.1
chrysb Mar 28, 2026
05593f7
chore: bump openclaw to 2026.3.28 and regenerate gateway WebSocket sc…
chrysb Mar 29, 2026
95afe78
0.8.3-beta.2
chrysb Mar 29, 2026
eacc8b8
fix: apply openclaw patches from consumer project root (hoisted insta…
chrysb Mar 29, 2026
a637e2c
0.8.3-beta.3
chrysb Mar 29, 2026
ff468f5
Chat: tool-events cap, stream tool bridge, composer UX
chrysb Mar 29, 2026
774a0de
0.8.3-beta.4
chrysb Mar 29, 2026
9bd4e23
Session display refactor, chat UI polish, and Chat4Line sidebar icon.
chrysb Mar 29, 2026
be4d84b
0.8.3-beta.5
chrysb Mar 29, 2026
d0de756
Merge branch 'chrysb/chat-polish-finish' into main
chrysb Mar 29, 2026
4b46363
Merge branch 'feat/chat-mvp-polish' into main
chrysb Mar 29, 2026
dc9e8a7
0.8.3
chrysb Mar 29, 2026
b2afce2
Fix light theme legibility and add theme toggle to onboarding
keaganstokoe Mar 30, 2026
a69a7b3
Merge upstream/main into feat/light-theme
keaganstokoe Mar 30, 2026
b1094bb
feat(slack): add multi-account channel support (#49)
chrysb Apr 2, 2026
ebc678b
Merge remote-tracking branch 'origin/main' into codex/pr-29-update
chrysb Apr 2, 2026
9c5f312
Bump openclaw to 2026.4.1 and manage exec defaults on boot
chrysb Apr 2, 2026
d1cb453
0.8.4-beta.0
chrysb Apr 2, 2026
edc55ab
Avoid widening existing exec config during 2026.4.1 backfill
chrysb Apr 2, 2026
874a014
0.8.4
chrysb Apr 2, 2026
03417bc
Fix AlphaClaw self-update failures on Docker (EBUSY)
chrysb Apr 2, 2026
3d85205
0.8.5
chrysb Apr 2, 2026
253aa3c
Address PR review: 3-state theme toggle, dark default, banner legibility
keaganstokoe Apr 2, 2026
bb91860
Use recent webhook requests for list health
chrysb Apr 2, 2026
639a9d0
Fix #52: show onboarding validation on Next
chrysb Apr 3, 2026
305f411
Cache model catalog responses
chrysb Apr 5, 2026
cab795e
Improve Codex OAuth reconnect flow
chrysb Apr 5, 2026
81ff69c
Merge branch 'main' into pr-29
chrysb Apr 5, 2026
713fc9a
Polish theme toggle menu and light-mode logo accent
chrysb Apr 5, 2026
3ddde15
Merge pull request #29 from keaganstokoe/feat/light-theme
chrysb Apr 5, 2026
4189ffa
0.8.6
chrysb Apr 5, 2026
f0bfe7a
Bump OpenClaw to 2026.4.5 and refresh gateway scope patch.
chrysb Apr 6, 2026
02f5f9b
0.8.7
chrysb Apr 6, 2026
a3a38ed
Document Railway and Render template pins after stable releases.
chrysb Apr 6, 2026
d48f564
Pin OpenClaw 2026.4.9 and @chrysb/alphaclaw 0.8.8 on main.
chrysb Apr 10, 2026
0da999a
Release 0.8.10 (main); drop broken release:managed script.
chrysb Apr 10, 2026
2807bb7
Add deployment-aware update flows
chrysb Apr 10, 2026
8e28307
Release 0.8.11.
chrysb Apr 10, 2026
285ad7f
Handle Apex deployment-aware update modes
chrysb Apr 10, 2026
3fe89a6
Prepare 0.8.12 canary release
chrysb Apr 10, 2026
097a763
Fix hourly git sync runtime resolution
chrysb Apr 10, 2026
e7d358b
Prepare AlphaClaw 0.9.0
chrysb Apr 10, 2026
b92eb22
Merge branch 'codex/deployment-aware-updates'
chrysb Apr 11, 2026
d80cf55
Fix git shim global option parsing
Apr 11, 2026
7418053
Merge pull request #60 from chrysbtest/fix/git-shim-global-options
chrysb Apr 11, 2026
2f524a6
Fix onboarding model preload and repo validation
chrysb Apr 11, 2026
f03e2c1
Revert "Merge pull request #60 from chrysbtest/fix/git-shim-global-op…
chrysb Apr 11, 2026
fa52ed9
Fix git shim auth detection for -C and symlinked paths
chrysb Apr 11, 2026
a51d222
Expand git shim global option coverage
chrysb Apr 11, 2026
3b92114
Set durable OpenClaw state dir for managed installs
chrysb Apr 11, 2026
415e04e
Bump OpenClaw 2026.4.10 and extend model catalog timeout
chrysb Apr 11, 2026
0335b52
Merge pull request #61 from chrysb/codex/durable-openclaw-state-dir
chrysb Apr 11, 2026
0de2240
0.9.1
chrysb Apr 11, 2026
0005682
Resolve OpenClaw target version from npm when template omits direct pin
chrysb Apr 11, 2026
7fa6894
0.9.2
chrysb Apr 11, 2026
777746f
Bump OpenClaw to 2026.4.11; refresh gateway WebSocket scope patch.
chrysb Apr 12, 2026
04df821
0.9.3
chrysb Apr 13, 2026
925fe3f
Compat: preserve gogcli config under managed home
chrysb Apr 13, 2026
ffcee39
merge: upstream/main (0.9.3) into pr-4-macos + resolve read-only onbo…
diazMelgarejo Apr 13, 2026
0496267
fix(macos): extract bin-path resolution into lib/platform.js
diazMelgarejo Apr 13, 2026
d676d73
fix(platform): address code review issues in lib/platform.js + alphac…
diazMelgarejo Apr 13, 2026
66888a7
fix(gateway): ensure models array on every openclaw.json provider
diazMelgarejo Apr 13, 2026
bb9b098
fix(gateway): harden sanitizeOpenclawConfig against edge cases
diazMelgarejo Apr 13, 2026
0d0fc0c
Merge pull request #62 from chrysb/codex/gog-skill-xdg-guidance
chrysb Apr 13, 2026
3c3e0b7
0.9.4
chrysb Apr 13, 2026
e5010c9
fix: resolve 3 test failures from merge conflict residue
diazMelgarejo Apr 13, 2026
1955b16
fix(macos): address review feedback — scheduler activation + cron val…
diazMelgarejo Apr 14, 2026
b7697d4
Load git shim token from repo env
Apr 14, 2026
161a5d4
fix(macos): start managed scheduler and tighten cron validation
diazMelgarejo Apr 15, 2026
db052ce
Merge pull request #64 from chrysbtest/fix/git-shim-load-env-token
chrysb Apr 15, 2026
ac38e93
0.9.5
chrysb Apr 15, 2026
6db452a
fix(macos): tighten installHourlyGitSyncCron return contract
diazMelgarejo Apr 16, 2026
4f23864
test(system-cron): assert /etc/cron.d write on linux install
diazMelgarejo Apr 16, 2026
a66d615
test(system-cron): darwin disable -> re-enable round-trip
diazMelgarejo Apr 16, 2026
79bf698
test(system-cron): regression guard for return value contract
diazMelgarejo Apr 16, 2026
ec5b469
Bump OpenClaw to 2026.4.14 and refresh gateway WebSocket scope patch
chrysb Apr 16, 2026
110e9f5
0.9.6
chrysb Apr 16, 2026
e27b680
Merge main into feat/whatsapp-v2
chrysb Apr 16, 2026
702cbdc
Keep template update metadata aligned with the pinned AlphaClaw relea…
shaun0927 Apr 16, 2026
3a11ce7
Merge pull request #18 from chrysb/feat/whatsapp-v2
chrysb Apr 16, 2026
2db8bef
Add macOS download button to README
chrysb Apr 16, 2026
2a31b4f
Move macOS download button to CTA row
chrysb Apr 16, 2026
96b310c
Normalize README CTA button heights
chrysb Apr 16, 2026
b586868
0.9.7
chrysb Apr 16, 2026
2f75d3a
Fix import onboarding when target dir already exists
chrysb Apr 16, 2026
8f6218a
0.9.8
chrysb Apr 16, 2026
c38bd92
Bump OpenClaw to 2026.4.15 and refresh gateway WebSocket scope patch
chrysb Apr 18, 2026
634cc8f
0.9.9
chrysb Apr 18, 2026
77eec24
fix(test): close leaked sqlite handles in db tests
chrysb Apr 18, 2026
a7a3130
merge: upstream 0.9.9 into pr-4-macos; preserve read-only onboarding …
diazMelgarejo Apr 18, 2026
1888526
fix(test): update env assertions for HOME/OPENCLAW_HOME refactor
diazMelgarejo Apr 18, 2026
9f4c66a
fix(test): temp dir cleanup + testTimeout for macOS ARM64 parallel wo…
diazMelgarejo Apr 19, 2026
d9a56d8
feat(macos): E.1-E.5 esbuild optional deps, LaunchAgent plist, CI matrix
diazMelgarejo Apr 19, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
github: chrysb
51 changes: 44 additions & 7 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,26 +2,63 @@ name: CI

on:
push:
branches: [main]
branches: [main, pr-4-macos, feature/MacOS-post-install]
pull_request:
branches: [main]

jobs:
test:
runs-on: ubuntu-latest
name: Test (Node ${{ matrix.node-version }} / ${{ matrix.os }})
runs-on: ${{ matrix.os }}

strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest]
node-version: [22]

steps:
- uses: actions/checkout@v4
- name: Checkout
uses: actions/checkout@v4

- uses: actions/setup-node@v4
- name: Setup Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: npm
cache: "npm"

- name: Verify arch (macOS)
if: runner.os == 'macOS'
run: |
echo "arch: $(uname -m) | node: $(node --version)"
[ "$(uname -m)" = "x86_64" ] && echo "::warning::Rosetta x64 shell — esbuild arch mismatch risk" || true

- name: Set sudo-free npm prefix (macOS)
if: runner.os == 'macOS'
run: |
npm config set prefix ~/.local
mkdir -p ~/.local/bin
echo "$HOME/.local/bin" >> $GITHUB_PATH

- name: Install dependencies
run: npm install

- run: npm ci
- name: Build UI
run: npm run build:ui

- run: npm test
- name: Full test suite
run: npm test

- name: Watchdog tests
run: npm run test:watchdog

- name: Coverage
run: npm run test:coverage

- name: Upload coverage
if: matrix.os == 'ubuntu-latest'
uses: actions/upload-artifact@v4
with:
name: coverage-report
path: coverage/
retention-days: 7
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,8 @@ node_modules/
.cursor/
coverage/
workspace/.openclaw/

# Build artifacts (generated by npm run build:ui)
lib/public/dist/
lib/public/css/tailwind.generated.css
lib/public/css/vendor/
235 changes: 235 additions & 0 deletions AGENTS.md

Large diffs are not rendered by default.

128 changes: 128 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
# Contributing to AlphaClaw

Thanks for your interest in contributing to AlphaClaw. This document covers how we work, what we value, and how to get your changes merged.

## Vision

AlphaClaw makes OpenClaw accessible: easy to deploy, easy to monitor, easy to repair, easy to keep running. Self-managed and open source, always.

One-click deployment templates come and go. The self-managed aspect is what makes this durable.

### Guiding Principles

- **UX over features.** Usability matters more than feature count. Every interaction should feel considered.
- **Smart defaults.** AlphaClaw is opinionated. We bootstrap hooks, prompt hardening, and sensible configs so the out-of-box experience is good without manual tuning.
- **Complement, don't replicate.** OpenClaw's Gateway dashboard is exhaustive. We surface the most common workflows and add net-new value, not duplicate switches.
- **Always ejectable.** AlphaClaw is not a dependency. Remove it and your OpenClaw instance keeps running. Nothing proprietary, nothing to migrate.
- **Reliability is a feature.** The watchdog, auto-repair, crash-loop recovery - these matter as much as any UI improvement.

## What We're Looking For

### Always welcome

- Bug fixes
- Reliability improvements (watchdog, crash recovery, gateway management)
- Test coverage
- Documentation fixes and clarifications

### Welcome, but reviewed carefully

- UX changes and small features
- New integrations or wizard steps
- Bootstrap prompt improvements

### Proposal first

- Large features or architectural changes
- New paradigms (e.g., plugin system changes, new deployment targets)
- Anything that changes the default experience significantly

For big changes, open an issue describing what you want to build, why, and your proposed approach. This saves everyone time.

## Getting Started

### Prerequisites

- Node.js >= 22.14.0
- Git

### Setup

```bash
git clone https://github.com/chrysb/alphaclaw.git
cd alphaclaw
npm install
```

### Running Tests

```bash
npm test # Run all tests
npm run test:watch # Watch mode
npm run test:coverage # With coverage report
```

AlphaClaw uses [Vitest](https://vitest.dev/) for testing.

### Project Structure

- `bin/` - CLI entrypoint (`alphaclaw.js`)
- `lib/` - Core library (gateway manager, watchdog, setup UI, webhooks, etc.)
- `tests/` - Test suites

## Submitting Changes

### Pull Request Process

1. Fork the repo and create a branch from `main`.
2. Make your changes. Write tests if applicable.
3. Run `npm test` and make sure everything passes.
4. Write a clear PR description: what changed, why, and how to test it.
5. Sign off your commits (see DCO below).

### Commit Messages

Keep them clear and concise. Prefix with the area when it helps:

```text
watchdog: recover from port conflict on restart
setup-ui: fix credential validation for Gemini provider
docs: clarify Railway deployment steps
```

### Code Style

- Match the existing style. If something looks inconsistent, follow what the majority of the codebase does.
- No unnecessary dependencies. AlphaClaw ships lean on purpose.

## Developer Certificate of Origin (DCO)

We use the [DCO](https://developercertificate.org/) to certify that contributors have the right to submit their code under this project's MIT license.

Add a sign-off line to each commit:

```text
Signed-off-by: Your Name <your.email@example.com>
```

Git makes this easy:

```bash
git commit -s -m "your commit message"
```

The `-s` flag adds the sign-off automatically using your configured `user.name` and `user.email`.

## Code of Conduct

We follow the [Contributor Covenant](https://www.contributor-covenant.org/version/2/1/code_of_conduct/) (v2.1).

The short version: be respectful, be constructive, assume good intent. We're building something useful together.

## Questions?

Open an issue or start a discussion on the repo. We're happy to help you find the right place to contribute.

## License

By contributing, you agree that your contributions will be licensed under the [MIT License](LICENSE).
Loading