Skip to content

Commit e0729b2

Browse files
committed
Merge remote-tracking branch 'upstream/main' into fix/issue-92582-doctor-local-embedding-skip
2 parents 8982190 + 8b4eedf commit e0729b2

729 files changed

Lines changed: 33628 additions & 12659 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.agents/skills/openclaw-landable-bug-sweep/SKILL.md

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -107,16 +107,9 @@ Reject:
107107

108108
## PR Body Proof
109109

110-
Use the repo PR template. Include these exact labels:
111-
112-
```text
113-
Behavior addressed:
114-
Real environment tested:
115-
Exact steps or command run after this patch:
116-
Evidence after fix:
117-
Observed result after fix:
118-
What was not tested:
119-
```
110+
Use the repo PR template. Include authored `## What Problem This Solves` and
111+
`## Evidence` sections. Keep the body focused on intent and the most useful
112+
validation evidence; inspect the code, tests, and CI before judging correctness.
120113

121114
## Existing PR Rules
122115

.github/pull_request_template.md

Lines changed: 57 additions & 118 deletions
Original file line numberDiff line numberDiff line change
@@ -1,118 +1,57 @@
1-
## Summary
2-
3-
What problem does this PR solve?
4-
5-
Why does this matter now?
6-
7-
What is the intended outcome?
8-
9-
What is intentionally out of scope?
10-
11-
What does success look like?
12-
13-
What should reviewers focus on?
14-
15-
<details>
16-
<summary>Summary guidance</summary>
17-
18-
This PR description is the contributor's durable explanation of the change. Write it for human maintainers first; ClawSweeper and Barnacle use the same text to understand intent, proof, risk, and current review state.
19-
20-
Describe the intent and outcome in 2-5 bullets. Avoid restating the diff; reviewers and bots can read the changed files.
21-
22-
If this PR fixes a plugin beta-release blocker, title it `fix(<plugin-id>): beta blocker - <summary>` and link the matching `Beta blocker: <plugin-name> - <summary>` issue labeled `beta-blocker`. Contributors cannot label PRs, so the title is the PR-side signal for maintainers and automation.
23-
24-
</details>
25-
26-
## Linked context
27-
28-
Which issue does this close?
29-
30-
Closes #
31-
32-
Which issues, PRs, or discussions are related?
33-
34-
Related #
35-
36-
Was this requested by a maintainer or owner?
37-
38-
<details>
39-
<summary>Linked context guidance</summary>
40-
41-
Link the issue, PR, discussion, maintainer request, or owner request that explains why this PR should exist. Maintainer context helps reviewers and automation distinguish intended work from drive-by churn.
42-
43-
</details>
44-
45-
## Real behavior proof (required for external PRs)
46-
47-
- Behavior or issue addressed:
48-
- Real environment tested:
49-
- Exact steps or command run after this patch:
50-
- Evidence after fix (screenshot, recording, terminal capture, console output, redacted runtime log, linked artifact, or copied live output):
51-
- Observed result after fix:
52-
- What was not tested:
53-
- Proof limitations or environment constraints:
54-
- Before evidence (optional but encouraged):
55-
56-
<details>
57-
<summary>Real behavior proof guidance</summary>
58-
59-
External contributors must show after-fix evidence from a real OpenClaw setup. Unit tests, mocks, lint, typechecks, snapshots, and CI are supplemental only.
60-
61-
Screenshots are encouraged even for CLI, console, text, or log changes. Terminal screenshots, copied live output, redacted runtime logs, recordings, and linked artifacts count.
62-
63-
If your environment cannot produce the ideal proof, explain that under `Proof limitations or environment constraints` so reviewers and ClawSweeper can direct the next step properly.
64-
65-
Be mindful of private information like IP addresses, API keys, phone numbers, non-public endpoints, or other private details when providing evidence.
66-
67-
</details>
68-
69-
## Tests and validation
70-
71-
Which commands did you run?
72-
73-
What regression coverage was added or updated?
74-
75-
What failed before this fix, if known?
76-
77-
If no test was added, why not?
78-
79-
<details>
80-
<summary>Testing guidance</summary>
81-
82-
List focused commands, not every incidental check. CI is useful support, but external PRs still need real behavior proof above when behavior changes.
83-
84-
</details>
85-
86-
## Risk checklist
87-
88-
Did user-visible behavior change? (`Yes/No`)
89-
90-
Did config, environment, or migration behavior change? (`Yes/No`)
91-
92-
Did security, auth, secrets, network, or tool execution behavior change? (`Yes/No`)
93-
94-
What is the highest-risk area?
95-
96-
How is that risk mitigated?
97-
98-
<details>
99-
<summary>Risk guidance</summary>
100-
101-
Use this for author judgment that is not obvious from the diff. ClawSweeper can see touched files, but it cannot know which behavior you think is risky, why the risk is acceptable, or what mitigation reviewers should verify.
102-
103-
</details>
104-
105-
## Current review state
106-
107-
What is the next action?
108-
109-
What is still waiting on author, maintainer, CI, or external proof?
110-
111-
Which bot or reviewer comments were addressed?
112-
113-
<details>
114-
<summary>Review state guidance</summary>
115-
116-
Keep this as the durable state for review progress. If useful information appears in comments, fold the current next action or blocker back here so maintainers and ClawSweeper do not need to reconstruct state from comment history.
117-
118-
</details>
1+
<!--
2+
Optional linked context:
3+
Add a visible `Closes #<issue-number>` or `Related: #<issue-number>` line
4+
below this comment.
5+
6+
Required PR title:
7+
type: user-facing description
8+
Use a parenthesized scope only when it adds clarity:
9+
fix(auth): login redirect loops when session cookie is expired
10+
11+
Types: feat, fix, improve, refactor, docs, chore.
12+
For fixes, describe the user-visible symptom and trigger:
13+
fix: task list fails to load when user has no environments
14+
Avoid implementation details such as:
15+
fix: add null check to task query
16+
-->
17+
18+
## What Problem This Solves
19+
20+
<!--
21+
Describe the concrete user, product, or operational problem.
22+
For fixes, begin with:
23+
"Fixes an issue where users <do X> would <experience Y> when <condition>."
24+
or:
25+
"Resolves a problem where..."
26+
27+
Name the affected UI surface or workflow. Do not describe the code-level cause here.
28+
-->
29+
30+
## Why This Change Was Made
31+
32+
<!--
33+
In one or two sentences, explain the complete shipped solution, key design
34+
decisions, and relevant boundaries or non-goals. Include implementation detail
35+
only when it helps reviewers understand user-visible behavior or risk.
36+
Avoid file-by-file narration.
37+
-->
38+
39+
## User Impact
40+
41+
<!--
42+
State what users, operators, or developers can now do or expect. Lead with the
43+
concrete benefit and use user-facing language. If there is no user-visible
44+
impact, say so plainly.
45+
-->
46+
47+
## Evidence
48+
49+
<!--
50+
Show the most useful proof that this change works. Screenshots, screencasts,
51+
terminal output, focused tests, CI results, live observations, redacted logs,
52+
and artifact links are all useful. Include before/after evidence for visual
53+
changes when it clarifies the result.
54+
55+
Reviewers will inspect the code, tests, and CI. Use this section to make the
56+
validation easy to understand, not to restate the diff.
57+
-->

