From d773dd4332c91792d6968b55cf18d4168b069faa Mon Sep 17 00:00:00 2001 From: Ian Calvert Date: Thu, 19 Feb 2026 15:33:07 +0000 Subject: [PATCH 1/5] Use local icons URL in test web assets build --- .github/workflows/test-web-assets.yaml | 2 ++ packages/boxel-icons/README.md | 1 + packages/boxel-icons/package.json | 2 +- 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test-web-assets.yaml b/.github/workflows/test-web-assets.yaml index 36806f2e724..a3bceb57c4f 100644 --- a/.github/workflows/test-web-assets.yaml +++ b/.github/workflows/test-web-assets.yaml @@ -65,6 +65,8 @@ jobs: if: steps.restore.outputs.cache-hit != 'true' run: NODE_OPTIONS="--max_old_space_size=4096" pnpm build working-directory: packages/host + env: + ICONS_URL: http://localhost:4206 - name: Write assets manifest shell: bash diff --git a/packages/boxel-icons/README.md b/packages/boxel-icons/README.md index 29c902968a4..5e43491a4f4 100644 --- a/packages/boxel-icons/README.md +++ b/packages/boxel-icons/README.md @@ -17,3 +17,4 @@ The [BoxelUI preview app](https://boxel-ui.stack.cards) contains a preview of al ## Local Development `pnpm serve` in this directory starts a local webserver. You can point `host` at it by setting ICONS_URL=http://localhost:4206. +The server includes CORS headers for `Authorization` and `X-Boxel-Assume-User` so host-side authenticated icon fetches work in local dev. diff --git a/packages/boxel-icons/package.json b/packages/boxel-icons/package.json index c52f60be291..d927fd49c0b 100644 --- a/packages/boxel-icons/package.json +++ b/packages/boxel-icons/package.json @@ -28,7 +28,7 @@ "start": "concurrently \"pnpm:start:*\" --names \"start:\"", "start:js": "rollup --config --watch --no-watch.clearScreen", "start:types": "glint --declaration --watch", - "serve": "http-server --cors --port 4206 dist", + "serve": "http-server --cors=Origin,X-Requested-With,Content-Type,Accept,Range,Authorization,X-Boxel-Assume-User --port 4206 dist -c 30", "test": "echo 'A v2 addon does not have tests, run tests in test-app'", "test:ember": "ember test" }, From a55afe4b112e5636066e5fe16593bdaff49a4b6a Mon Sep 17 00:00:00 2001 From: Ian Calvert Date: Thu, 19 Feb 2026 16:45:19 +0000 Subject: [PATCH 2/5] Default icons to localhost and start icons in realm scripts --- .github/workflows/build-host.yml | 1 + .github/workflows/test-web-assets.yaml | 2 -- packages/boxel-icons/package.json | 2 +- packages/host/config/environment.js | 2 +- packages/realm-server/package.json | 1 + .../realm-server/scripts/start-all-except-optional.sh | 4 ++-- packages/realm-server/scripts/start-all.sh | 5 +++-- packages/realm-server/scripts/start-icons.sh | 8 ++++++++ .../realm-server/scripts/start-services-for-host-tests.sh | 4 ++-- .../scripts/start-services-for-matrix-tests.sh | 4 ++-- packages/realm-server/scripts/start-without-matrix.sh | 5 +++-- 11 files changed, 24 insertions(+), 14 deletions(-) create mode 100644 packages/realm-server/scripts/start-icons.sh diff --git a/.github/workflows/build-host.yml b/.github/workflows/build-host.yml index 447bb848330..fffc17add1d 100644 --- a/.github/workflows/build-host.yml +++ b/.github/workflows/build-host.yml @@ -24,6 +24,7 @@ jobs: env: INPUT_ENVIRONMENT: ${{ inputs.environment }} run: | + echo "ICONS_URL=https://boxel-icons.boxel.ai" >> $GITHUB_ENV if [ "$INPUT_ENVIRONMENT" = "production" ]; then echo "RESOLVED_BASE_REALM_URL=https://app.boxel.ai/base/" >> $GITHUB_ENV echo "RESOLVED_CATALOG_REALM_URL=https://app.boxel.ai/catalog/" >> $GITHUB_ENV diff --git a/.github/workflows/test-web-assets.yaml b/.github/workflows/test-web-assets.yaml index a3bceb57c4f..36806f2e724 100644 --- a/.github/workflows/test-web-assets.yaml +++ b/.github/workflows/test-web-assets.yaml @@ -65,8 +65,6 @@ jobs: if: steps.restore.outputs.cache-hit != 'true' run: NODE_OPTIONS="--max_old_space_size=4096" pnpm build working-directory: packages/host - env: - ICONS_URL: http://localhost:4206 - name: Write assets manifest shell: bash diff --git a/packages/boxel-icons/package.json b/packages/boxel-icons/package.json index d927fd49c0b..8bf82ab587b 100644 --- a/packages/boxel-icons/package.json +++ b/packages/boxel-icons/package.json @@ -28,7 +28,7 @@ "start": "concurrently \"pnpm:start:*\" --names \"start:\"", "start:js": "rollup --config --watch --no-watch.clearScreen", "start:types": "glint --declaration --watch", - "serve": "http-server --cors=Origin,X-Requested-With,Content-Type,Accept,Range,Authorization,X-Boxel-Assume-User --port 4206 dist -c 30", + "serve": "http-server --cors=Origin,X-Requested-With,Content-Type,Accept,Range,Authorization,X-Boxel-Assume-User --port 4206 dist", "test": "echo 'A v2 addon does not have tests, run tests in test-app'", "test:ember": "ember test" }, diff --git a/packages/host/config/environment.js b/packages/host/config/environment.js index 74779893ac3..9a059702873 100644 --- a/packages/host/config/environment.js +++ b/packages/host/config/environment.js @@ -48,7 +48,7 @@ module.exports = function (environment) { fileSizeLimitBytes: Number( process.env.FILE_SIZE_LIMIT_BYTES ?? DEFAULT_FILE_SIZE_LIMIT_BYTES, ), - iconsURL: process.env.ICONS_URL || 'https://boxel-icons.boxel.ai', + iconsURL: process.env.ICONS_URL || 'http://localhost:4206', publishedRealmBoxelSpaceDomain: process.env.PUBLISHED_REALM_BOXEL_SPACE_DOMAIN || 'localhost:4201', publishedRealmBoxelSiteDomain: diff --git a/packages/realm-server/package.json b/packages/realm-server/package.json index 501aaddaf69..aeca97f9085 100644 --- a/packages/realm-server/package.json +++ b/packages/realm-server/package.json @@ -90,6 +90,7 @@ "test-module": "./scripts/remove-test-dbs.sh; LOG_LEVELS=\"*=error,prerenderer-chrome=silent,pg-adapter=warn,realm:requests=warn${LOG_LEVELS:+,}${LOG_LEVELS}\" NODE_NO_WARNINGS=1 PGPORT=5435 STRIPE_WEBHOOK_SECRET=stripe-webhook-secret STRIPE_API_KEY=stripe-api-key qunit --require ts-node/register/transpile-only --module ${TEST_MODULE} tests/index.ts", "start:matrix": "cd ../matrix && pnpm assert-synapse-running", "start:smtp": "cd ../matrix && pnpm assert-smtp-running", + "start:icons": "sh ./scripts/start-icons.sh", "start:pg": "./scripts/start-pg.sh", "stop:pg": "./scripts/stop-pg.sh", "test:wait-for-servers": "WAIT_ON_TIMEOUT=900000 NODE_NO_WARNINGS=1 start-server-and-test 'pnpm run wait' 'http-get://localhost:4201/base/_readiness-check?acceptHeader=application%2Fvnd.api%2Bjson' 'pnpm run wait' 'http-get://localhost:4202/node-test/_readiness-check?acceptHeader=application%2Fvnd.api%2Bjson|http://localhost:8008|http://localhost:5001' 'test-module'", diff --git a/packages/realm-server/scripts/start-all-except-optional.sh b/packages/realm-server/scripts/start-all-except-optional.sh index 1e196cbaf0f..a5460d48d55 100755 --- a/packages/realm-server/scripts/start-all-except-optional.sh +++ b/packages/realm-server/scripts/start-all-except-optional.sh @@ -1,8 +1,8 @@ #! /bin/sh WAIT_ON_TIMEOUT=900000 SKIP_EXPERIMENTS=true SKIP_CATALOG=true SKIP_BOXEL_HOMEPAGE=true SKIP_SUBMISSION=true NODE_NO_WARNINGS=1 start-server-and-test \ - 'run-p -ln start:pg start:prerender-dev start:prerender-manager-dev start:matrix start:smtp start:worker-development start:development' \ - 'http-get://localhost:4201/base/_readiness-check?acceptHeader=application%2Fvnd.api%2Bjson|http://localhost:8008|http://localhost:5001' \ + 'run-p -ln start:pg start:icons start:prerender-dev start:prerender-manager-dev start:matrix start:smtp start:worker-development start:development' \ + 'http-get://localhost:4201/base/_readiness-check?acceptHeader=application%2Fvnd.api%2Bjson|http://localhost:8008|http://localhost:5001|http://localhost:4206' \ 'run-p -ln start:worker-test start:test-realms' \ 'http-get://localhost:4202/node-test/_readiness-check?acceptHeader=application%2Fvnd.api%2Bjson' \ 'wait' diff --git a/packages/realm-server/scripts/start-all.sh b/packages/realm-server/scripts/start-all.sh index 858562aa501..aec9eba090f 100755 --- a/packages/realm-server/scripts/start-all.sh +++ b/packages/realm-server/scripts/start-all.sh @@ -18,10 +18,11 @@ NODE_TEST_REALM_READY="$NODE_TEST_REALM$READY_PATH" SYNAPSE_URL="http://localhost:8008" SMTP_4_DEV_URL="http://localhost:5001" +ICONS_URL="http://localhost:4206" WAIT_ON_TIMEOUT=1200000 NODE_NO_WARNINGS=1 start-server-and-test \ - 'run-p -ln start:pg start:matrix start:smtp start:prerender-dev start:prerender-manager-dev start:worker-development start:development' \ - "$BASE_REALM_READY|$CATALOG_REALM_READY|$SKILLS_REALM_READY|$BOXEL_HOMEPAGE_REALM_READY|$EXPERIMENTS_REALM_READY|$SYNAPSE_URL|$SMTP_4_DEV_URL" \ + 'run-p -ln start:pg start:icons start:matrix start:smtp start:prerender-dev start:prerender-manager-dev start:worker-development start:development' \ + "$BASE_REALM_READY|$CATALOG_REALM_READY|$SKILLS_REALM_READY|$BOXEL_HOMEPAGE_REALM_READY|$EXPERIMENTS_REALM_READY|$SYNAPSE_URL|$SMTP_4_DEV_URL|$ICONS_URL" \ 'run-p -ln start:worker-test start:test-realms' \ "$NODE_TEST_REALM_READY" \ 'wait' diff --git a/packages/realm-server/scripts/start-icons.sh b/packages/realm-server/scripts/start-icons.sh new file mode 100644 index 00000000000..a6870e86917 --- /dev/null +++ b/packages/realm-server/scripts/start-icons.sh @@ -0,0 +1,8 @@ +#! /bin/sh + +if curl --fail --silent --show-error http://localhost:4206 >/dev/null 2>&1; then + echo "icons server already running on http://localhost:4206, skipping startup" + exit 0 +fi + +pnpm --dir=../boxel-icons serve diff --git a/packages/realm-server/scripts/start-services-for-host-tests.sh b/packages/realm-server/scripts/start-services-for-host-tests.sh index a3cce48f8b2..fad8b77b789 100755 --- a/packages/realm-server/scripts/start-services-for-host-tests.sh +++ b/packages/realm-server/scripts/start-services-for-host-tests.sh @@ -62,8 +62,8 @@ WAIT_ON_TIMEOUT=900000 \ LOG_LEVELS="$HOST_TEST_LOG_LEVELS" \ NODE_NO_WARNINGS=1 \ start-server-and-test \ - 'run-p -ln start:pg start:prerender-dev start:prerender-manager-dev start:matrix start:smtp start:worker-development start:development' \ - 'http-get://localhost:4201/base/_readiness-check?acceptHeader=application%2Fvnd.api%2Bjson|http://localhost:8008|http://localhost:5001' \ + 'run-p -ln start:pg start:icons start:prerender-dev start:prerender-manager-dev start:matrix start:smtp start:worker-development start:development' \ + 'http-get://localhost:4201/base/_readiness-check?acceptHeader=application%2Fvnd.api%2Bjson|http://localhost:8008|http://localhost:5001|http://localhost:4206' \ 'run-p -ln start:worker-test start:test-realms' \ 'http-get://localhost:4202/node-test/_readiness-check?acceptHeader=application%2Fvnd.api%2Bjson' \ 'wait' diff --git a/packages/realm-server/scripts/start-services-for-matrix-tests.sh b/packages/realm-server/scripts/start-services-for-matrix-tests.sh index 78a0eb980eb..9989c64245a 100755 --- a/packages/realm-server/scripts/start-services-for-matrix-tests.sh +++ b/packages/realm-server/scripts/start-services-for-matrix-tests.sh @@ -8,6 +8,6 @@ pnpm --dir=../skills-realm skills:setup # we probably need to add that via the isolated realm server--not here... WAIT_ON_TIMEOUT=600000 NODE_NO_WARNINGS=1 SKIP_SUBMISSION=true \ start-server-and-test \ - 'run-p -ln start:pg start:prerender-dev start:prerender-manager-dev start:worker-base start:base' \ - 'http-get://localhost:4201/base/_readiness-check?acceptHeader=application%2Fvnd.api%2Bjson' \ + 'run-p -ln start:pg start:icons start:prerender-dev start:prerender-manager-dev start:worker-base start:base' \ + 'http-get://localhost:4201/base/_readiness-check?acceptHeader=application%2Fvnd.api%2Bjson|http://localhost:4206' \ 'wait' diff --git a/packages/realm-server/scripts/start-without-matrix.sh b/packages/realm-server/scripts/start-without-matrix.sh index 77f75b7a425..aefa9c24758 100755 --- a/packages/realm-server/scripts/start-without-matrix.sh +++ b/packages/realm-server/scripts/start-without-matrix.sh @@ -14,10 +14,11 @@ TEST_REALM_READY="$TEST_REALM$READY_PATH" SYNAPSE_URL="http://localhost:8008" SMTP_4_DEV_URL="http://localhost:5001" +ICONS_URL="http://localhost:4206" WAIT_ON_TIMEOUT=900000 SKIP_BOXEL_HOMEPAGE=true NODE_NO_WARNINGS=1 start-server-and-test \ - 'run-p start:pg start:prerender-dev start:prerender-manager-dev start:worker-development start:development' \ - "$BASE_REALM_READY|$EXPERIMENTS_REALM_READY|$SYNAPSE_URL|$SMTP_4_DEV_URL" \ + 'run-p start:pg start:icons start:prerender-dev start:prerender-manager-dev start:worker-development start:development' \ + "$BASE_REALM_READY|$EXPERIMENTS_REALM_READY|$SYNAPSE_URL|$SMTP_4_DEV_URL|$ICONS_URL" \ 'run-p start:worker-test start:test-realms' \ "$NODE_TEST_REALM_READY" \ 'wait' From be49e74e61c03b730f8ea9b0f00e62417cc12e67 Mon Sep 17 00:00:00 2001 From: Ian Calvert Date: Thu, 19 Feb 2026 16:48:19 +0000 Subject: [PATCH 3/5] Start icons from realm development and test scripts --- .../realm-server/scripts/start-all-except-optional.sh | 2 +- packages/realm-server/scripts/start-all.sh | 2 +- packages/realm-server/scripts/start-development.sh | 9 +++++++++ .../scripts/start-services-for-host-tests.sh | 2 +- .../scripts/start-services-for-matrix-tests.sh | 2 +- packages/realm-server/scripts/start-test-realms.sh | 9 +++++++++ packages/realm-server/scripts/start-without-matrix.sh | 2 +- 7 files changed, 23 insertions(+), 5 deletions(-) diff --git a/packages/realm-server/scripts/start-all-except-optional.sh b/packages/realm-server/scripts/start-all-except-optional.sh index a5460d48d55..e8119162177 100755 --- a/packages/realm-server/scripts/start-all-except-optional.sh +++ b/packages/realm-server/scripts/start-all-except-optional.sh @@ -1,7 +1,7 @@ #! /bin/sh WAIT_ON_TIMEOUT=900000 SKIP_EXPERIMENTS=true SKIP_CATALOG=true SKIP_BOXEL_HOMEPAGE=true SKIP_SUBMISSION=true NODE_NO_WARNINGS=1 start-server-and-test \ - 'run-p -ln start:pg start:icons start:prerender-dev start:prerender-manager-dev start:matrix start:smtp start:worker-development start:development' \ + 'run-p -ln start:pg start:prerender-dev start:prerender-manager-dev start:matrix start:smtp start:worker-development start:development' \ 'http-get://localhost:4201/base/_readiness-check?acceptHeader=application%2Fvnd.api%2Bjson|http://localhost:8008|http://localhost:5001|http://localhost:4206' \ 'run-p -ln start:worker-test start:test-realms' \ 'http-get://localhost:4202/node-test/_readiness-check?acceptHeader=application%2Fvnd.api%2Bjson' \ diff --git a/packages/realm-server/scripts/start-all.sh b/packages/realm-server/scripts/start-all.sh index aec9eba090f..93d6de32f84 100755 --- a/packages/realm-server/scripts/start-all.sh +++ b/packages/realm-server/scripts/start-all.sh @@ -21,7 +21,7 @@ SMTP_4_DEV_URL="http://localhost:5001" ICONS_URL="http://localhost:4206" WAIT_ON_TIMEOUT=1200000 NODE_NO_WARNINGS=1 start-server-and-test \ - 'run-p -ln start:pg start:icons start:matrix start:smtp start:prerender-dev start:prerender-manager-dev start:worker-development start:development' \ + 'run-p -ln start:pg start:matrix start:smtp start:prerender-dev start:prerender-manager-dev start:worker-development start:development' \ "$BASE_REALM_READY|$CATALOG_REALM_READY|$SKILLS_REALM_READY|$BOXEL_HOMEPAGE_REALM_READY|$EXPERIMENTS_REALM_READY|$SYNAPSE_URL|$SMTP_4_DEV_URL|$ICONS_URL" \ 'run-p -ln start:worker-test start:test-realms' \ "$NODE_TEST_REALM_READY" \ diff --git a/packages/realm-server/scripts/start-development.sh b/packages/realm-server/scripts/start-development.sh index 7b3fae2703c..024c582a1ab 100755 --- a/packages/realm-server/scripts/start-development.sh +++ b/packages/realm-server/scripts/start-development.sh @@ -2,6 +2,15 @@ SCRIPTS_DIR="$(cd "$(dirname "$0")" && pwd)" . "$SCRIPTS_DIR/wait-for-pg.sh" +sh "$SCRIPTS_DIR/start-icons.sh" & +ICONS_PID=$! +cleanup_icons_server() { + if [ -n "$ICONS_PID" ]; then + kill "$ICONS_PID" >/dev/null 2>&1 || true + fi +} +trap cleanup_icons_server EXIT INT TERM + wait_for_postgres pnpm --dir=../skills-realm skills:setup diff --git a/packages/realm-server/scripts/start-services-for-host-tests.sh b/packages/realm-server/scripts/start-services-for-host-tests.sh index fad8b77b789..2939192a729 100755 --- a/packages/realm-server/scripts/start-services-for-host-tests.sh +++ b/packages/realm-server/scripts/start-services-for-host-tests.sh @@ -62,7 +62,7 @@ WAIT_ON_TIMEOUT=900000 \ LOG_LEVELS="$HOST_TEST_LOG_LEVELS" \ NODE_NO_WARNINGS=1 \ start-server-and-test \ - 'run-p -ln start:pg start:icons start:prerender-dev start:prerender-manager-dev start:matrix start:smtp start:worker-development start:development' \ + 'run-p -ln start:pg start:prerender-dev start:prerender-manager-dev start:matrix start:smtp start:worker-development start:development' \ 'http-get://localhost:4201/base/_readiness-check?acceptHeader=application%2Fvnd.api%2Bjson|http://localhost:8008|http://localhost:5001|http://localhost:4206' \ 'run-p -ln start:worker-test start:test-realms' \ 'http-get://localhost:4202/node-test/_readiness-check?acceptHeader=application%2Fvnd.api%2Bjson' \ diff --git a/packages/realm-server/scripts/start-services-for-matrix-tests.sh b/packages/realm-server/scripts/start-services-for-matrix-tests.sh index 9989c64245a..914abe55534 100755 --- a/packages/realm-server/scripts/start-services-for-matrix-tests.sh +++ b/packages/realm-server/scripts/start-services-for-matrix-tests.sh @@ -8,6 +8,6 @@ pnpm --dir=../skills-realm skills:setup # we probably need to add that via the isolated realm server--not here... WAIT_ON_TIMEOUT=600000 NODE_NO_WARNINGS=1 SKIP_SUBMISSION=true \ start-server-and-test \ - 'run-p -ln start:pg start:icons start:prerender-dev start:prerender-manager-dev start:worker-base start:base' \ + 'run-p -ln start:pg start:prerender-dev start:prerender-manager-dev start:worker-base start:base' \ 'http-get://localhost:4201/base/_readiness-check?acceptHeader=application%2Fvnd.api%2Bjson|http://localhost:4206' \ 'wait' diff --git a/packages/realm-server/scripts/start-test-realms.sh b/packages/realm-server/scripts/start-test-realms.sh index 65f26ef47c3..70daa8d60f8 100755 --- a/packages/realm-server/scripts/start-test-realms.sh +++ b/packages/realm-server/scripts/start-test-realms.sh @@ -2,6 +2,15 @@ SCRIPTS_DIR="$(cd "$(dirname "$0")" && pwd)" . "$SCRIPTS_DIR/wait-for-pg.sh" +sh "$SCRIPTS_DIR/start-icons.sh" & +ICONS_PID=$! +cleanup_icons_server() { + if [ -n "$ICONS_PID" ]; then + kill "$ICONS_PID" >/dev/null 2>&1 || true + fi +} +trap cleanup_icons_server EXIT INT TERM + wait_for_postgres PRERENDER_URL="${PRERENDER_URL:-http://localhost:4221}" diff --git a/packages/realm-server/scripts/start-without-matrix.sh b/packages/realm-server/scripts/start-without-matrix.sh index aefa9c24758..10e750aa2b3 100755 --- a/packages/realm-server/scripts/start-without-matrix.sh +++ b/packages/realm-server/scripts/start-without-matrix.sh @@ -17,7 +17,7 @@ SMTP_4_DEV_URL="http://localhost:5001" ICONS_URL="http://localhost:4206" WAIT_ON_TIMEOUT=900000 SKIP_BOXEL_HOMEPAGE=true NODE_NO_WARNINGS=1 start-server-and-test \ - 'run-p start:pg start:icons start:prerender-dev start:prerender-manager-dev start:worker-development start:development' \ + 'run-p start:pg start:prerender-dev start:prerender-manager-dev start:worker-development start:development' \ "$BASE_REALM_READY|$EXPERIMENTS_REALM_READY|$SYNAPSE_URL|$SMTP_4_DEV_URL|$ICONS_URL" \ 'run-p start:worker-test start:test-realms' \ "$NODE_TEST_REALM_READY" \ From 09b2b97a5b9207b9851e12a7005ab656fed7cfed Mon Sep 17 00:00:00 2001 From: Ian Calvert Date: Fri, 20 Feb 2026 00:37:57 +0000 Subject: [PATCH 4/5] Use local icons URL in realm indexing test expectations --- .../tests/integration/realm-indexing-test.gts | 84 +++++++++---------- 1 file changed, 42 insertions(+), 42 deletions(-) diff --git a/packages/host/tests/integration/realm-indexing-test.gts b/packages/host/tests/integration/realm-indexing-test.gts index 359f36fabfb..6c731fe4f4e 100644 --- a/packages/host/tests/integration/realm-indexing-test.gts +++ b/packages/host/tests/integration/realm-indexing-test.gts @@ -4125,23 +4125,23 @@ module(`Integration | realm indexing`, function (hooks) { .filter((ref) => !ref.includes('glimmer-scoped.css')), [ 'http://localhost:4202/test/person', - 'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/align-box-left-middle', - 'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/align-left', - 'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/arrow-left', - 'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/captions', - 'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/code', - 'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/eye', - 'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/file-pencil', - 'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/folder-pen', - 'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/hash', - 'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/import', - 'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/letter-case', - 'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/link', - 'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/notepad-text', - 'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/palette', - 'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/rectangle-ellipsis', - 'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/trash-2', - 'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/wand', + 'http://localhost:4206/@cardstack/boxel-icons/v1/icons/align-box-left-middle', + 'http://localhost:4206/@cardstack/boxel-icons/v1/icons/align-left', + 'http://localhost:4206/@cardstack/boxel-icons/v1/icons/arrow-left', + 'http://localhost:4206/@cardstack/boxel-icons/v1/icons/captions', + 'http://localhost:4206/@cardstack/boxel-icons/v1/icons/code', + 'http://localhost:4206/@cardstack/boxel-icons/v1/icons/eye', + 'http://localhost:4206/@cardstack/boxel-icons/v1/icons/file-pencil', + 'http://localhost:4206/@cardstack/boxel-icons/v1/icons/folder-pen', + 'http://localhost:4206/@cardstack/boxel-icons/v1/icons/hash', + 'http://localhost:4206/@cardstack/boxel-icons/v1/icons/import', + 'http://localhost:4206/@cardstack/boxel-icons/v1/icons/letter-case', + 'http://localhost:4206/@cardstack/boxel-icons/v1/icons/link', + 'http://localhost:4206/@cardstack/boxel-icons/v1/icons/notepad-text', + 'http://localhost:4206/@cardstack/boxel-icons/v1/icons/palette', + 'http://localhost:4206/@cardstack/boxel-icons/v1/icons/rectangle-ellipsis', + 'http://localhost:4206/@cardstack/boxel-icons/v1/icons/trash-2', + 'http://localhost:4206/@cardstack/boxel-icons/v1/icons/wand', 'https://cardstack.com/base/-private', 'https://cardstack.com/base/card-api', 'https://cardstack.com/base/card-serialization', @@ -4248,31 +4248,31 @@ module(`Integration | realm indexing`, function (hooks) { .filter((ref) => !ref.includes('glimmer-scoped.css')), [ 'http://localhost:4202/test/person', - 'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/align-box-left-middle', - 'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/align-left', - 'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/apps', - 'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/arrow-left', - 'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/book-open-text', - 'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/box-model', - 'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/captions', - 'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/code', - 'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/eye', - 'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/file-pencil', - 'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/folder-pen', - 'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/git-branch', - 'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/hash', - 'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/import', - 'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/layers-subtract', - 'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/layout-list', - 'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/letter-case', - 'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/link', - 'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/notepad-text', - 'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/palette', - 'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/rectangle-ellipsis', - 'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/stack', - 'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/toggle-left', - 'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/trash-2', - 'https://boxel-icons.boxel.ai/@cardstack/boxel-icons/v1/icons/wand', + 'http://localhost:4206/@cardstack/boxel-icons/v1/icons/align-box-left-middle', + 'http://localhost:4206/@cardstack/boxel-icons/v1/icons/align-left', + 'http://localhost:4206/@cardstack/boxel-icons/v1/icons/apps', + 'http://localhost:4206/@cardstack/boxel-icons/v1/icons/arrow-left', + 'http://localhost:4206/@cardstack/boxel-icons/v1/icons/book-open-text', + 'http://localhost:4206/@cardstack/boxel-icons/v1/icons/box-model', + 'http://localhost:4206/@cardstack/boxel-icons/v1/icons/captions', + 'http://localhost:4206/@cardstack/boxel-icons/v1/icons/code', + 'http://localhost:4206/@cardstack/boxel-icons/v1/icons/eye', + 'http://localhost:4206/@cardstack/boxel-icons/v1/icons/file-pencil', + 'http://localhost:4206/@cardstack/boxel-icons/v1/icons/folder-pen', + 'http://localhost:4206/@cardstack/boxel-icons/v1/icons/git-branch', + 'http://localhost:4206/@cardstack/boxel-icons/v1/icons/hash', + 'http://localhost:4206/@cardstack/boxel-icons/v1/icons/import', + 'http://localhost:4206/@cardstack/boxel-icons/v1/icons/layers-subtract', + 'http://localhost:4206/@cardstack/boxel-icons/v1/icons/layout-list', + 'http://localhost:4206/@cardstack/boxel-icons/v1/icons/letter-case', + 'http://localhost:4206/@cardstack/boxel-icons/v1/icons/link', + 'http://localhost:4206/@cardstack/boxel-icons/v1/icons/notepad-text', + 'http://localhost:4206/@cardstack/boxel-icons/v1/icons/palette', + 'http://localhost:4206/@cardstack/boxel-icons/v1/icons/rectangle-ellipsis', + 'http://localhost:4206/@cardstack/boxel-icons/v1/icons/stack', + 'http://localhost:4206/@cardstack/boxel-icons/v1/icons/toggle-left', + 'http://localhost:4206/@cardstack/boxel-icons/v1/icons/trash-2', + 'http://localhost:4206/@cardstack/boxel-icons/v1/icons/wand', 'https://cardstack.com/base/-private', 'https://cardstack.com/base/boolean', 'https://cardstack.com/base/card-api', From 7234df4d18085fdbe1f2e8131e3790cc3f28a8a6 Mon Sep 17 00:00:00 2001 From: Ian Calvert Date: Fri, 20 Feb 2026 16:12:48 +0000 Subject: [PATCH 5/5] Add icons serving URL to the readme --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 78df2864ab6..ecbce14b308 100644 --- a/README.md +++ b/README.md @@ -82,6 +82,7 @@ Instead of running `pnpm start:base`, you can alternatively use `pnpm start:all` | :4201 | `/experiments` experiments realm | ✅ | 🚫 | | :4202 | `/test` host test realm, `/node-test` node test realm | ✅ | 🚫 | | :4205 | `/test` realm for matrix client tests (playwright controlled) | 🚫 | 🚫 | +| :4206 | Boxel icons server | ✅ | 🚫 | | :4210 | Development Worker Manager (spins up 1 worker by default) | ✅ | 🚫 | | :4211 | Test Worker Manager (spins up 1 worker by default) | ✅ | 🚫 | | :4212 | Worker Manager for matrix client tests (playwright controlled - 1 worker) | ✅ | 🚫 |