Skip to content

fix(native): market lookup ticks, symbol results and scorecard like the web (S-98) - #449

Merged
EraPartner merged 2 commits into
mainfrom
claude/project-thread-1gb9ji
Nov 14, 2026
Merged

EraPartner merged 2 commits into
mainfrom
claude/project-thread-1gb9ji

Conversation

@EraPartner

Copy link
Copy Markdown
Owner

Requested by EraPartner · project thread

Summary

UI audit row S-98 (Market lookup), with the TS app as the reference:

  • Date ticks: new TimeAxisTicks (VisionNativeCore) reproduces d3 scaleTime().ticks(n). It picks the calendar interval closest to span/count and aligns ticks as d3-time does. The market chart uses it instead of .automatic(desiredCount:), which picked coarser steps.
  • Symbol search rows (ResearchUIComponents.swift): match SymbolSearchResultItem. The ticker and name use type-body, the type is an outline Badge size="sm", the exchange is type-footnote, and rows use px-3 py-2.5 with rounded-control.
  • Scorecard (ResearchMarketDetailViews.swift): matches ScorecardPanel. It shows the grade badge (score and grade), the severity count pills, and the concerns as an inset List of rows. Each row has a severity glyph, the metric over its reason, and the value over its benchmark.

S-16 (Home column gap) and K4 (hues) need no code change; see the thread for what was checked.

Type of change

  • fix — bug fix

Checklist

  • Conventional Commit title
  • No i18n, docs, API or schema changes

Verification

  • TimeAxisTicksTests (4 tests) pass in a Linux swift:6.2-noble container on a scratch package holding only TimeAxisTicks.swift. The first run found the two-day month-boundary bug; it is fixed in this PR. That run is Linux only, not CI.
  • The full app build and tests run in the CI swift job. The UI changes are unverified on a Mac.

Generated by Claude Code

Swift Charts' automatic date marks picked coarser steps than the web AreaChart's
scaleTime().ticks(n), so the market lookup chart showed far fewer dates.
TimeAxisTicks picks d3's calendar interval nearest span/count and aligns it as
d3-time does (two-day steps restart each month).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018QJtaMxiuFABVL2LiMKy5m
SymbolSearchResultItem: type-body ticker and name, outline badge for the type,
px-3 py-2.5 rows. ScorecardPanel: grade badge, severity count pills and the
concerns as an inset list with severity glyphs, value over benchmark.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018QJtaMxiuFABVL2LiMKy5m
@EraPartner
EraPartner marked this pull request as ready for review November 14, 2026 22:00
@EraPartner
EraPartner merged commit 6ddbb53 into main Nov 14, 2026
11 checks passed
@EraPartner
EraPartner deleted the claude/project-thread-1gb9ji branch November 14, 2026 22:00
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