feat(timeline): add pulse animation for in-flight drag mutations

Allocation bars that have active optimistic overrides (post-drag,
awaiting server confirmation) now pulse subtly via animate-pulse.
The pending set is derived from the existing optimisticAllocations
map keys, requiring no additional state.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-09 13:28:46 +02:00
parent 7a5e98e2e9
commit 1df208dbcc
386 changed files with 657 additions and 81650 deletions
+14 -21
View File
@@ -23,9 +23,8 @@ jobs:
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
with:
version: ${{ env.PNPM_VERSION }}
- name: Install pnpm
run: npm install -g pnpm@${{ env.PNPM_VERSION }}
- uses: actions/setup-node@v4
with:
@@ -56,9 +55,8 @@ jobs:
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
with:
version: ${{ env.PNPM_VERSION }}
- name: Install pnpm
run: npm install -g pnpm@${{ env.PNPM_VERSION }}
- uses: actions/setup-node@v4
with:
@@ -87,9 +85,8 @@ jobs:
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
with:
version: ${{ env.PNPM_VERSION }}
- name: Install pnpm
run: npm install -g pnpm@${{ env.PNPM_VERSION }}
- uses: actions/setup-node@v4
with:
@@ -114,9 +111,8 @@ jobs:
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
with:
version: ${{ env.PNPM_VERSION }}
- name: Install pnpm
run: npm install -g pnpm@${{ env.PNPM_VERSION }}
- uses: actions/setup-node@v4
with:
@@ -178,9 +174,8 @@ jobs:
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
with:
version: ${{ env.PNPM_VERSION }}
- name: Install pnpm
run: npm install -g pnpm@${{ env.PNPM_VERSION }}
- uses: actions/setup-node@v4
with:
@@ -219,9 +214,8 @@ jobs:
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
with:
version: ${{ env.PNPM_VERSION }}
- name: Install pnpm
run: npm install -g pnpm@${{ env.PNPM_VERSION }}
- uses: actions/setup-node@v4
with:
@@ -294,9 +288,8 @@ jobs:
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
with:
version: ${{ env.PNPM_VERSION }}
- name: Install pnpm
run: npm install -g pnpm@${{ env.PNPM_VERSION }}
- uses: actions/setup-node@v4
with:
+2 -3
View File
@@ -19,9 +19,8 @@ jobs:
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
with:
version: ${{ env.PNPM_VERSION }}
- name: Install pnpm
run: npm install -g pnpm@${{ env.PNPM_VERSION }}
- uses: actions/setup-node@v4
with:
+24 -33
View File
@@ -12,7 +12,6 @@ on:
permissions:
contents: read
packages: write
jobs:
build-and-push:
@@ -22,13 +21,15 @@ jobs:
steps:
- uses: actions/checkout@v4
- uses: docker/setup-buildx-action@v3
- name: Set up Docker Buildx
run: docker buildx create --use --name ci-builder 2>/dev/null || true
- uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Login to GHCR
# Requires Gitea secrets: GHCR_USERNAME (GitHub username) and
# GHCR_TOKEN (GitHub PAT with write:packages scope)
run: |
echo "${{ secrets.GHCR_TOKEN }}" | \
docker login ghcr.io -u "${{ secrets.GHCR_USERNAME }}" --password-stdin
- id: vars
name: Compute image refs
@@ -43,32 +44,22 @@ jobs:
echo "migrator_image=ghcr.io/${owner}/${repo}-migrator:${image_tag}" >> "$GITHUB_OUTPUT"
- name: Build and push app image
uses: docker/build-push-action@v6
with:
context: .
file: ./Dockerfile.prod
target: runner
push: true
tags: ${{ steps.vars.outputs.app_image }}
cache-from: type=gha,scope=app-image
cache-to: type=gha,mode=max,scope=app-image
run: |
docker buildx build --push \
--tag "${{ steps.vars.outputs.app_image }}" \
--file ./Dockerfile.prod \
--target runner \
.
- name: Build and push migrator image
uses: docker/build-push-action@v6
with:
context: .
file: ./Dockerfile.prod
target: migrator
push: true
tags: ${{ steps.vars.outputs.migrator_image }}
cache-from: type=gha,scope=migrator-image
cache-to: type=gha,mode=max,scope=migrator-image
- name: Publish release summary
run: |
{
echo "## Image release"
echo
echo "- App image: \`${{ steps.vars.outputs.app_image }}\`"
echo "- Migrator image: \`${{ steps.vars.outputs.migrator_image }}\`"
} >> "$GITHUB_STEP_SUMMARY"
docker buildx build --push \
--tag "${{ steps.vars.outputs.migrator_image }}" \
--file ./Dockerfile.prod \
--target migrator \
.
- name: Release summary
run: |
echo "App image: ${{ steps.vars.outputs.app_image }}"
echo "Migrator image: ${{ steps.vars.outputs.migrator_image }}"