diff --git a/.dockerignore b/.dockerignore index 69c7252c1a9..f655e72c7ab 100644 --- a/.dockerignore +++ b/.dockerignore @@ -59,11 +59,6 @@ apps/ios/build # large app trees not needed for CLI build apps/ -assets/ -Peekaboo/ -apps/swabble/ -Core/ -Users/ vendor/ # Needed for building the Canvas A2UI bundle during Docker image builds. diff --git a/.oxfmtrc.jsonc b/.oxfmtrc.jsonc index 5d99da66a5e..2def267522f 100644 --- a/.oxfmtrc.jsonc +++ b/.oxfmtrc.jsonc @@ -10,7 +10,6 @@ "useTabs": false, "ignorePatterns": [ "apps/", - "assets/", "CLAUDE.md", "docker-compose.yml", "dist/", @@ -23,7 +22,6 @@ "src/canvas-host/a2ui/a2ui.bundle.js", "test/fixtures/agents/prompt-snapshots/codex-model-catalog/*.instructions.md", "test/fixtures/agents/prompt-snapshots/happy-path/*.md", - "apps/swabble/", "vendor/", ], } diff --git a/.oxlintrc.json b/.oxlintrc.json index 53c50b9334b..2c9cfc6beb9 100644 --- a/.oxlintrc.json +++ b/.oxlintrc.json @@ -113,7 +113,6 @@ "vitest/prefer-expect-type-of": "error" }, "ignorePatterns": [ - "assets/", "dist/", "dist-runtime/", "docs/_layouts/", @@ -123,7 +122,6 @@ "skills/", "src/auto-reply/reply/export-html/template.js", "src/canvas-host/a2ui/a2ui.bundle.js", - "apps/swabble/", "vendor/", "**/.cache/**", "**/build/**", diff --git a/assets/dmg-background-small.png b/apps/macos/Packaging/dmg-background-small.png similarity index 100% rename from assets/dmg-background-small.png rename to apps/macos/Packaging/dmg-background-small.png diff --git a/assets/dmg-background.png b/apps/macos/Packaging/dmg-background.png similarity index 100% rename from assets/dmg-background.png rename to apps/macos/Packaging/dmg-background.png diff --git a/assets/avatar-placeholder.svg b/assets/avatar-placeholder.svg deleted file mode 100644 index d0a6999abff..00000000000 --- a/assets/avatar-placeholder.svg +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/assets/chrome-extension/icons/icon128.png b/assets/chrome-extension/icons/icon128.png deleted file mode 100644 index 533cc812de7..00000000000 Binary files a/assets/chrome-extension/icons/icon128.png and /dev/null differ diff --git a/assets/chrome-extension/icons/icon16.png b/assets/chrome-extension/icons/icon16.png deleted file mode 100644 index 1be23ae89b4..00000000000 Binary files a/assets/chrome-extension/icons/icon16.png and /dev/null differ diff --git a/assets/chrome-extension/icons/icon32.png b/assets/chrome-extension/icons/icon32.png deleted file mode 100644 index f4c1be8a6a0..00000000000 Binary files a/assets/chrome-extension/icons/icon32.png and /dev/null differ diff --git a/assets/chrome-extension/icons/icon48.png b/assets/chrome-extension/icons/icon48.png deleted file mode 100644 index d2a278af59e..00000000000 Binary files a/assets/chrome-extension/icons/icon48.png and /dev/null differ diff --git a/package.json b/package.json index 628b51d9baf..f87b47a9cf7 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,6 @@ "LICENSE", "openclaw.mjs", "README.md", - "assets/", "dist/", "!dist/.buildstamp", "!dist/.runtime-postbuildstamp", diff --git a/scripts/changed-lanes.mjs b/scripts/changed-lanes.mjs index 15ab84fc9f1..1241492a786 100644 --- a/scripts/changed-lanes.mjs +++ b/scripts/changed-lanes.mjs @@ -12,6 +12,7 @@ const TOOLING_PATH_RE = /^(?:scripts\/|test\/vitest\/|\.github\/|\.vscode\/|git-hooks\/|Dockerfile\.sandbox(?:-(?:browser|common))?$|vitest(?:\..+)?\.config\.ts$|tsconfig.*\.json$|\.dockerignore$|\.gitignore$|\.pre-commit-config\.yaml$|\.swiftformat$|\.oxlint.*|\.oxfmt.*)/u; const ROOT_GLOBAL_PATH_RE = /^(?:package\.json$|pnpm-lock\.yaml$|pnpm-workspace\.yaml$|tsdown\.config\.ts$|vitest\.config\.ts$)/u; +const LEGACY_ROOT_ASSET_PATH_RE = /^assets\//u; const LIVE_DOCKER_TOOLING_PATH_RE = /^(?:scripts\/test-docker-all\.mjs|scripts\/test-docker-all\.sh|scripts\/lib\/live-docker-auth\.sh|scripts\/test-live-(?:acp-bind|cli-backend|codex-harness|gateway-models|models)-docker\.sh|src\/gateway\/gateway-acp-bind\.live\.test\.ts|src\/gateway\/live-agent-probes\.test\.ts)$/u; const LIVE_DOCKER_PACKAGE_SCRIPT_RE = /^test:docker:live-[\w:-]+$/u; @@ -189,6 +190,12 @@ export function detectChangedLanes(changedPaths, options = {}) { continue; } + if (LEGACY_ROOT_ASSET_PATH_RE.test(changedPath)) { + lanes.tooling = true; + reasons.push(`${changedPath}: legacy root asset cleanup`); + continue; + } + lanes.all = true; extensionImpactFromCore = true; reasons.push(`${changedPath}: unknown surface; fail-safe all lanes`); diff --git a/scripts/create-dmg.sh b/scripts/create-dmg.sh index a9f71eb6ca5..8671d2af233 100755 --- a/scripts/create-dmg.sh +++ b/scripts/create-dmg.sh @@ -8,8 +8,8 @@ set -euo pipefail # # Env: # DMG_VOLUME_NAME default: CFBundleName (or "OpenClaw") -# DMG_BACKGROUND_PATH default: assets/dmg-background.png -# DMG_BACKGROUND_SMALL default: assets/dmg-background-small.png (recommended) +# DMG_BACKGROUND_PATH default: apps/macos/Packaging/dmg-background.png +# DMG_BACKGROUND_SMALL default: apps/macos/Packaging/dmg-background-small.png (recommended) # DMG_WINDOW_BOUNDS default: "400 100 900 420" (500x320) # DMG_ICON_SIZE default: 128 # DMG_APP_POS default: "125 160" @@ -38,8 +38,8 @@ VERSION=$(/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" "$APP_PA DMG_NAME="${APP_NAME}-${VERSION}.dmg" DMG_VOLUME_NAME="${DMG_VOLUME_NAME:-$APP_NAME}" -DMG_BACKGROUND_SMALL="${DMG_BACKGROUND_SMALL:-$ROOT_DIR/assets/dmg-background-small.png}" -DMG_BACKGROUND_PATH="${DMG_BACKGROUND_PATH:-$ROOT_DIR/assets/dmg-background.png}" +DMG_BACKGROUND_SMALL="${DMG_BACKGROUND_SMALL:-$ROOT_DIR/apps/macos/Packaging/dmg-background-small.png}" +DMG_BACKGROUND_PATH="${DMG_BACKGROUND_PATH:-$ROOT_DIR/apps/macos/Packaging/dmg-background.png}" DMG_WINDOW_BOUNDS="${DMG_WINDOW_BOUNDS:-400 100 900 420}" DMG_ICON_SIZE="${DMG_ICON_SIZE:-128}" diff --git a/src/scripts/ci-changed-scope.test.ts b/src/scripts/ci-changed-scope.test.ts index a4f7fd1847c..d3696c7cf33 100644 --- a/src/scripts/ci-changed-scope.test.ts +++ b/src/scripts/ci-changed-scope.test.ts @@ -169,7 +169,7 @@ describe("detectChangedScope", () => { runControlUiI18n: false, }); - expect(detectChangedScope(["assets/icon.png"])).toEqual({ + expect(detectChangedScope([".crabbox.yaml"])).toEqual({ runNode: true, runMacos: false, runAndroid: false, diff --git a/test/scripts/changed-lanes.test.ts b/test/scripts/changed-lanes.test.ts index 9b4a2f8cdb9..30f6541c276 100644 --- a/test/scripts/changed-lanes.test.ts +++ b/test/scripts/changed-lanes.test.ts @@ -781,6 +781,21 @@ describe("scripts/changed-lanes", () => { expect(plan.commands.map((command) => command.args[0])).not.toContain("tsgo:all"); }); + it("routes legacy root asset deletions as tooling during root cleanup", () => { + const result = detectChangedLanes([ + "assets/avatar-placeholder.svg", + "assets/chrome-extension/icons/icon128.png", + ]); + const plan = createChangedCheckPlan(result); + + expect(result.lanes).toMatchObject({ + tooling: true, + all: false, + }); + expect(plan.commands.map((command) => command.args[0])).toContain("lint:scripts"); + expect(plan.commands.map((command) => command.args[0])).not.toContain("tsgo:all"); + }); + it("keeps shared Vitest wiring changes out of check test execution", () => { const result = detectChangedLanes(["test/vitest/vitest.shared.config.ts"]); const plan = createChangedCheckPlan(result);