Skip to content

Commit e1eee95

Browse files
committed
Merge upstream/main into fix/foundry-filter-anthropic-deployments
2 parents ae6567b + 8dc1080 commit e1eee95

286 files changed

Lines changed: 8651 additions & 12747 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/crabbox/SKILL.md

Lines changed: 36 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,13 @@ pnpm crabbox:run -- --help | sed -n '1,120p'
3131
- Check `.crabbox.yaml` for repo defaults, but override provider explicitly.
3232
Even if config still says AWS, maintainer validation should normally pass
3333
`--provider blacksmith-testbox`.
34+
- For live/provider bugs, check keys on the local Mac before downgrading to
35+
mocks: source local `~/.profile` and test only presence/length. If Crabbox
36+
does not already have the key, copy only the exact needed key into the remote
37+
process environment for that one command. Do not print it, do not sync it as a
38+
repo file, and do not leave it in remote shell history or logs. If no
39+
secret-safe injection path is available, say true live provider auth is
40+
blocked instead of silently using a fake key.
3441
- Prefer local targeted tests for tight edit loops. Broad gates belong remote.
3542
- Do not treat inherited shell env as operator intent. In particular,
3643
`OPENCLAW_LOCAL_CHECK_MODE=throttled` from the local shell is not permission
@@ -142,9 +149,11 @@ Pick the lane by symptom:
142149
- Docker/setup/install bug: build a package tarball and run the matching
143150
`scripts/e2e/*-docker.sh` or package script. This proves npm packaging,
144151
install paths, runtime deps, config writes, and container behavior.
145-
- Provider/model/auth bug: use a live lane when a `.profile`/Testbox profile key
146-
is available; otherwise use the repo's mock provider lane and state clearly
147-
that live provider auth was not exercised.
152+
- Provider/model/auth bug: prefer true live E2E. First source local Mac
153+
`~/.profile`, then inject the single needed key into Crabbox if needed. Scrub
154+
unrelated provider env vars in the child command so interactive defaults do
155+
not drift to another provider. If only a dummy key is used, label the proof
156+
narrowly, e.g. "UI/install path only; live provider auth not exercised."
148157
- Channel delivery bug: use the channel Docker/live lane when available; include
149158
setup, config, gateway start, send/receive or agent-turn proof, and redacted
150159
logs.
@@ -180,6 +189,30 @@ Keep it efficient:
180189
- Include `--timing-json` on broad or flaky runs when command duration or sync
181190
behavior matters.
182191

192+
Interactive CLI/onboarding:
193+
194+
- For full-screen or prompt-heavy CLI flows, run the target command inside tmux
195+
on the Crabbox and drive it with `tmux send-keys`; capture proof with
196+
`tmux capture-pane`, redacted through `sed`.
197+
- Prefer deterministic arrow navigation over search typing for Clack-style
198+
searchable selects. Raw `send-keys -l openai` may not trigger filtering in a
199+
tmux pane; inspect option order locally or on-box and send exact Down/Enter
200+
sequences.
201+
- Isolate mutable state with `OPENCLAW_STATE_DIR=$(mktemp -d)`. Plugin npm
202+
installs live under that state dir (`npm/node_modules/...`), not under
203+
`OPENCLAW_CONFIG_DIR`. Verify downloads by checking the state dir, package
204+
lock, and installed package metadata.
205+
- To test automatic setup installs against local package artifacts, use
206+
`OPENCLAW_ALLOW_PLUGIN_INSTALL_OVERRIDES=1` plus
207+
`OPENCLAW_PLUGIN_INSTALL_OVERRIDES='{"plugin-id":"npm-pack:/tmp/plugin.tgz"}'`.
208+
Pack with `npm pack`, set an isolated `OPENCLAW_STATE_DIR`, and verify the
209+
package under `npm/node_modules`. Overrides are test-only and must not be
210+
treated as official/trusted-source installs.
211+
- For OpenAI/Codex onboarding proof, the useful markers are the UI line
212+
`Installed Codex plugin`, `npm/node_modules/@openclaw/codex`, and the
213+
package-lock entry showing the bundled `@openai/codex` dependency. A dummy
214+
OpenAI-shaped key can prove only UI/install behavior; it is not live auth.
215+
183216
## Reuse And Keepalive
184217

