Skip to content

feat(news): restore layered timeline reading and Market navigation - #1383

Merged
luokerenx4 merged 6 commits into
TraderAlice:devfrom
2233admin:fix/news-reading-stream
Sep 5, 2026
Merged

feat(news): restore layered timeline reading and Market navigation#1383
luokerenx4 merged 6 commits into
TraderAlice:devfrom
2233admin:fix/news-reading-stream

Conversation

@2233admin

@2233admin 2233admin commented Sep 5, 2026

Copy link
Copy Markdown

Maintainer integration and acceptance

The contributor's original commit is preserved. The branch now includes current dev (7fdf5ca5) and maintainer adjustments accepted through a running, isolated AliceProject preview:

  • Restore News category/view state from the focused tab rather than stale Router state; keep subsequent selections on the News route and retain one News tab.
  • Use static News/Markets/Macro/Watchlist parent titles, with one disclosure level only for news category groups. Parent titles use 13px medium text; descendants use regular 13px text and consistent 12px insets.
  • Preserve the selected category as a subdued summary when its group is collapsed, move search results immediately below search, and use a shared Base UI Collapsible with 180ms transitions, keyboard support, immediate focus exclusion on collapse, and reduced-motion handling.
  • Match clickable category and destination contrast. Verified expanded, collapsed, selected, dark/light, and 390px phone drawer states; selecting a category closes the phone drawer without horizontal overflow.

Final verification on b5dd6473

  • Root pnpm exec tsc --noEmit and UI pnpm --dir ui exec tsc -b: passed.
  • Node 22.23.2 full Vitest run: 729 files passed; four files initially failed because the disposable audit installation had skipped bundled Git setup and its macOS PTY helper lacked executable permission. After rebuilding local dependencies and repairing the helper's local execute bit, all four affected files passed independently (20 Workspace tests plus 59 PTY tests). The complete test selection is accounted for: 6,596 passing tests and 3 skips across 733 files. No source assertions, skips, dependency versions, or lockfiles were changed to obtain this result.
  • UI owner run during integration: 293 files / 1,775 tests passed. Final hierarchy increment's nine MarketSidebar tests also passed.
  • Actual PR UI with its real local news backend: news content, category/view changes, browser back/forward, sidebar selection and disclosures inspected. Demo /market/news?category=us&view=positive: correct NVDA/SPY records.
  • git diff --check: passed.

Vercel's external-fork check remains an authorization-required deployment failure, not a build/test failure. The latest prior dev CLI Installer Smoke completed successfully. Windows baseline failures originally reported by the contributor remain tracked in #1382. Tag semantics remain in #1380/#1381; the separate Symbol substring-matching defect is explicitly deferred in #1387.


Summary

Restore a scan-first news reading stream: a distinct headline, visible summary beneath it, left-hand timestamps, and directly visible editorial imagery. Submit the accepted news-only work against current dev, without the unrelated quote directory, dependency upgrades, or tool changes in the original working tree.

Closes #1379.

Included increments

  • Layer headline and summary; clamp long summaries to three lines with keyboard-operable expansion; preserve source links, tags, date groups, and the timeline.
  • Keep the image/source area on the right on desktop and stack it beneath the reading body on narrow screens without horizontal overflow.
  • Reveal local batches of 40 stories at the bottom intersection without replacing the reader's current anchor. This is bounded client-side reveal, not unbounded server pagination.
  • Integrate grouped news navigation into the existing Market sidebar, preserve category/view deep links in one News tab, retain the Market shell between related views, and close the phone drawer after selection using the existing shared control.
  • Carry safe RSS images through the news endpoint; add date-range, keyword, symbol, and source filtering with chronological limiting, plus matching demo behavior.
  • Move feed loading/refresh/error ownership into its domain hook; update focused regression coverage, four locales, flag attribution, and the existing UI interaction guide.

Verification

Frozen-lockfile installation completed. Tests use Node 22.23.2, matching the CI major, rather than this machine's Node 26 host runtime. No dependency changes or storage shims are included.

Passed

  • pnpm exec tsc --noEmit
  • pnpm --dir ui exec tsc -b
  • pnpm --dir ui build — 3,705 modules; existing large-chunk warning remains.
  • pnpm --package=node@22.23.2 dlx node node_modules/vitest/vitest.mjs run src/domain/news/collector/rss-parser.spec.ts src/webui/routes/news.spec.ts ui/src/demo/handlers/newsList.spec.ts ui/src/components/MarketSidebar.spec.tsx ui/src/tabs/__tests__/store.spec.ts ui/src/pages/NewsPage.spec.tsx ui/src/hooks/useNewsFeed.spec.ts7 files, 69 tests passed.
  • git diff --cached --check
  • Actual candidate Vite UI against the local read-only news backend: 40 initial articles, loaded editorial images, separate title/summary blocks, expansion and keyboard collapse, and bottom reveal from 40 to 80 articles with the same visible story remaining at the same viewport offset. Verified desktop and 390px phone layouts with no horizontal overflow.
  • Actual demo route /market/news?category=us&view=positive: the expected NVDA/SPY stories; category selection preserves the view. News navigation DOM survives News → Browse Markets → News. On phone, selecting US Stocks updates the route and closes the drawer (zero remaining dialogs).

Full-suite result — not green

pnpm --package=node@22.23.2 dlx node node_modules/vitest/vitest.mjs run (the root pnpm test runner): 717 files passed, 7 failed, 5 skipped; 6,410 tests passed, 25 failed, 114 skipped in 310.14s.

Failures are in unchanged CLI/headless/Windows environment suites, not the news or UI changes. A separate pristine checkout of base 88548b50717ef13e556f42b4882bd1e0de7116b0 reproduces 24 failures across the same seven files. The additional full-suite failure is the headless watchdog case in that same failing subprocess boundary; it passed the isolated baseline selection. Reproduction, exact symptoms, and ownership are recorded in #1382. The PR does not weaken tests, add skips, or fold unrelated portability fixes into the news change.

The workstation-mandated cargo test --workspace --no-fail-fast was also attempted from the repository root; it cannot run because this TypeScript repository has no Cargo.toml.

Boundary touch

Read-only Alice news HTTP query/shaping, RSS collection metadata, UI state and navigation, and demo handlers. No trading writes, UTA ownership, credentials/authentication, migrations, managed runtime, signing, packaging, dependency upgrades, or release/version changes. HTTP(S) image URL handling excludes embedded credentials at the backend boundary.

Non-goals

This is an external fork contribution for maintainer review; no merge or release is requested automatically.

@vercel

vercel Bot commented Sep 5, 2026

Copy link
Copy Markdown

Someone is attempting to deploy a commit to the luokerenx4's Team Team on Vercel.

A member of the Team first needs to authorize it.

@2233admin

Copy link
Copy Markdown
Author

Submission check: the PR is open against dev at head a8c060c. Vercel currently reports FAILURE: Authorization required to deploy. This is an external-fork preview authorization gate; no deployment was authorized or bypassed. Maintainer action is required for the hosted preview. Local build/browser evidence and the non-green Windows full-suite result are recorded in the PR body; baseline failures are tracked in #1382.

@luokerenx4
luokerenx4 merged commit d70432f into TraderAlice:dev Sep 5, 2026
1 check failed
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