Fix untickered-instrument aggregation + redesign the Edge Board - #5
Merged
Merged
Conversation
Aggregation - Accept instruments without a ticker symbol (indices, sovereign bonds, FX, commodities, private/foreign issuers). The parser required a non-empty symbol, so the model's valid untickered events were rejected and their posts stuck at max attempts. Symbol is now optional (require name+type); primary-instrument identity falls back to the name. Regression tests added. Dashboard - New derived "unconfirmed" status: a breaking event past a tunable TTL (FINTICK_BREAKING_TTL_SECONDS, default 1h) the wire never corroborated. Derived in read_feed from time — no DB migration. - Multi-select filter pills moved into a sticky, translucent glass top nav. - Light/dark theming: system-aware plus a manual toggle persisted per-browser. - Ticker moved inline (full-width, edge-fade mask); headlines are clickable anchors that scroll to the matching event card. - Operator telemetry (pipeline-health strip + status pill) hidden for public visitors; reveal with ?ops (persisted; ?ops=0 clears). - De-duplicated the TERMINAL ERRORS indicator to the header only. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
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
Two things this branch does:
1. Fixes the real aggregation failure. After the earlier
max_completion_tokensbump, the model returns clean JSON — butaggregate._parse_eventrequired a non-empty tickersymbolfor every instrument. Most financial events have none (indices, sovereign bonds, FX, commodities, private/foreign firms), so valid events were rejected and their posts got stuck at max attempts. Symbol is now optional (require name+type; identity falls back to the instrument name). Verified end-to-end against the real prod DB: 22 pending → 14 events, 0 errored.2. Redesigns the Edge Board dashboard.
unconfirmedstatus — a breaking event past a tunable TTL (FINTICK_BREAKING_TTL_SECONDS, default 1h) that external news never corroborated. Derived from time inread_feed, no DB migration.?ops(?ops=0clears). De-duplicated the TERMINAL ERRORS indicator to the header.Tests
New regression tests for optional-symbol parsing and the TTL transition. Full suite green except pre-existing environment-only failures (systemd service-handoff tests need Linux; one dashboard socket-timing flake on macOS).
🤖 Generated with Claude Code