185218
For most Blacksmith-backed Crabbox calls, one-shot is enough. Use reuse only

.agents/skills/openclaw-pr-maintainer/SKILL.md

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -108,8 +108,8 @@ Issue triage is review/prove/patch-local by default:
108108
1. Review the issue body, comments, related threads, current code, and adjacent tests.
109109
2. Fix only issues that are easy, high-confidence, and narrowly owned by the implicated path.
110110
3. Add focused regression proof when practical.
111-
4. Stop with the dirty diff, touched files, and test/gate output for Peter's manual review.
112-
5. After Peter approves shipping, make one commit per accepted fix, with its own changelog entry when user-facing.
111+
4. Stop with the dirty diff, touched files, and test/gate output for maintainer review.
112+
5. After maintainer approval to ship, make one commit per accepted fix, with its own changelog entry when user-facing.
113113
6. Pull/rebase, push, then comment and close only the issues that were fixed or explicitly triaged closed.
114114

115115
Do not batch unrelated issue fixes into one commit. Do not publish, comment, close, or label during the review/prove phase.
@@ -134,6 +134,22 @@ Loop:
134134

135135
Output only qualifying candidates, with: ref, surface, proof, cause, fix sketch, why small, expected test/gate. If none qualify, say so; do not pad.
136136

137+
## Structure PR review output
138+
139+
- Start every PR review with 1-3 plain sentences explaining what the change does and why it matters. Put this before `Findings`.
140+
- Then list findings first. If none, say `No blocking findings` or `No findings`.
141+
- Always answer: bug/behavior being fixed, PR/issue URL and affected surface, and best-fix verdict.
142+
- Keep summaries compact, but include enough proof that the verdict is auditable without rereading the PR.
143+
144+
## Read beyond the diff
145+
146+
- Review the surrounding code path, not just changed lines. Open the caller, callee, data contracts, adjacent tests, and owner module.
147+
- For large-codebase PRs, sample enough related files to understand the runtime boundary before deciding. Default to more code reading when the change touches agents, gateway, plugins, auth, sessions, process, config, or provider/runtime seams.
148+
- Compare the PR against current `origin/main` behavior. Check whether recent main already changed the same surface.
149+
- Dependency-backed behavior: MUST read upstream docs/source/types before judging API use, defaults, output shapes, errors, timeouts, memory behavior, or compatibility. Do not assume dependency contracts from memory or PR text.
150+
- Judge solution quality, not only correctness. Ask whether the PR is the clean owner-boundary fix or a wart/workaround that should be replaced by a small refactor, moved seam, contract change, or deletion of duplicate logic.
151+
- Mention the main files read when the verdict depends on code-path evidence.
152+
137153
## Enforce the bug-fix evidence bar
138154

139155
- Never merge a bug-fix PR based only on issue text, PR text, or AI rationale.
@@ -193,6 +209,9 @@ gh search issues --repo openclaw/openclaw --match title,body --limit 50 \
193209

194210
## Follow PR review and landing hygiene
195211

212+
- Never mention merge conflicts that are relatively easy to resolve, such as
213+
`CHANGELOG.md` entries, in review-only output. These are landing mechanics,
214+
not correctness findings.
196215
- If bot review conversations exist on your PR, address them and resolve them yourself once fixed.
197216
- Leave a review conversation unresolved only when reviewer or maintainer judgment is still needed.
198217
- When landing or merging any PR, follow the global `/landpr` process.

.oxlintrc.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
"eslint/no-useless-computed-key": "error",
3131
"eslint/no-useless-concat": "error",
3232
"eslint/no-useless-constructor": "error",
33+
"eslint/no-unused-vars": "off",
3334
"eslint/no-warning-comments": "error",
3435
"eslint/no-unmodified-loop-condition": "error",
3536
"eslint/no-new-wrappers": "error",

0 commit comments

Comments
 (0)