.github/workflows/ci-build-artifacts-testbox.yml

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,10 @@ on:
1414
permissions:
1515
contents: read
1616

17+
concurrency:
18+
group: ${{ github.event_name == 'pull_request' && format('{0}-pr-v1-{1}', github.workflow, github.event.pull_request.number) || format('{0}-manual-v1-{1}', github.workflow, github.run_id) }}
19+
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
20+
1721
env:
1822
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: "true"
1923

@@ -210,24 +214,49 @@ jobs:
210214
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
211215
ANTHROPIC_API_KEY_OLD: ${{ secrets.ANTHROPIC_API_KEY_OLD }}
212216
ANTHROPIC_API_TOKEN: ${{ secrets.ANTHROPIC_API_TOKEN }}
217+
BYTEPLUS_API_KEY: ${{ secrets.BYTEPLUS_API_KEY }}
213218
CEREBRAS_API_KEY: ${{ secrets.CEREBRAS_API_KEY }}
214219
DEEPINFRA_API_KEY: ${{ secrets.DEEPINFRA_API_KEY }}
220+
DASHSCOPE_API_KEY: ${{ secrets.DASHSCOPE_API_KEY }}
221+
FACTORY_API_KEY: ${{ secrets.FACTORY_API_KEY }}
215222
FIREWORKS_API_KEY: ${{ secrets.FIREWORKS_API_KEY }}
216223
GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY }}
217224
GOOGLE_API_KEY: ${{ secrets.GOOGLE_API_KEY }}
218225
GROQ_API_KEY: ${{ secrets.GROQ_API_KEY }}
219226
KIMI_API_KEY: ${{ secrets.KIMI_API_KEY }}
220227
MINIMAX_API_KEY: ${{ secrets.MINIMAX_API_KEY }}
228+
MODELSTUDIO_API_KEY: ${{ secrets.MODELSTUDIO_API_KEY }}
221229
MISTRAL_API_KEY: ${{ secrets.MISTRAL_API_KEY }}
222230
MOONSHOT_API_KEY: ${{ secrets.MOONSHOT_API_KEY }}
231+
OPENCODE_API_KEY: ${{ secrets.OPENCODE_API_KEY }}
232+
OPENCODE_ZEN_API_KEY: ${{ secrets.OPENCODE_ZEN_API_KEY }}
233+
OPENCLAW_LIVE_BROWSER_CDP_URL: ${{ secrets.OPENCLAW_LIVE_BROWSER_CDP_URL }}
234+
OPENCLAW_LIVE_SETUP_TOKEN: ${{ secrets.OPENCLAW_LIVE_SETUP_TOKEN }}
235+
OPENCLAW_LIVE_SETUP_TOKEN_MODEL: ${{ secrets.OPENCLAW_LIVE_SETUP_TOKEN_MODEL }}
236+
OPENCLAW_LIVE_SETUP_TOKEN_PROFILE: ${{ secrets.OPENCLAW_LIVE_SETUP_TOKEN_PROFILE }}
237+
OPENCLAW_LIVE_SETUP_TOKEN_VALUE: ${{ secrets.OPENCLAW_LIVE_SETUP_TOKEN_VALUE }}
223238
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
224239
OPENAI_BASE_URL: ${{ secrets.OPENAI_BASE_URL }}
225240
OPENROUTER_API_KEY: ${{ secrets.OPENROUTER_API_KEY }}
226241
QWEN_API_KEY: ${{ secrets.QWEN_API_KEY }}
242+
FAL_KEY: ${{ secrets.FAL_KEY }}
243+
RUNWAY_API_KEY: ${{ secrets.RUNWAY_API_KEY }}
244+
DEEPGRAM_API_KEY: ${{ secrets.DEEPGRAM_API_KEY }}
227245
TOGETHER_API_KEY: ${{ secrets.TOGETHER_API_KEY }}
246+
VYDRA_API_KEY: ${{ secrets.VYDRA_API_KEY }}
228247
XAI_API_KEY: ${{ secrets.XAI_API_KEY }}
229248
ZAI_API_KEY: ${{ secrets.ZAI_API_KEY }}
230249
Z_AI_API_KEY: ${{ secrets.Z_AI_API_KEY }}
250+
BYTEPLUS_ACCESS_KEY_ID: ${{ secrets.BYTEPLUS_ACCESS_KEY_ID }}
251+
BYTEPLUS_SECRET_ACCESS_KEY: ${{ secrets.BYTEPLUS_SECRET_ACCESS_KEY }}
252+
CLAUDE_CODE_OAUTH_TOKEN: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
253+
OPENCLAW_CODEX_AUTH_JSON: ${{ secrets.OPENCLAW_CODEX_AUTH_JSON }}
254+
OPENCLAW_CODEX_CONFIG_TOML: ${{ secrets.OPENCLAW_CODEX_CONFIG_TOML }}
255+
OPENCLAW_CLAUDE_JSON: ${{ secrets.OPENCLAW_CLAUDE_JSON }}
256+
OPENCLAW_CLAUDE_CREDENTIALS_JSON: ${{ secrets.OPENCLAW_CLAUDE_CREDENTIALS_JSON }}
257+
OPENCLAW_CLAUDE_SETTINGS_JSON: ${{ secrets.OPENCLAW_CLAUDE_SETTINGS_JSON }}
258+
OPENCLAW_CLAUDE_SETTINGS_LOCAL_JSON: ${{ secrets.OPENCLAW_CLAUDE_SETTINGS_LOCAL_JSON }}
259+
OPENCLAW_GEMINI_SETTINGS_JSON: ${{ secrets.OPENCLAW_GEMINI_SETTINGS_JSON }}
231260
run: bash scripts/ci-hydrate-testbox-env.sh
232261

