Skip to content

Watchlist UX (no_response lane, collapsible lanes, notes-lag fix), cut Soundcharts, social crawl proxy hook#65

Merged
demilt11-lab merged 1 commit into
mainfrom
claude/publisting-audit-hardening-ixpwf6
Jul 23, 2026
Merged

Watchlist UX (no_response lane, collapsible lanes, notes-lag fix), cut Soundcharts, social crawl proxy hook#65
demilt11-lab merged 1 commit into
mainfrom
claude/publisting-audit-hardening-ixpwf6

Conversation

@demilt11-lab

Copy link
Copy Markdown
Owner

Batch addressing several requested items. (Access change #1 was applied directly to the DB and is already live — not in this PR.)

#5 — "No Response" lane + collapsible swim lanes

  • New No Response pipeline lane (sits after Contacted). Added to ContactStatus, CONTACT_STATUS_CONFIG, lane descriptions, and the atomic stage-transition RPC's allowed-lane list (migration 20260723120000, applied to prod + reconciled). It's now a real lane, removed from the legacy alias map. boardColumns and the team assignment counts are built from the config so new lanes can't drift the exhaustive records.
  • Board lanes are collapsible — a per-lane chevron collapses to a slim vertical strip (label + count); state persists in localStorage.

#6 — Notes typing lag

The card notes Textarea was controlled off the shared watchlist state, so every keystroke re-rendered the whole board. Now uses a local draft with a 500ms debounced save (flush on blur/unmount), adopting external edits only when they differ from the last saved value.

#4 — Cut Soundcharts unconditionally

Removed from provider orchestration (syncEntityFromAllProviders, ProviderName), deleted the soundcharts-enrich / sync-soundcharts-entity edge functions, removed the healthcheck probe (it hit the Soundcharts API on every run) and the UI provider lists, dropped dead fetchSoundchartsData. The two functions are queued for deletion in security-ops.yml. Inert legacy labels + the soundcharts_cache table remain (nothing calls them).

#2 — Social crawl proxy (hook)

buildProxyConfig() gains a dedicated social path: social crawls prefer CRAWL4AI_SOCIAL_PROXY_URL/_SERVER when set, falling back to the general proxy, then direct. (The general proxy already covered social crawls; this adds a separate residential-pool hook.) Activation requires the proxy credential — operator-supplied.

Verification

tsc -b clean · ESLint 0/0 · 363 tests green · production build succeeds · lane migration applied + reconciled live.

🤖 Generated with Claude Code

https://claude.ai/code/session_01CN6KKo8XyF2N2wBLxno24C


Generated by Claude Code

…-lag fix; cut Soundcharts; social crawl proxy hook

Batch of product + provider changes.

#5 Watchlist:
- New "No Response" pipeline lane (after Contacted). Added to ContactStatus,
  CONTACT_STATUS_CONFIG, lane descriptions, and the atomic stage RPC's
  allowed-lane list (migration 20260723120000, applied to prod). no_response
  is now a real lane, dropped from the legacy alias map. boardColumns and the
  team assignment counts are now built from the config so future lanes can't
  drift the exhaustive records.
- Board swim lanes are collapsible: a per-lane chevron collapses to a slim
  vertical strip (label + count); state persists in localStorage.

#6 Notes lag: the card notes Textarea kept a controlled binding to the shared
watchlist state, so every keystroke re-rendered the whole board. It now uses a
local draft with a 500ms debounced save (flush on blur/unmount) and only adopts
external edits that differ from the last saved value.

#4 Cut Soundcharts unconditionally: removed from provider orchestration
(syncEntityFromAllProviders, ProviderName), deleted the soundcharts-enrich and
sync-soundcharts-entity edge functions, removed the healthcheck probe (it hit
the Soundcharts API on every run) and the UI provider lists (ProviderHealthBar,
AdminSyncHistory, CatalogAnalysis badges), and dropped the dead
fetchSoundchartsData. Inert legacy labels / the soundcharts_cache table remain
(nothing calls them). The two functions are queued for deletion in security-ops.

#2 Social crawl proxy: buildProxyConfig() gains a dedicated social path —
social crawls prefer CRAWL4AI_SOCIAL_PROXY_URL/_SERVER when set and fall back to
the general proxy, then direct. The general proxy already applied to social
crawls; this adds a separate residential pool hook. Activation needs the proxy
credential (operator-supplied).

Verified: tsc, eslint, 363 tests, production build; no_response migration applied
+ reconciled live.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CN6KKo8XyF2N2wBLxno24C
@vercel

vercel Bot commented Jul 23, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
publisting Ready Ready Preview, Comment Jul 23, 2026 1:46pm

Request Review

@supabase

supabase Bot commented Jul 23, 2026

Copy link
Copy Markdown

Updates to Preview Branch (claude/publisting-audit-hardening-ixpwf6) ↗︎

Deployments Status Updated
Database Thu, 23 Jul 2026 13:45:58 UTC
Services Thu, 23 Jul 2026 13:45:58 UTC
APIs Thu, 23 Jul 2026 13:45:58 UTC

Tasks are run on every commit but only new migration files are pushed.
Close and reopen this PR if you want to apply changes from existing seed or migration files.

Tasks Status Updated
Configurations Thu, 23 Jul 2026 13:46:05 UTC
Migrations Thu, 23 Jul 2026 13:46:33 UTC
Seeding Thu, 23 Jul 2026 13:46:37 UTC
Edge Functions Thu, 23 Jul 2026 13:47:10 UTC

View logs for this Workflow Run ↗︎.
Learn more about Supabase for Git ↗︎.

@demilt11-lab
demilt11-lab merged commit 340f3d6 into main Jul 23, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants