Modal suggestions scroll-cap + Celery broker resilience #129

Merged
bvandeusen merged 2 commits from dev into main 2026-06-24 08:34:17 -04:00
Owner

Two post-roadmap fixes, both CI-green on dev. No schema changes (head 0054).

  • 3fcc4ae fix(modal): scroll-cap the Suggestions list (320px max-height + hairline scroll) so a long suggestion run no longer pushes the Related strip off the bottom of the modal's right rail. (Issue #1080)
  • b85327a fix(celery): broker resilience — workers retry the broker forever on startup/runtime (broker_connection_max_retries=None) with redis socket keepalive / connect-timeout / retry-on-timeout / health-check on both broker and result backend. A transient Redis/overlay-network blip (root cause of the post-redeploy worker crash-loop) now self-heals instead of needing a manual Redis reset. (Issue #1082)

After merge: force re-pull :latest — the download-worker especially, since that's the worker the hardening protects.

🤖 Generated with Claude Code

Two post-roadmap fixes, both CI-green on `dev`. No schema changes (head 0054). - **`3fcc4ae` fix(modal):** scroll-cap the Suggestions list (320px max-height + hairline scroll) so a long suggestion run no longer pushes the Related strip off the bottom of the modal's right rail. (Issue #1080) - **`b85327a` fix(celery):** broker resilience — workers retry the broker forever on startup/runtime (`broker_connection_max_retries=None`) with redis socket keepalive / connect-timeout / retry-on-timeout / health-check on both broker and result backend. A transient Redis/overlay-network blip (root cause of the post-redeploy worker crash-loop) now self-heals instead of needing a manual Redis reset. (Issue #1082) After merge: force re-pull `:latest` — the **download-worker** especially, since that's the worker the hardening protects. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
bvandeusen added 2 commits 2026-06-24 08:34:10 -04:00
fix(modal): scroll-cap the suggestions list so Related stays reachable
CI / lint (push) Successful in 2s
CI / frontend-build (push) Successful in 18s
CI / backend-lint-and-test (push) Successful in 29s
CI / integration (push) Successful in 3m23s
3fcc4aeb43
The right rail scrolls as a whole and ProvenancePanel already caps its cards +
attachments, but SuggestionsPanel had no cap — a long suggestion set (the
General bucket runs to dozens) stretched the rail and pushed the Related strip
below the fold. Wrap the suggestion groups in a 320px max-height scroll box
(hairline scrollbar matching the provenance regions), so suggestions scroll
internally and Related stays visible.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XCUHUGQLrBrkgyk1t49kpX
fix(celery): harden broker connection so workers ride out a Redis blip
CI / lint (push) Successful in 2s
CI / frontend-build (push) Successful in 18s
CI / backend-lint-and-test (push) Successful in 31s
CI / integration (push) Successful in 3m16s
b85327a79d
A swarm overlay-network blip after the :latest redeploy left Redis healthy but
transiently unreachable; a worker starting in that window crash-looped on the
initial broker connect (kombu OperationalError) and needed a manual Redis reset
to recover.

Retry the broker forever on startup + at runtime (broker_connection_max_retries
=None), add redis-transport socket options to the broker (short connect timeout,
TCP keepalive, retry_on_timeout, periodic health check), and mirror the same on
the Redis result backend. Now a transient outage self-heals when overlay routing
returns instead of the worker exiting.

Test pins the key resilience settings.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XCUHUGQLrBrkgyk1t49kpX
bvandeusen merged commit 9b9b12f410 into main 2026-06-24 08:34:17 -04:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: bvandeusen/FabledCurator#129