web 2026-06-29T18:39:08.639246383Z ╭──────────── git repo clone ───────────╼ web 2026-06-29T18:39:08.639281498Z │  › fetching app source code web 2026-06-29T18:39:08.639284873Z │ => Selecting branch "staging" web 2026-06-29T18:39:13.501518520Z │ => Checking out commit "96ff54c7dba896166b3d89b8e85c6229644aa1f3" web 2026-06-29T18:39:13.786367962Z │ web 2026-06-29T18:39:13.787663878Z │  ✔ cloned repo to /.app_platform_workspace web 2026-06-29T18:39:13.797283534Z ╰────────────────────────────────────────╼ web 2026-06-29T18:39:13.797302174Z web 2026-06-29T18:39:14.076293846Z  › configuring build-time app environment variables: web 2026-06-29T18:39:14.076324218Z VITE_API_BASE_URL VITE_LINE_CHANNEL_ID VITE_OMISE_PUBLIC_KEY VITE_WS_URL VITE_GOOGLE_CLIENT_ID web 2026-06-29T18:39:14.089814584Z ╭──────────── dockerfile build ───────────╼ web 2026-06-29T18:39:14.100933826Z │  › using dockerfile /.app_platform_workspace/Dockerfile web 2026-06-29T18:39:14.101793766Z │  › using build context /.app_platform_workspace/ web 2026-06-29T18:39:14.101950231Z │ web 2026-06-29T18:39:14.142331996Z │ INFO[0000] Resolved base name node:20-alpine to builder web 2026-06-29T18:39:14.142359200Z │ INFO[0000] Resolved base name node:20-alpine to deps web 2026-06-29T18:39:14.142363561Z │ INFO[0000] Using dockerignore file: /.app_platform_workspace/.dockerignore web 2026-06-29T18:39:14.142670968Z │ INFO[0000] Retrieving image manifest node:20-alpine web 2026-06-29T18:39:14.142686851Z │ INFO[0000] Retrieving image library/node:20-alpine from registry mirror web 2026-06-29T18:39:15.209155385Z │ INFO[0001] Retrieving image manifest node:20-alpine web 2026-06-29T18:39:15.209204593Z │ INFO[0001] Returning cached image manifest web 2026-06-29T18:39:15.214960144Z │ INFO[0001] Retrieving image manifest node:20-alpine web 2026-06-29T18:39:15.214971943Z │ INFO[0001] Returning cached image manifest web 2026-06-29T18:39:15.214974625Z │ INFO[0001] Retrieving image manifest node:20-alpine web 2026-06-29T18:39:15.214977176Z │ INFO[0001] Returning cached image manifest web 2026-06-29T18:39:15.214979454Z │ INFO[0001] Retrieving image manifest node:20-alpine web 2026-06-29T18:39:15.214981676Z │ INFO[0001] Returning cached image manifest web 2026-06-29T18:39:15.214984054Z │ INFO[0001] Retrieving image manifest node:20-alpine web 2026-06-29T18:39:15.214986634Z │ INFO[0001] Returning cached image manifest web 2026-06-29T18:39:15.215421358Z │ INFO[0001] Built cross stage deps: map[0:[/app/build /app/package.json] 1:[/app/node_modules]] web 2026-06-29T18:39:15.215431809Z │ INFO[0001] Retrieving image manifest node:20-alpine web 2026-06-29T18:39:15.215434235Z │ INFO[0001] Returning cached image manifest web 2026-06-29T18:39:15.215436091Z │ INFO[0001] Retrieving image manifest node:20-alpine web 2026-06-29T18:39:15.215437958Z │ INFO[0001] Returning cached image manifest web 2026-06-29T18:39:15.218004612Z │ INFO[0001] Executing 0 build triggers web 2026-06-29T18:39:15.218348440Z │ INFO[0001] Building stage 'node:20-alpine' [idx: '0', base-idx: '-1'] web 2026-06-29T18:39:15.219074328Z │ INFO[0001] Checking for cached layer web 2026-06-29T18:39:15.350355173Z │ INFO[0001] Using caching version of cmd: RUN npm ci web 2026-06-29T18:39:15.525532926Z │ INFO[0001] Checking for cached layer web 2026-06-29T18:39:15.580528648Z │ INFO[0001] No cached layer found for cmd RUN test -n "$VITE_API_BASE_URL" || { echo "ERROR: VITE_API_BASE_URL build arg is required (e.g. --build-arg VITE_API_BASE_URL=https://api.example.com/api/v1)" >&2; exit 1; } && test -n "$VITE_WS_URL" || { echo "ERROR: VITE_WS_URL build arg is required (e.g. --build-arg VITE_WS_URL=wss://api.example.com)" >&2; exit 1; } && case "$VITE_API_BASE_URL" in http://*|https://*|/api/*) ;; *) echo "ERROR: VITE_API_BASE_URL must start with http://, https://, or /api/ — got: $VITE_API_BASE_URL" >&2; exit 1 ;; esac && case "$VITE_WS_URL" in ws://*|wss://*) ;; *) echo "ERROR: VITE_WS_URL must start with ws:// or wss:// — got: $VITE_WS_URL" >&2; exit 1 ;; esac web 2026-06-29T18:39:15.580558068Z │ INFO[0001] Unpacking rootfs as cmd COPY package.json package-lock.json ./ requires it. web 2026-06-29T18:39:16.718015666Z │ INFO[0002] Initializing snapshotter ... web 2026-06-29T18:39:16.718050590Z │ INFO[0002] Taking snapshot of full filesystem... web 2026-06-29T18:39:17.257986804Z │ INFO[0003] WORKDIR /app web 2026-06-29T18:39:17.258014420Z │ INFO[0003] Cmd: workdir web 2026-06-29T18:39:17.258016521Z │ INFO[0003] Changed working directory to /app web 2026-06-29T18:39:17.258018360Z │ INFO[0003] Creating directory /app with uid -1 and gid -1 web 2026-06-29T18:39:17.258876785Z │ INFO[0003] Taking snapshot of files... web 2026-06-29T18:39:17.261179750Z │ INFO[0003] COPY package.json package-lock.json ./ web 2026-06-29T18:39:17.262535399Z │ INFO[0003] Taking snapshot of files... web 2026-06-29T18:39:17.267474580Z │ INFO[0003] RUN npm ci web 2026-06-29T18:39:17.267488802Z │ INFO[0003] Found cached layer, extracting to filesystem web 2026-06-29T18:39:42.057045723Z │ INFO[0027] COPY . . web 2026-06-29T18:39:43.081602973Z │ INFO[0028] Taking snapshot of files... web 2026-06-29T18:39:45.090777898Z │ INFO[0030] ARG VITE_API_BASE_URL web 2026-06-29T18:39:45.092067322Z │ INFO[0030] No files changed in this command, skipping snapshotting. web 2026-06-29T18:39:45.092072782Z │ INFO[0030] ARG VITE_WS_URL web 2026-06-29T18:39:45.092074659Z │ INFO[0030] No files changed in this command, skipping snapshotting. web 2026-06-29T18:39:45.092082775Z │ INFO[0030] ARG VITE_GOOGLE_CLIENT_ID= web 2026-06-29T18:39:45.092515359Z │ INFO[0030] No files changed in this command, skipping snapshotting. web 2026-06-29T18:39:45.092519002Z │ INFO[0030] ARG VITE_LINE_CHANNEL_ID= web 2026-06-29T18:39:45.092520952Z │ INFO[0030] No files changed in this command, skipping snapshotting. web 2026-06-29T18:39:45.092522865Z │ INFO[0030] ARG VITE_OMISE_PUBLIC_KEY= web 2026-06-29T18:39:45.092548521Z │ INFO[0030] No files changed in this command, skipping snapshotting. web 2026-06-29T18:39:45.092553153Z │ INFO[0030] RUN test -n "$VITE_API_BASE_URL" || { echo "ERROR: VITE_API_BASE_URL build arg is required (e.g. --build-arg VITE_API_BASE_URL=https://api.example.com/api/v1)" >&2; exit 1; } && test -n "$VITE_WS_URL" || { echo "ERROR: VITE_WS_URL build arg is required (e.g. --build-arg VITE_WS_URL=wss://api.example.com)" >&2; exit 1; } && case "$VITE_API_BASE_URL" in http://*|https://*|/api/*) ;; *) echo "ERROR: VITE_API_BASE_URL must start with http://, https://, or /api/ — got: $VITE_API_BASE_URL" >&2; exit 1 ;; esac && case "$VITE_WS_URL" in ws://*|wss://*) ;; *) echo "ERROR: VITE_WS_URL must start with ws:// or wss:// — got: $VITE_WS_URL" >&2; exit 1 ;; esac web 2026-06-29T18:39:45.387735623Z │ INFO[0031] Cmd: /bin/sh web 2026-06-29T18:39:45.387764880Z │ INFO[0031] Args: [-c test -n "$VITE_API_BASE_URL" || { echo "ERROR: VITE_API_BASE_URL build arg is required (e.g. --build-arg VITE_API_BASE_URL=https://api.example.com/api/v1)" >&2; exit 1; } && test -n "$VITE_WS_URL" || { echo "ERROR: VITE_WS_URL build arg is required (e.g. --build-arg VITE_WS_URL=wss://api.example.com)" >&2; exit 1; } && case "$VITE_API_BASE_URL" in http://*|https://*|/api/*) ;; *) echo "ERROR: VITE_API_BASE_URL must start with http://, https://, or /api/ — got: $VITE_API_BASE_URL" >&2; exit 1 ;; esac && case "$VITE_WS_URL" in ws://*|wss://*) ;; *) echo "ERROR: VITE_WS_URL must start with ws:// or wss:// — got: $VITE_WS_URL" >&2; exit 1 ;; esac] web 2026-06-29T18:39:45.387767574Z │ INFO[0031] Running: [/bin/sh -c test -n "$VITE_API_BASE_URL" || { echo "ERROR: VITE_API_BASE_URL build arg is required (e.g. --build-arg VITE_API_BASE_URL=https://api.example.com/api/v1)" >&2; exit 1; } && test -n "$VITE_WS_URL" || { echo "ERROR: VITE_WS_URL build arg is required (e.g. --build-arg VITE_WS_URL=wss://api.example.com)" >&2; exit 1; } && case "$VITE_API_BASE_URL" in http://*|https://*|/api/*) ;; *) echo "ERROR: VITE_API_BASE_URL must start with http://, https://, or /api/ — got: $VITE_API_BASE_URL" >&2; exit 1 ;; esac && case "$VITE_WS_URL" in ws://*|wss://*) ;; *) echo "ERROR: VITE_WS_URL must start with ws:// or wss:// — got: $VITE_WS_URL" >&2; exit 1 ;; esac] web 2026-06-29T18:39:45.697592099Z │ INFO[0031] No files changed in this command, skipping snapshotting. web 2026-06-29T18:39:45.697618969Z │ INFO[0031] ENV VITE_API_BASE_URL=$VITE_API_BASE_URL web 2026-06-29T18:39:45.697621188Z │ INFO[0031] No files changed in this command, skipping snapshotting. web 2026-06-29T18:39:45.697622934Z │ INFO[0031] ENV VITE_WS_URL=$VITE_WS_URL web 2026-06-29T18:39:45.697625278Z │ INFO[0031] No files changed in this command, skipping snapshotting. web 2026-06-29T18:39:45.697627273Z │ INFO[0031] ENV VITE_GOOGLE_CLIENT_ID=$VITE_GOOGLE_CLIENT_ID web 2026-06-29T18:39:45.697816480Z │ INFO[0031] No files changed in this command, skipping snapshotting. web 2026-06-29T18:39:45.697833616Z │ INFO[0031] ENV VITE_LINE_CHANNEL_ID=$VITE_LINE_CHANNEL_ID web 2026-06-29T18:39:45.697835652Z │ INFO[0031] No files changed in this command, skipping snapshotting. web 2026-06-29T18:39:45.697837489Z │ INFO[0031] ENV VITE_OMISE_PUBLIC_KEY=$VITE_OMISE_PUBLIC_KEY web 2026-06-29T18:39:45.697852589Z │ INFO[0031] No files changed in this command, skipping snapshotting. web 2026-06-29T18:39:45.697854563Z │ INFO[0031] RUN NODE_OPTIONS="--max-old-space-size=3596" npm run build web 2026-06-29T18:39:46.054069287Z │ INFO[0031] Cmd: /bin/sh web 2026-06-29T18:39:46.054103610Z │ INFO[0031] Args: [-c NODE_OPTIONS="--max-old-space-size=3596" npm run build] web 2026-06-29T18:39:46.054105875Z │ INFO[0031] Running: [/bin/sh -c NODE_OPTIONS="--max-old-space-size=3596" npm run build] web 2026-06-29T18:39:46.212574083Z │ web 2026-06-29T18:39:46.212801014Z │ > front@0.0.1 build web 2026-06-29T18:39:46.212807287Z │ > vite build web 2026-06-29T18:39:46.212813282Z │ web 2026-06-29T18:39:46.441144519Z │ ▲ [WARNING] Cannot find base config file "./.svelte-kit/tsconfig.json" [tsconfig.json] web 2026-06-29T18:39:46.441307416Z │ web 2026-06-29T18:39:46.441313056Z │ tsconfig.json:2:12: web 2026-06-29T18:39:46.441315955Z │ 2 │ "extends": "./.svelte-kit/tsconfig.json", web 2026-06-29T18:39:46.441318056Z │ ╵ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ web 2026-06-29T18:39:46.441319902Z │ web 2026-06-29T18:39:48.084094794Z │ vite v7.3.3 building ssr environment for production... web 2026-06-29T18:39:48.279319628Z │ transforming... web 2026-06-29T18:39:54.182599566Z │ 6:39:54 PM [vite-plugin-svelte] src/routes/admin/hierarchy/+page.svelte:6876:3 Elements with the 'dialog' interactive role must have a tabindex value web 2026-06-29T18:39:54.182777070Z │ https://svelte.dev/e/a11y_interactive_supports_focus web 2026-06-29T18:39:54.182782204Z │ 6874: }} web 2026-06-29T18:39:54.182784541Z │ 6875: > web 2026-06-29T18:39:54.182786500Z │ 6876:
` or `` might be more appropriate web 2026-06-29T18:39:54.182798267Z │ https://svelte.dev/e/a11y_click_events_have_key_events web 2026-06-29T18:39:54.182800078Z │ 6874: }} web 2026-06-29T18:39:54.182801724Z │ 6875: > web 2026-06-29T18:39:54.182803388Z │ 6876:
(); web 2026-06-29T18:39:54.182845229Z │ ^ web 2026-06-29T18:39:54.182847380Z │ 405: web 2026-06-29T18:39:54.182849062Z │ 406: // Svelte action: teleport an element to `document.body` on mount so it escapes web 2026-06-29T18:39:58.102144995Z │ 6:39:58 PM [vite-plugin-svelte] src/lib/components/admin/GoogleDocLinkChip.svelte:109:1 Visible, non-interactive elements with a click event must be accompanied by a keyboard event handler. Consider whether an interactive element such as `