Skip to content

Commit a431bb9

Browse files
committed
in progress nuke
1 parent 27dc0e7 commit a431bb9

File tree

3,312 files changed

+110114
-238749
lines changed

Some content is hidden

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

3,312 files changed

+110114
-238749
lines changed

.detect-secrets.cfg

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,6 @@
77
[exclude-files]
88
# pnpm lockfiles contain lots of high-entropy package integrity blobs.
99
pattern = (^|/)pnpm-lock\.yaml$
10-
# Generated output and vendored assets.
11-
pattern = (^|/)(dist|vendor)/
12-
# Local config file with allowlist patterns.
13-
pattern = (^|/)\.detect-secrets\.cfg$
1410

1511
[exclude-lines]
1612
# Fastlane checks for private key marker; not a real key.
@@ -28,3 +24,22 @@ pattern = "talk\.apiKey"
2824
pattern = === "string"
2925
# specific optional-chaining password check that didn't match the line above.
3026
pattern = typeof remote\?\.password === "string"
27+
# Docker apt signing key fingerprint constant; not a secret.
28+
pattern = OPENCLAW_DOCKER_GPG_FINGERPRINT=
29+
# Credential matrix metadata field in docs JSON; not a secret value.
30+
pattern = "secretShape": "(secret_input|sibling_ref)"
31+
# Docs line describing API key rotation knobs; not a credential.
32+
pattern = API key rotation \(provider-specific\): set `\*_API_KEYS`
33+
# Docs line describing remote password precedence; not a credential.
34+
pattern = passw[o]rd: `OPENCLAW_GATEWAY_PASSW[O]RD` -> `gateway\.auth\.passw[o]rd` -> `gateway\.remote\.passw[o]rd`
35+
pattern = passw[o]rd: `OPENCLAW_GATEWAY_PASSW[O]RD` -> `gateway\.remote\.passw[o]rd` -> `gateway\.auth\.passw[o]rd`
36+
# Test fixture starts a multiline fake private key; detector should ignore the header line.
37+
pattern = const key = `-----BEGIN PRIVATE KEY-----
38+
# Docs examples: literal placeholder API key snippets and shell heredoc helper.
39+
pattern = export CUSTOM_API_K[E]Y="your-key"
40+
pattern = grep -q 'N[O]DE_COMPILE_CACHE=/var/tmp/openclaw-compile-cache' ~/.bashrc \|\| cat >> ~/.bashrc <<'EOF'
41+
pattern = env: \{ MISTRAL_API_K[E]Y: "sk-\.\.\." \},
42+
pattern = "ap[i]Key": "xxxxx",
43+
pattern = ap[i]Key: "A[I]za\.\.\.",
44+
# Sparkle appcast signatures are release metadata, not credentials.
45+
pattern = sparkle:edSignature="[A-Za-z0-9+/=]+"

.github/FUNDING.yml

Lines changed: 0 additions & 1 deletion
This file was deleted.

.github/ISSUE_TEMPLATE/bug_report.yml

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,37 @@ body:
7676
label: Install method
7777
description: How OpenClaw was installed or launched.
7878
placeholder: npm global / pnpm dev / docker / mac app
79+
- type: input
80+
id: model
81+
attributes:
82+
label: Model
83+
description: Effective model under test.
84+
placeholder: minimax/text-01 / openrouter/anthropic/claude-opus-4.1 / anthropic/claude-sonnet-4.5
85+
validations:
86+
required: true
87+
- type: input
88+
id: provider_chain
89+
attributes:
90+
label: Provider / routing chain
91+
description: Effective request path through gateways, proxies, providers, or model routers.
92+
placeholder: openclaw -> cloudflare-ai-gateway -> minimax
93+
validations:
94+
required: true
95+
- type: input
96+
id: config_location
97+
attributes:
98+
label: Config file / key location
99+
description: Optional. Relevant config source or key path if this bug depends on overrides or custom provider setup. Redact secrets.
100+
placeholder: ~/.openclaw/openclaw.json ; models.providers.cloudflare-ai-gateway.baseUrl ; ~/.openclaw/agents/<agentId>/agent/models.json
101+
- type: textarea
102+
id: provider_setup_details
103+
attributes:
104+
label: Additional provider/model setup details
105+
description: Optional. Include redacted routing details, per-agent overrides, auth-profile interactions, env/config context, or anything else needed to explain the effective provider/model setup. Do not include API keys, tokens, or passwords.
106+
placeholder: |
107+
Default route is openclaw -> cloudflare-ai-gateway -> minimax.
108+
Previous setup was openclaw -> cloudflare-ai-gateway -> openrouter -> minimax.
109+
Relevant config lives in ~/.openclaw/openclaw.json under models.providers.minimax and models.providers.cloudflare-ai-gateway.
79110
- type: textarea
80111
id: logs
81112
attributes:

.github/actionlint.yaml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,7 @@ self-hosted-runner:
55
labels:
66
# Blacksmith CI runners
77
- blacksmith-8vcpu-ubuntu-2404
8-
- blacksmith-8vcpu-windows-2025
98
- blacksmith-16vcpu-ubuntu-2404
10-
- blacksmith-16vcpu-windows-2025
11-
- blacksmith-32vcpu-windows-2025
129
- blacksmith-16vcpu-ubuntu-2404-arm
1310

1411
# Ignore patterns for known issues
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
name: Ensure base commit
2+
description: Ensure a shallow checkout has enough history to diff against a base SHA.
3+
inputs:
4+
base-sha:
5+
description: Base commit SHA to diff against.
6+
required: true
7+
fetch-ref:
8+
description: Branch or ref to deepen/fetch from origin when base-sha is missing.
9+
required: true
10+
runs:
11+
using: composite
12+
steps:
13+
- name: Ensure base commit is available
14+
shell: bash
15+
env:
16+
BASE_SHA: ${{ inputs.base-sha }}
17+
FETCH_REF: ${{ inputs.fetch-ref }}
18+
run: |
19+
set -euo pipefail
20+
21+
if [ -z "$BASE_SHA" ] || [[ "$BASE_SHA" =~ ^0+$ ]]; then
22+
echo "No concrete base SHA available; skipping targeted fetch."
23+
exit 0
24+
fi
25+
26+
if git rev-parse --verify "$BASE_SHA^{commit}" >/dev/null 2>&1; then
27+
echo "Base commit already present: $BASE_SHA"
28+
exit 0
29+
fi
30+
31+
for deepen_by in 25 100 300; do
32+
echo "Base commit missing; deepening $FETCH_REF by $deepen_by."
33+
git fetch --no-tags --deepen="$deepen_by" origin "$FETCH_REF" || true
34+
if git rev-parse --verify "$BASE_SHA^{commit}" >/dev/null 2>&1; then
35+
echo "Resolved base commit after deepening: $BASE_SHA"
36+
exit 0
37+
fi
38+
done
39+
40+
echo "Base commit still missing; fetching full history for $FETCH_REF."
41+
git fetch --no-tags origin "$FETCH_REF" || true
42+
if git rev-parse --verify "$BASE_SHA^{commit}" >/dev/null 2>&1; then
43+
echo "Resolved base commit after full ref fetch: $BASE_SHA"
44+
exit 0
45+
fi
46+
47+
echo "Base commit still unavailable after fetch attempts: $BASE_SHA"
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
name: openclaw-codeql-javascript-typescript
2+
3+
paths:
4+
- src
5+
- extensions
6+
- ui/src
7+
- skills
8+
9+
paths-ignore:
10+
- apps
11+
- dist
12+
- docs
13+
- "**/node_modules"
14+
- "**/coverage"
15+
- "**/*.test.ts"
16+
- "**/*.test.tsx"
17+
- "**/*.e2e.test.ts"
18+
- "**/*.e2e.test.tsx"

.github/dependabot.yml

Lines changed: 0 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -49,38 +49,6 @@ updates:
4949
- patch
5050
open-pull-requests-limit: 5
5151

52-
# Swift Package Manager - macOS app
53-
- package-ecosystem: swift
54-
directory: /apps/macos
55-
schedule:
56-
interval: daily
57-
cooldown:
58-
default-days: 2
59-
groups:
60-
swift-deps:
61-
patterns:
62-
- "*"
63-
update-types:
64-
- minor
65-
- patch
66-
open-pull-requests-limit: 5
67-
68-
# Swift Package Manager - shared MoltbotKit
69-
- package-ecosystem: swift
70-
directory: /apps/shared/MoltbotKit
71-
schedule:
72-
interval: daily
73-
cooldown:
74-
default-days: 2
75-
groups:
76-
swift-deps:
77-
patterns:
78-
- "*"
79-
update-types:
80-
- minor
81-
- patch
82-
open-pull-requests-limit: 5
83-
8452
# Swift Package Manager - Swabble
8553
- package-ecosystem: swift
8654
directory: /Swabble
@@ -97,22 +65,6 @@ updates:
9765
- patch
9866
open-pull-requests-limit: 5
9967

100-
# Gradle - Android app
101-
- package-ecosystem: gradle
102-
directory: /apps/android
103-
schedule:
104-
interval: daily
105-
cooldown:
106-
default-days: 2
107-
groups:
108-
android-deps:
109-
patterns:
110-
- "*"
111-
update-types:
112-
- minor
113-
- patch
114-
open-pull-requests-limit: 5
115-
11668
# Docker base images
11769
- package-ecosystem: docker
11870
directory: /

.github/labeler.yml

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -115,22 +115,6 @@
115115
- "extensions/zalouser/**"
116116
- "docs/channels/zalouser.md"
117117

118-
"app: android":
119-
- changed-files:
120-
- any-glob-to-any-file:
121-
- "apps/android/**"
122-
- "docs/platforms/android.md"
123-
"app: ios":
124-
- changed-files:
125-
- any-glob-to-any-file:
126-
- "apps/ios/**"
127-
- "docs/platforms/ios.md"
128-
"app: macos":
129-
- changed-files:
130-
- any-glob-to-any-file:
131-
- "apps/macos/**"
132-
- "docs/platforms/macos.md"
133-
- "docs/platforms/mac/**"
134118
"app: web-ui":
135119
- changed-files:
136120
- any-glob-to-any-file:

.github/pull_request_template.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,13 @@ What you personally verified (not just CI), and how:
8787
- Edge cases checked:
8888
- What you did **not** verify:
8989

90+
## Review Conversations
91+
92+
- [ ] I replied to or resolved every bot review conversation I addressed in this PR.
93+
- [ ] I left unresolved only the conversations that still need reviewer or maintainer judgment.
94+
95+
If a bot review conversation is addressed by this PR, resolve that conversation yourself. Do not leave bot review conversation cleanup for maintainers.
96+
9097
## Compatibility / Migration
9198

9299
- Backward compatible? (`Yes/No`)

.github/workflows/auto-response.yml

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ jobs:
3535
github-token: ${{ steps.app-token.outputs.token || steps.app-token-fallback.outputs.token }}
3636
script: |
3737
// Labels prefixed with "r:" are auto-response triggers.
38+
const activePrLimit = 10;
3839
const rules = [
3940
{
4041
label: "r: skill",
@@ -48,6 +49,21 @@ jobs:
4849
message:
4950
"Please use [our support server](https://discord.gg/clawd) and ask in #help or #users-helping-users to resolve this, or follow the stuck FAQ at https://docs.openclaw.ai/help/faq#im-stuck-whats-the-fastest-way-to-get-unstuck.",
5051
},
52+
{
53+
label: "r: no-ci-pr",
54+
close: true,
55+
message:
56+
"Please don't make PRs for test failures on main.\n\n" +
57+
"The team is aware of those and will handle them directly on the codebase, not only fixing the tests but also investigating what the root cause is. Having to sift through test-fix-PRs (including some that have been out of date for weeks...) on top of that doesn't help. There are already way too many PRs for humans to manage; please don't make the flood worse.\n\n" +
58+
"Thank you.",
59+
},
60+
{
61+
label: "r: too-many-prs",
62+
close: true,
63+
message:
64+
`Closing this PR because the author has more than ${activePrLimit} active PRs in this repo. ` +
65+
"Please reduce the active PR queue and reopen or resubmit once it is back under the limit. You can close your own PRs to get back under the limit.",
66+
},
5167
{
5268
label: "r: testflight",
5369
close: true,
@@ -246,6 +262,8 @@ jobs:
246262
};
247263
248264
const triggerLabel = "trigger-response";
265+
const activePrLimitLabel = "r: too-many-prs";
266+
const activePrLimitOverrideLabel = "r: too-many-prs-override";
249267
const target = context.payload.issue ?? context.payload.pull_request;
250268
if (!target) {
251269
return;
@@ -375,6 +393,7 @@ jobs:
375393
}
376394
377395
const invalidLabel = "invalid";
396+
const spamLabel = "r: spam";
378397
const dirtyLabel = "dirty";
379398
const noisyPrMessage =
380399
"Closing this PR because it looks dirty (too many unrelated or unexpected changes). This usually happens when a branch picks up unrelated commits or a merge went sideways. Please recreate the PR from a clean branch.";
@@ -411,6 +430,21 @@ jobs:
411430
});
412431
return;
413432
}
433+
if (labelSet.has(spamLabel)) {
434+
await github.rest.issues.update({
435+
owner: context.repo.owner,
436+
repo: context.repo.repo,
437+
issue_number: pullRequest.number,
438+
state: "closed",
439+
});
440+
await github.rest.issues.lock({
441+
owner: context.repo.owner,
442+
repo: context.repo.repo,
443+
issue_number: pullRequest.number,
444+
lock_reason: "spam",
445+
});
446+
return;
447+
}
414448
if (labelSet.has(invalidLabel)) {
415449
await github.rest.issues.update({
416450
owner: context.repo.owner,
@@ -422,6 +456,23 @@ jobs:
422456
}
423457
}
424458
459+
if (issue && labelSet.has(spamLabel)) {
460+
await github.rest.issues.update({
461+
owner: context.repo.owner,
462+
repo: context.repo.repo,
463+
issue_number: issue.number,
464+
state: "closed",
465+
state_reason: "not_planned",
466+
});
467+
await github.rest.issues.lock({
468+
owner: context.repo.owner,
469+
repo: context.repo.repo,
470+
issue_number: issue.number,
471+
lock_reason: "spam",
472+
});
473+
return;
474+
}
475+
425476
if (issue && labelSet.has(invalidLabel)) {
426477
await github.rest.issues.update({
427478
owner: context.repo.owner,
@@ -433,6 +484,10 @@ jobs:
433484
return;
434485
}
435486
487+
if (pullRequest && labelSet.has(activePrLimitOverrideLabel)) {
488+
labelSet.delete(activePrLimitLabel);
489+
}
490+
436491
const rule = rules.find((item) => labelSet.has(item.label));
437492
if (!rule) {
438493
return;

0 commit comments

Comments
 (0)