233262
- name: Run Testbox

.github/workflows/ci-check-arm-testbox.yml

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@ on:
1313
permissions:
1414
contents: read
1515

16+
concurrency:
17+
group: ${{ github.event_name == 'pull_request' && format('{0}-pr-v1-{1}', github.workflow, github.event.pull_request.number) || format('{0}-manual-v1-{1}', github.workflow, github.run_id) }}
18+
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
19+
1620
env:
1721
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: "true"
1822
PNPM_CONFIG_STORE_DIR: "/tmp/openclaw-pnpm-store"
@@ -128,25 +132,49 @@ jobs:
128132
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
129133
ANTHROPIC_API_KEY_OLD: ${{ secrets.ANTHROPIC_API_KEY_OLD }}
130134
ANTHROPIC_API_TOKEN: ${{ secrets.ANTHROPIC_API_TOKEN }}
135+
BYTEPLUS_API_KEY: ${{ secrets.BYTEPLUS_API_KEY }}
131136
CEREBRAS_API_KEY: ${{ secrets.CEREBRAS_API_KEY }}
132137
DEEPINFRA_API_KEY: ${{ secrets.DEEPINFRA_API_KEY }}
138+
DASHSCOPE_API_KEY: ${{ secrets.DASHSCOPE_API_KEY }}
133139
FACTORY_API_KEY: ${{ secrets.FACTORY_API_KEY }}
134140
FIREWORKS_API_KEY: ${{ secrets.FIREWORKS_API_KEY }}
135141
GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY }}
136142
GOOGLE_API_KEY: ${{ secrets.GOOGLE_API_KEY }}
137143
GROQ_API_KEY: ${{ secrets.GROQ_API_KEY }}
138144
KIMI_API_KEY: ${{ secrets.KIMI_API_KEY }}
139145
MINIMAX_API_KEY: ${{ secrets.MINIMAX_API_KEY }}
146+
MODELSTUDIO_API_KEY: ${{ secrets.MODELSTUDIO_API_KEY }}
140147
MISTRAL_API_KEY: ${{ secrets.MISTRAL_API_KEY }}
141148
MOONSHOT_API_KEY: ${{ secrets.MOONSHOT_API_KEY }}
149+
OPENCODE_API_KEY: ${{ secrets.OPENCODE_API_KEY }}
150+
OPENCODE_ZEN_API_KEY: ${{ secrets.OPENCODE_ZEN_API_KEY }}
151+
OPENCLAW_LIVE_BROWSER_CDP_URL: ${{ secrets.OPENCLAW_LIVE_BROWSER_CDP_URL }}
152+
OPENCLAW_LIVE_SETUP_TOKEN: ${{ secrets.OPENCLAW_LIVE_SETUP_TOKEN }}
153+
OPENCLAW_LIVE_SETUP_TOKEN_MODEL: ${{ secrets.OPENCLAW_LIVE_SETUP_TOKEN_MODEL }}
154+
OPENCLAW_LIVE_SETUP_TOKEN_PROFILE: ${{ secrets.OPENCLAW_LIVE_SETUP_TOKEN_PROFILE }}
155+
OPENCLAW_LIVE_SETUP_TOKEN_VALUE: ${{ secrets.OPENCLAW_LIVE_SETUP_TOKEN_VALUE }}
142156
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
143157
OPENAI_BASE_URL: ${{ secrets.OPENAI_BASE_URL }}
144158
OPENROUTER_API_KEY: ${{ secrets.OPENROUTER_API_KEY }}
145159
QWEN_API_KEY: ${{ secrets.QWEN_API_KEY }}
160+
FAL_KEY: ${{ secrets.FAL_KEY }}
161+
RUNWAY_API_KEY: ${{ secrets.RUNWAY_API_KEY }}
162+
DEEPGRAM_API_KEY: ${{ secrets.DEEPGRAM_API_KEY }}
146163
TOGETHER_API_KEY: ${{ secrets.TOGETHER_API_KEY }}
164+
VYDRA_API_KEY: ${{ secrets.VYDRA_API_KEY }}
147165
XAI_API_KEY: ${{ secrets.XAI_API_KEY }}
148166
ZAI_API_KEY: ${{ secrets.ZAI_API_KEY }}
149167
Z_AI_API_KEY: ${{ secrets.Z_AI_API_KEY }}
168+
BYTEPLUS_ACCESS_KEY_ID: ${{ secrets.BYTEPLUS_ACCESS_KEY_ID }}
169+
BYTEPLUS_SECRET_ACCESS_KEY: ${{ secrets.BYTEPLUS_SECRET_ACCESS_KEY }}
170+
CLAUDE_CODE_OAUTH_TOKEN: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
171+
OPENCLAW_CODEX_AUTH_JSON: ${{ secrets.OPENCLAW_CODEX_AUTH_JSON }}
172+
OPENCLAW_CODEX_CONFIG_TOML: ${{ secrets.OPENCLAW_CODEX_CONFIG_TOML }}
173+
OPENCLAW_CLAUDE_JSON: ${{ secrets.OPENCLAW_CLAUDE_JSON }}
174+
OPENCLAW_CLAUDE_CREDENTIALS_JSON: ${{ secrets.OPENCLAW_CLAUDE_CREDENTIALS_JSON }}
175+
OPENCLAW_CLAUDE_SETTINGS_JSON: ${{ secrets.OPENCLAW_CLAUDE_SETTINGS_JSON }}
176+
OPENCLAW_CLAUDE_SETTINGS_LOCAL_JSON: ${{ secrets.OPENCLAW_CLAUDE_SETTINGS_LOCAL_JSON }}
177+
OPENCLAW_GEMINI_SETTINGS_JSON: ${{ secrets.OPENCLAW_GEMINI_SETTINGS_JSON }}
150178
run: bash scripts/ci-hydrate-testbox-env.sh
151179

