feat(dashboard): Process All funnel visibility + in-flight chip + enriching badge (Spec 5)#339
Merged
mitwilli-create merged 1 commit intoMay 29, 2026
Conversation
…iching badge Spec 5a + 5c + 5b-(i) — three UI changes addressing the same root-cause perception gap raised in handover 2026-05-29 (multi-stage funnel rendered as flat progress bar; Anthropic 60s poll + atomic 0→N updates feel "stuck"; modal counts drift from sidebar after batches drain). - Spec 5a: NEW lib/in-flight-batch-detector.mjs reads batch/batches-api-state.json + surfaces in_flight_batch in batchLive SSE payload. Client _renderBatchData renders an amber "⏳ Anthropic batch in flight · X of N · elapsed Mm Ss · next poll ~Ns" chip whenever ANY batch has processing>0, even between orchestrator phases or for sibling-submitted batches. Closes the polling-cadence misread. - Spec 5c: _updateLiveCounts publishes window.__LIVE_COUNTS__ on every SSE tick. _renderProcessAllPhaseA + batch-status modal pipeline_pending cell now read from the live global with fallback to the cached pAgg snapshot. Closes "modal shows 419, sidebar shows 303" drift. - Spec 5b-(i): NEW lib/apply-now-enrichment-status.mjs::isRowEnriching → apply-now rows show subtle "⏳ enriching" amber chip when intel-refresh state shows missing load-bearing slots (hm-intel / role-enrichment / team-health) for that row, OR when row eval_date is newer than last refresh. Calibration signal — never gates, never hides. Pattern aligned with AGENTS.md § Bug class: confidence-label-annotation-not-gating. Tests: 36/36 green - 11/11 in-flight-batch-detector unit tests (pure-function, mocked time) - 14/14 apply-now-enrichment-status unit tests (sentinel + edge cases) - 11/11 spec5-renderer-contracts static contract tests (renderer wiring) Live verification (Chrome MCP at https://staging-dashboard.careers-ops.com/ at 1440x900 + 720x900): 47 enriching badges in built HTML; sample tooltip "⏳ enriching · awaiting hm-intel · missing: hm-intel"; in-flight chip code present + correctly hidden when no batch in flight; __LIVE_COUNTS__ published 3 places + SSE payload includes pipeline_pending + triage_advance_count. Screenshots: .claude/audit/spec5-funnel-visibility-2026-05-29/notes.md Pre-existing test-all.mjs failures unrelated to this PR (flagged in predecessor's session notes): verify-pipeline.mjs row-column-swap; canonical_url invariant #2211 (separate sibling-instance WIP — preserved untouched in working tree). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
mitwilli-create
pushed a commit
that referenced
this pull request
May 29, 2026
Documents the 2026-05-29 Spec 5 work merged at fe0b1ad: - in-flight Anthropic batch chip (Spec 5a) - modal live-count binding via window.__LIVE_COUNTS__ (Spec 5c) - apply-now enriching badge (Spec 5b-i) Includes file-by-file breakdown, verification log, sibling-WIP coordination state, and post-merge action items. Audit: .claude/audit/spec5-funnel-visibility-2026-05-29/notes.md [skip-ui-verify] — CLAUDE.md docs only, no UI code touched. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Open
10 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Spec 5a + 5c + 5b-(i) — three UI changes addressing the same root-cause perception gap raised in the 2026-05-29 handover (Process All "looks stuck" because the multi-stage funnel renders as a flat progress bar; Anthropic's 60s poll + atomic 0→N progress updates feel frozen between polls; modal counts drift from sidebar after batches drain).
Specs shipped
5a — In-flight Anthropic batch chip. NEW
lib/in-flight-batch-detector.mjsreadsbatch/batches-api-state.json+ surfacesin_flight_batchin batchLive SSE payload. Client renders an amber⏳ Anthropic batch in flight · X of N · elapsed Mm Ss · next poll ~Nschip whenever ANY batch hasprocessing>0, even between orchestrator phases or for sibling-submitted batches. Closes the polling-cadence misread.5c — Modal live-count binding.
_updateLiveCountsnow publisheswindow.__LIVE_COUNTS__on every SSE tick._renderProcessAllPhaseA+ batch-status modalpipeline_pendingcell read from the live global with fallback to the cachedpAggsnapshot. Closes the "modal shows 419, sidebar shows 303" drift.5b-(i) — Apply-now enriching badge. NEW
lib/apply-now-enrichment-status.mjsdecides per-row badge visibility fromintel-refresh-state.jsonslot completeness. Apply-now rows show a subtle⏳ enrichingchip when load-bearing slots (hm-intel / role-enrichment / team-health) are missing OR roweval_dateis newer than last refresh. Calibration signal — never gates, never hides. Pattern aligned with AGENTS.md § Bug class: confidence-label-annotation-not-gating.Tests
36/36 green across 3 new test files:
tests/in-flight-batch-detector.test.mjs— 11/11 pure-function tests, mocked timetests/apply-now-enrichment-status.test.mjs— 14/14 tests covering sentinels + edge casestests/spec5-renderer-contracts.test.mjs— 11/11 static contract tests pinning renderer wiringLive verification
Chrome MCP at https://staging-dashboard.careers-ops.com/ at 1440×900 + 720×900:
dashboard/index.htmlfor qualifying apply-now rows⏳ enriching · awaiting hm-intel · missing: hm-intelin-flight-batch-chipcode present in inline JS; correctly hidden right now (no batch in flight)__LIVE_COUNTS__published 3 places + SSE payload includespipeline_pending+triage_advance_countcurl /api/batch-livereturnsin_flight_batch: null+ fulllive_countskeysetFull audit at
.claude/audit/spec5-funnel-visibility-2026-05-29/notes.md(gitignored).Pre-existing failures (NOT caused by this PR)
verify-pipeline.mjs crashed— row-column-swap on #2599 / #2582 / #2548 (flagged in predecessor's session notes 2026-05-29)canonical_url invariant #2211— orphan from PR feat(triage+eval): hard-disqualifier filter + comp floor gate + Block C why-this-fits #333 dedupe; sibling-instance WIP in progress for that fix (preserved untouched in working tree)node test-all.mjsresult: 77 passed, 2 pre-existing failed, 2 warnings.Test plan
meta-chip-enriching(47x) +in-flight-batch-chip(2x) +__LIVE_COUNTS__(3x) in built HTMLRollback
git revert <merge-commit>— Spec 5 is purely additive (in-flight chip + enriching badge + live-count override all degrade gracefully to absent/cached inputs when their data is missing).🤖 Generated with Claude Code