Haitao Pan
4164e1ff91
refactor(caddy): completely refactor Caddy macOS paths and missing privileges across all roles
2026-06-19 18:22:53 +08:00
Haitao Pan
f66a118c57
fix: resolve Caddy permission denied and macOS path issues in acp_server_codex
2026-06-19 18:16:25 +08:00
Haitao Pan
a0b27a7aee
chore: commit pending infra playbook changes including ssh initialization script
2026-06-19 18:09:16 +08:00
Haitao Pan
51565ecf66
fix: resolve nodejs/npm dependency conflict and caddy path/permission issues
2026-06-19 18:08:33 +08:00
Haitao Pan
402c90967a
fix: correct acp_server_gemini template name and update nodejs packages for offline installation
2026-06-19 12:25:15 +08:00
Haitao Pan
edc70fb658
fix: remove stale repo + depth=1 for clone; macOS browser/npm/agent_skills/role defaults compatibility
2026-06-19 11:37:33 +08:00
Haitao Pan
45f6f3af89
refactor(acp_server_gemini): upgrade to use antigravity-cli
2026-06-19 10:42:24 +08:00
Haitao Pan
d876d69684
fix: make Vault admin bootstrap idempotent
2026-06-19 09:54:21 +08:00
Haitao Pan
c57642dce2
fix: retry OpenClaw compile cache reset
2026-06-19 09:50:46 +08:00
Haitao Pan
06e10fb0e1
fix: skip common baseline for macOS Postgres
2026-06-19 09:48:42 +08:00
Haitao Pan
7c5884c615
fix: use user Vault paths on macOS
2026-06-19 09:45:46 +08:00
51d28b5d8b
fix(postgres): install via brew command on macOS, not homebrew module
...
The community.general.homebrew module auto-detects a brew prefix and can pick a
stale Intel Homebrew at /usr/local that crashes on newer macOS versions
('unknown or unsupported macOS version'). Use a brew command with the Apple
Silicon prefix first on PATH (matching vault/openclaw), plus
HOMEBREW_NO_AUTO_UPDATE, keeping the task idempotent.
2026-06-18 12:55:51 +00:00
b85a80b8f8
fix(vault): resolve admin entity_id via entity-alias (idempotent bootstrap)
...
Logging in to obtain entity_id becomes MFA-gated once the login enforcement
exists, so re-runs failed with 'missing entityID'. Look up the entity via its
userpass entity-alias (create entity+alias on first run) and drop the now
unused bootstrap token revoke. Idempotent and backward compatible.
2026-06-18 12:39:42 +00:00
a7ad856e05
fix(common): macOS (Darwin) compatibility for baseline
...
The Base hardening tasks (timedatectl timezone, /etc/hostname, hostname,
/etc/hosts, ssh hardening, fail2ban, file limits, firewall) use become: true
and Linux-only tooling, so they fail on macOS where the deploy is unprivileged
(timedatectl is also absent). Guard the whole Base block with
ansible_os_family != 'Darwin'.
Add a Common | Darwin baseline branch (common_darwin.yml) that installs shared
Homebrew CLI prerequisites (jq) used by helper scripts in other roles, e.g.
vault's init_vault_admin.sh. Packages are listed in common_darwin_brew_packages.
2026-06-18 12:12:17 +00:00
Haitao Pan
7dcd2307ea
fix: use user bridge directory on macOS
2026-06-18 18:11:31 +08:00
Haitao Pan
33ef20e064
fix: add macOS ACP path defaults
2026-06-18 18:08:14 +08:00
Haitao Pan
7e886ec009
fix: omit ACP binary chown on macOS
2026-06-18 18:04:19 +08:00
Haitao Pan
740b0a5e72
fix: guard Linux ACP tasks on macOS
2026-06-18 17:52:21 +08:00
Haitao Pan
091cd1bfc1
fix: skip OpenClaw Caddy tasks on macOS
2026-06-18 17:49:23 +08:00
Haitao Pan
4ca20c8603
fix: support native macOS deployment
2026-06-18 17:45:01 +08:00
Haitao Pan
e83c1a73ac
fix: replace hardcoded ubuntu user/group/home in 6 vhost role defaults for macOS
2026-06-18 16:57:38 +08:00
Haitao Pan
39bdc7c1fd
fix: make agent CLI version check non-fatal (codex optional dep on macOS)
2026-06-18 16:53:53 +08:00
Haitao Pan
8a62cc4e59
fix: use argv for chromium version check to handle paths with spaces
2026-06-18 16:49:18 +08:00
Haitao Pan
4a60ff30e4
fix: make agent_skills defaults cross-platform (HOME, user, group)
2026-06-18 16:46:16 +08:00
Haitao Pan
a3fd2679ef
fix: skip apt rsync installation on macOS (rsync is built-in)
2026-06-18 16:44:01 +08:00
Haitao Pan
74d027e649
fix: ensure env directory exists before writing playwright configuration on macOS
2026-06-18 16:32:31 +08:00
Haitao Pan
aabf296461
fix: disable apt and become for browser setup on macOS
2026-06-18 16:30:04 +08:00
Haitao Pan
044a264256
feat: full macOS (Darwin) compatibility fixes for Ansible playbooks
2026-06-18 16:26:51 +08:00
Haitao Pan
c7784f2063
fix: restart opencode acp through launchd
2026-06-18 14:51:40 +08:00
Haitao Pan
5e3db5dfd5
feat: run opencode acp with launchd on macos
2026-06-18 14:51:06 +08:00
Haitao Pan
75c4c98613
feat: run codex acp with launchd on macos
2026-06-18 14:50:14 +08:00
Haitao Pan
2946a7bc42
fix: route codex acp setup on macos
2026-06-18 14:50:00 +08:00
Haitao Pan
dbbce5ff49
feat: support macos runtime deployment
2026-06-18 14:48:04 +08:00
Haitao Pan
0e1f8ab7cf
fix: install openclaw multi-session plugin
2026-06-18 10:01:51 +08:00
Haitao Pan
532c57a359
fix(offline): skip online repos for docker/nodejs and add ubuntu 26.04 support
2026-06-17 20:43:16 +08:00
Haitao Pan
c1162f7ea2
fix(qmd): configure LiteLLM embedding gateway and inject auth token
2026-06-17 14:43:34 +08:00
Haitao Pan
13d986a078
feat(ai-workspace): add Vault KV secrets dump and restore
2026-06-17 14:09:12 +08:00
Haitao Pan
5e363249ce
feat(ai-workspace): add encrypted backup and restore playbooks
2026-06-17 14:05:06 +08:00
Haitao Pan
1ac560e482
feat(ai-workspace): add backup/restore/migration role and playbook
2026-06-17 13:59:49 +08:00
Haitao Pan
b36a1c44e5
fix(firewall): allow ssh http https ingress
2026-06-17 13:59:49 +08:00
Haitao Pan
e5991301c6
feat(ai): parameterize LiteLLM URL and models for gateway_openclaw and acp_server_hermes to avoid hardcoded ports
2026-06-17 06:45:06 +08:00
Haitao Pan
3809a8cb6b
feat(ai): configure Hermes and OpenClaw to safely connect to local LiteLLM API endpoint by default using AI_WORKSPACE_AUTH_TOKEN
2026-06-16 23:19:30 +08:00
Haitao Pan
596f52ba12
fix(litellm): revert DEEPSEEK_API_KEY fallback to litellm_master_key
2026-06-16 23:10:54 +08:00
Haitao Pan
d49b472ddb
fix(litellm): add DEEPSEEK_API_KEY and OPENAI_API_KEY to litellm environment variables
2026-06-16 23:01:19 +08:00
Haitao Pan
93cbe2cd1b
feat: allow /ui* and /health in caddy allowed_api for minimal gateway mode
2026-06-16 16:51:58 +08:00
Haitao Pan
5630df788a
fix: make ai runtime npm installs idempotent
2026-06-16 15:04:14 +08:00
Haitao Pan
c07d12b5fe
feat: consume prebuilt workspace runtimes
2026-06-15 21:58:50 +08:00
Haitao Pan
d92979f22d
fix(litellm): ensure config directory and users exist before provisioning database
2026-06-15 18:31:54 +08:00
Haitao Pan
2658727d19
feat: increase ClientAliveCountMax to 15
2026-06-15 18:13:55 +08:00
Haitao Pan
dcf49e4ebf
feat: configure SSH ClientAlive settings for persistent sessions
2026-06-15 18:07:12 +08:00
Haitao Pan
126a19e282
feat(security): add SSH hardening, fail2ban tasks, connection check helper, and doc
2026-06-15 17:50:00 +08:00
Haitao Pan
c627f016bf
fix: move ACP service checks to final validation phase
2026-06-15 16:59:03 +08:00
Haitao Pan
5f00409550
fix: correct npm global bin path for acp_server_codex
2026-06-15 16:36:12 +08:00
Haitao Pan
40ed86a070
feat: deliver versioned AI Workspace Runtime (role split, run-mode matrix, bridge domain)
2026-06-15 16:12:37 +08:00
Haitao Pan
178664f262
feat: allow a portable LiteLLM Python runtime
2026-06-15 15:44:52 +08:00
Haitao Pan
2243b5d0c8
fix: support LiteLLM on Debian 11
2026-06-15 15:36:20 +08:00
Haitao Pan
65aef78937
fix: trust NodeSource armored signing key
2026-06-15 15:16:06 +08:00
Haitao Pan
2f4d3ad930
fix: make offline runtime reprovisioning stable
2026-06-15 15:12:56 +08:00
Haitao Pan
4228c1a6df
fix: correct docker repository task yaml
2026-06-14 14:19:42 +08:00
Haitao Pan
cfe89432a1
fix: allow pinned nodejs runtime downgrades
2026-06-14 13:50:05 +08:00
Haitao Pan
645ac9bd17
fix: support Debian runtime deployment paths
2026-06-14 13:47:26 +08:00
Haitao Pan
3084ab7940
feat: deliver versioned AI Workspace Runtime
2026-06-14 13:19:44 +08:00
Haitao Pan
f15c384a34
fix: provision local litellm db and qmd fallback
2026-06-14 11:25:28 +08:00
Haitao Pan
6346684af5
fix: support standalone postgres and dynamic litellm path
2026-06-14 11:09:52 +08:00
Haitao Pan
bfb6b17e29
fix: run standalone vault without inventory group
2026-06-14 10:54:22 +08:00
Haitao Pan
2319c592fb
feat: support standalone vault deployment
2026-06-14 10:42:41 +08:00
Haitao Pan
41853eedd9
fix: allow bridge validation url override
2026-06-14 10:30:06 +08:00
Haitao Pan
5e359cc5d8
fix: resolve openclaw user uid dynamically
2026-06-14 10:16:27 +08:00
Haitao Pan
4b6b1de8a7
fix: reload openclaw user systemd bus
2026-06-14 10:08:22 +08:00
Haitao Pan
ae78231fac
fix: bootstrap hermes acp shim
2026-06-14 09:54:43 +08:00
Haitao Pan
7f6854e9de
fix: sync agent skills over local connection
2026-06-14 09:33:58 +08:00
Haitao Pan
a15016ef1f
feat: install agent cli toolchain
2026-06-14 09:25:30 +08:00
Haitao Pan
e2ae564745
feat: unify ai workspace deployment auth
2026-06-14 09:09:40 +08:00
Haitao Pan
944d59f911
feat: standardise public_access controls across roles and introduce global security_level
2026-06-12 14:31:25 +08:00
Haitao Pan
b8d4df9230
docs: rename var to litellm_api_caddy_strict_whitelist and update documentation
2026-06-12 09:44:24 +08:00
Haitao Pan
1574287a4d
feat: add litellm_api_caddy_public_access variable to control Caddy proxy behavior
2026-06-12 09:39:45 +08:00
Haitao Pan
e9dec70225
docs: relax Caddy routing to allow LiteLLM UI backend API calls
2026-06-12 09:36:03 +08:00
Haitao Pan
e3952916af
docs: reformat litellm deployment guide to complement readme
2026-06-12 09:21:37 +08:00
Haitao Pan
47d4931ff7
docs: update litellm README to Minimal AI API Gateway spec and clean up config
2026-06-12 09:11:12 +08:00
Haitao Pan
7ef5005ae1
refactor(litellm): remove hardcoded provider API keys from defaults and env templates
2026-06-12 09:08:33 +08:00
Haitao Pan
9196625bd0
feat(litellm): enable STORE_MODEL_IN_DB to allow UI model management
2026-06-11 22:46:22 +08:00
Haitao Pan
a076370b68
security(litellm): move plain text master key to vault encrypted host_vars
2026-06-11 22:45:18 +08:00
Haitao Pan
21cbbca9be
fix(litellm): use UI_USERNAME and UI_PASSWORD env vars instead of LITELLM_ prefixed
2026-06-11 22:33:35 +08:00
Haitao Pan
c22a8c8266
feat(litellm): serve UI on api domain and clear default model lists
2026-06-11 21:45:10 +08:00
Haitao Pan
96ad38ff14
fix(litellm): disable Caddy basic auth and remove manual schema application to avoid migration conflicts
2026-06-11 18:28:18 +08:00
Haitao Pan
c1cb19b59b
fix(litellm): add PATH to systemd unit to expose prisma-client-py
2026-06-11 17:29:07 +08:00
Haitao Pan
1d8516d160
fix(litellm): add PYTHONPATH to systemd unit, grant all table/sequence permissions to litellm DB user
2026-06-11 17:21:19 +08:00
Haitao Pan
9cde355688
fix(litellm): sslmode=disable for localhost Docker PG, remove environment_variables override from config.yaml
2026-06-11 17:09:49 +08:00
Haitao Pan
e6a3d95578
fix(litellm): install prisma client and generate prisma bindings correctly during deployment
2026-06-11 16:45:22 +08:00
Haitao Pan
814a81f088
feat(litellm): support dynamic master key via extra vars and generate caddy bcrypt hash on the fly
2026-06-11 16:33:17 +08:00
Haitao Pan
d5a17a8301
fix(litellm): allow access to root path on ui domain instead of returning 404
2026-06-11 16:15:06 +08:00
Haitao Pan
01af16cd54
fix(litellm): use docker exec for pg provisioning
2026-06-11 16:14:03 +08:00
Haitao Pan
a68cf68d14
feat(litellm): restore secure automated DB provisioning using raw sudo psql
2026-06-11 16:09:12 +08:00
Haitao Pan
d57ef6458d
chore(litellm): skip automated db provisioning due to missing superuser password
2026-06-11 15:57:25 +08:00
Haitao Pan
4a14572b5b
fix(litellm): revert become_user to local TCP password auth
2026-06-11 15:56:43 +08:00
Haitao Pan
fc7a23617c
fix(litellm): use become_user postgres for db provisioning
2026-06-11 15:50:51 +08:00
Haitao Pan
fc1bff0061
fix(litellm): bypass stunnel and use port 5432 for local DB provisioning
2026-06-11 15:47:09 +08:00
Haitao Pan
db9d564ef3
fix(litellm): install psycopg2 before provisioning db
2026-06-11 15:35:11 +08:00
Haitao Pan
d573a4651b
fix(litellm): remove delegate_to 127.0.0.1 in provision-database
2026-06-11 15:33:51 +08:00
Haitao Pan
ce6d970bda
feat(litellm): separate api/ui caddy fragments, add models, secure db with sslmode
2026-06-11 15:29:31 +08:00
Haitao Pan
a817a0e732
fix(litellm): install litellm[proxy] to get all deps incl websockets
2026-06-11 11:42:16 +08:00
Haitao Pan
e56cb63032
fix(litellm): add PYTHONPATH env and fix websockets dep for litellm service
2026-06-11 11:41:29 +08:00
Haitao Pan
e5efac92e4
feat: add litellm gateway deployment playbook and role
2026-06-11 10:05:42 +08:00
Haitao Pan
42b8443f91
Allow common HTTP and HTTPS ports
2026-06-08 17:43:53 +08:00
Haitao Pan
7e0dc61924
fix: preserve xworkmate bridge review token in ingress
2026-06-07 23:01:47 +08:00
Haitao Pan
f451b5cd20
fix(playbook): move openclaw session contract checks out of deploy validation
...
The OpenClaw session contract smoke and SSE long-task stream checks lived in
roles/vhosts/xworkmate_bridge/tasks/validate.yml and ran during the Deploy
stage. They depend on the public OpenClaw gateway producing a 'pong' reply,
which the deployed bridge cannot guarantee end-to-end. When the gateway
returns an empty completion envelope, the entire Deploy job fails after the
bridge binary has already been installed and is healthy.
Move these checks to the GitHub Actions validate stage in xworkmate-bridge
where they belong. The bridge's own deploy validation now only asserts the
bridge's own state (Caddy config, systemd unit, ports, /api/ping, /acp/rpc
capabilities, routing.resolve).
2026-06-05 19:28:38 +08:00
Haitao Pan
6c234f9544
fix(playbook): update openclaw smoke tests to poll for async task completion
2026-06-04 14:48:31 +08:00
Haitao Pan
6d3418284a
fix(playbook): adjust system-level xworkmate-bridge.service to run as ubuntu user and ensure the user exists
2026-06-04 14:36:24 +08:00
Haitao Pan
d7199c511b
fix(playbook): stop, disable, and clean up obsolete user-level xworkmate-serve service to prevent port 8787 conflicts
2026-06-04 14:30:13 +08:00
Haitao Pan
61eb40624d
fix(xworkmate_bridge): resolve config.yaml PermissionError during deployment caused by immutable flag
2026-06-04 11:48:09 +08:00
Haitao Pan
dcdc9bea7b
feat: Remote Desktop Ansible Deployment for xworkmate-bridge
2026-06-03 10:49:49 +08:00
Haitao Pan
2f2e9d8f9b
fix: pin OpenClaw Codex plugin
2026-06-01 14:53:18 +08:00
Haitao Pan
ba4daa3597
fix: align bridge OpenClaw protocol 4 deployment
2026-06-01 13:48:52 +08:00
Haitao Pan
402faa02e1
fix: validate bridge token consistency
2026-06-01 10:02:13 +08:00
Haitao Pan
ce0dd3cee1
Wire review bridge token deployment
2026-05-30 10:34:51 +08:00
Haitao Pan
003d48e748
Merge branch 'codex/acp-connection-closed-cleanup'
2026-05-26 13:56:22 +08:00
Haitao Pan
69e7691287
chore: align AI agent runtime playbooks
2026-05-26 12:58:56 +08:00
Haitao Pan
71e3449622
Use SSE curl for OpenClaw validation
2026-05-26 11:29:25 +08:00
Haitao Pan
805a3fbda9
Focus bridge validation on OpenClaw RPC
2026-05-26 11:26:21 +08:00
Haitao Pan
22662cc538
Validate OpenClaw through bridge RPC
2026-05-26 11:06:22 +08:00
Haitao Pan
7fbba293a0
Fix Hermes deploy validation status check
2026-05-23 16:04:50 +08:00
Haitao Pan
f51958a4a2
chore: set xworkmate bridge openclaw active budget to five
2026-05-22 19:13:26 +08:00
Haitao Pan
aa674a7dac
fix: serialize xworkmate bridge openclaw tasks
2026-05-22 19:10:31 +08:00
Haitao Pan
9765158371
fix: validate ebook over public HTTPS
2026-05-20 16:35:46 +08:00
Haitao Pan
5ff5e2f1eb
fix: validate ebook vhost over local TLS
2026-05-20 16:35:03 +08:00
Haitao Pan
dfad2a0a5c
fix: use Caddy conf.d for ebook vhost
2026-05-20 16:34:30 +08:00
Haitao Pan
29dd6a38b7
feat: deploy modern IT history ebook
2026-05-20 16:27:54 +08:00
Haitao Pan
ae1e5813a9
fix: allow OpenClaw bridge validation to finish
2026-05-18 17:53:55 +08:00
Haitao Pan
4b2ab8401b
Align XFCE XRDP browser setup with Chrome deb
2026-05-18 05:42:17 +08:00
Haitao Pan
72bee745b3
tune openclaw default thinking for gateway tasks
2026-05-15 12:29:01 +08:00
Haitao Pan
0c3e673e78
fix openclaw gateway default model deploy config
2026-05-15 12:10:31 +08:00
Haitao Pan
07f72e2c46
Relax bridge SSE keepalive validation
2026-05-11 14:45:27 +08:00
Haitao Pan
ad49ba1b22
Configure OpenClaw admission through bridge config
2026-05-11 13:21:41 +08:00
Haitao Pan
b6b0e3ddad
Use OpenClaw default agent model
2026-05-11 12:53:39 +08:00
Haitao Pan
3ae95ea54d
Enable production OpenClaw artifact plugin
2026-05-11 12:35:09 +08:00
Haitao Pan
6c1ad92ff4
Handle live OpenClaw gateway runtime path
2026-05-11 12:14:31 +08:00
Haitao Pan
f023bd3961
Configure stable OpenClaw concurrency
2026-05-11 11:47:09 +08:00
Haitao Pan
95efae0060
Configure stable OpenClaw concurrency
2026-05-11 11:45:32 +08:00
Haitao Pan
1fa9ca2457
fix: validate OpenClaw SSE ingress
2026-05-08 18:58:51 +08:00
Haitao Pan
9f3449b635
fix: proxy xworkmate artifact downloads
2026-05-06 10:05:09 +08:00
Haitao Pan
289468e188
fix: remove legacy acp-server ingress contract
2026-05-03 12:31:07 +08:00
Haitao Pan
a50dc24619
fix: align xworkmate bridge ingress contract
2026-05-03 12:14:27 +08:00
Haitao Pan
dd0201e483
fix: expose bridge gateway ingress
2026-05-03 11:22:09 +08:00
Haitao Pan
d3efb08e8d
chore: submit remaining playbooks changes
2026-05-02 19:41:38 +08:00
Haitao Pan
54b234b2bc
fix: reload bridge unit before service start
2026-05-02 19:17:34 +08:00
Haitao Pan
a250cf70e5
fix: remove root openclaw dependency from bridge unit
2026-05-02 19:06:58 +08:00
Haitao Pan
f6167c1e89
fix: run openclaw gateway as user service
2026-05-02 18:51:46 +08:00
Haitao Pan
14c77e6e5e
fix: propagate bridge image ref into systemd
2026-05-02 18:20:30 +08:00
Haitao Pan
3d091118c2
fix: retry bridge hermes diagnostic validation
2026-05-02 18:11:17 +08:00
Haitao Pan
9ba79fb05a
fix: recover openclaw ollama secret from host env
2026-05-02 17:57:43 +08:00