152180
- name: Run Testbox

.github/workflows/ci-check-testbox.yml

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,10 @@ on:
1717
permissions:
1818
contents: read
1919

20+
concurrency:
21+
group: ${{ github.event_name == 'pull_request' && format('{0}-pr-v1-{1}', github.workflow, github.event.pull_request.number) || format('{0}-manual-v1-{1}', github.workflow, github.run_id) }}
22+
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
23+
2024
env:
2125
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: "true"
2226
PNPM_CONFIG_STORE_DIR: "/tmp/openclaw-pnpm-store"
@@ -117,25 +121,49 @@ jobs:
117121
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
118122
ANTHROPIC_API_KEY_OLD: ${{ secrets.ANTHROPIC_API_KEY_OLD }}
119123
ANTHROPIC_API_TOKEN: ${{ secrets.ANTHROPIC_API_TOKEN }}
124+
BYTEPLUS_API_KEY: ${{ secrets.BYTEPLUS_API_KEY }}
120125
CEREBRAS_API_KEY: ${{ secrets.CEREBRAS_API_KEY }}
121126
DEEPINFRA_API_KEY: ${{ secrets.DEEPINFRA_API_KEY }}
127+
DASHSCOPE_API_KEY: ${{ secrets.DASHSCOPE_API_KEY }}
122128
FACTORY_API_KEY: ${{ secrets.FACTORY_API_KEY }}
123129
FIREWORKS_API_KEY: ${{ secrets.FIREWORKS_API_KEY }}
124130
GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY }}
125131
GOOGLE_API_KEY: ${{ secrets.GOOGLE_API_KEY }}
126132
GROQ_API_KEY: ${{ secrets.GROQ_API_KEY }}
127133
KIMI_API_KEY: ${{ secrets.KIMI_API_KEY }}
128134
MINIMAX_API_KEY: ${{ secrets.MINIMAX_API_KEY }}
135+
MODELSTUDIO_API_KEY: ${{ secrets.MODELSTUDIO_API_KEY }}
129136
MISTRAL_API_KEY: ${{ secrets.MISTRAL_API_KEY }}
130137
MOONSHOT_API_KEY: ${{ secrets.MOONSHOT_API_KEY }}
138+
OPENCODE_API_KEY: ${{ secrets.OPENCODE_API_KEY }}
139+
OPENCODE_ZEN_API_KEY: ${{ secrets.OPENCODE_ZEN_API_KEY }}
140+
OPENCLAW_LIVE_BROWSER_CDP_URL: ${{ secrets.OPENCLAW_LIVE_BROWSER_CDP_URL }}
141+
OPENCLAW_LIVE_SETUP_TOKEN: ${{ secrets.OPENCLAW_LIVE_SETUP_TOKEN }}
142+
OPENCLAW_LIVE_SETUP_TOKEN_MODEL: ${{ secrets.OPENCLAW_LIVE_SETUP_TOKEN_MODEL }}
143+
OPENCLAW_LIVE_SETUP_TOKEN_PROFILE: ${{ secrets.OPENCLAW_LIVE_SETUP_TOKEN_PROFILE }}
144+
OPENCLAW_LIVE_SETUP_TOKEN_VALUE: ${{ secrets.OPENCLAW_LIVE_SETUP_TOKEN_VALUE }}
131145
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
132146
OPENAI_BASE_URL: ${{ secrets.OPENAI_BASE_URL }}
133147
OPENROUTER_API_KEY: ${{ secrets.OPENROUTER_API_KEY }}
134148
QWEN_API_KEY: ${{ secrets.QWEN_API_KEY }}
149+
FAL_KEY: ${{ secrets.FAL_KEY }}
150+
RUNWAY_API_KEY: ${{ secrets.RUNWAY_API_KEY }}
151+
DEEPGRAM_API_KEY: ${{ secrets.DEEPGRAM_API_KEY }}
135152
TOGETHER_API_KEY: ${{ secrets.TOGETHER_API_KEY }}
153+
VYDRA_API_KEY: ${{ secrets.VYDRA_API_KEY }}
136154
XAI_API_KEY: ${{ secrets.XAI_API_KEY }}
137155
ZAI_API_KEY: ${{ secrets.ZAI_API_KEY }}
138156
Z_AI_API_KEY: ${{ secrets.Z_AI_API_KEY }}
157+
BYTEPLUS_ACCESS_KEY_ID: ${{ secrets.BYTEPLUS_ACCESS_KEY_ID }}
158+
BYTEPLUS_SECRET_ACCESS_KEY: ${{ secrets.BYTEPLUS_SECRET_ACCESS_KEY }}
159+
CLAUDE_CODE_OAUTH_TOKEN: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
160+
OPENCLAW_CODEX_AUTH_JSON: ${{ secrets.OPENCLAW_CODEX_AUTH_JSON }}
161+
OPENCLAW_CODEX_CONFIG_TOML: ${{ secrets.OPENCLAW_CODEX_CONFIG_TOML }}
162+
OPENCLAW_CLAUDE_JSON: ${{ secrets.OPENCLAW_CLAUDE_JSON }}
163+
OPENCLAW_CLAUDE_CREDENTIALS_JSON: ${{ secrets.OPENCLAW_CLAUDE_CREDENTIALS_JSON }}
164+
OPENCLAW_CLAUDE_SETTINGS_JSON: ${{ secrets.OPENCLAW_CLAUDE_SETTINGS_JSON }}
165+
OPENCLAW_CLAUDE_SETTINGS_LOCAL_JSON: ${{ secrets.OPENCLAW_CLAUDE_SETTINGS_LOCAL_JSON }}
166+
OPENCLAW_GEMINI_SETTINGS_JSON: ${{ secrets.OPENCLAW_GEMINI_SETTINGS_JSON }}
139167
run: bash scripts/ci-hydrate-testbox-env.sh
140168

141169
- name: Run Testbox

0 commit comments

Comments
 (0)