Skip to content

E2.1: cut legacy hardware/dashboard frontend, add landing page - #68

Open
RaapTechllc wants to merge 3 commits into
mainfrom
cursor/era-2-frontend-cut-e9a0
Open

RaapTechllc wants to merge 3 commits into
mainfrom
cursor/era-2-frontend-cut-e9a0

Conversation

@RaapTechllc

@RaapTechllc RaapTechllc commented Sep 14, 2026

Copy link
Copy Markdown
Owner

First step of docs/PLAN-era-2-cut.md (PR #67). Frontend only; no backend or schema changes.

Deleted

  • Pages: Dashboard, Hardware, Submit, Compare, BenchmarkDetail, Leaderboard, LegacyLeaderboardRedirect, MoaCalculator
  • Components: BandwidthBadge, MemoryLabel
  • Libs: submitForm, bandwidth, legacyNotice, moaCalculator (+ their tests)
  • api.ts: legacy Benchmark/HardwareSpec/ModelQuality/LeaderboardEntry/Stats/ReferenceProfile types and the /benchmarks, /submit, /leaderboard, /hardware, /profiles, /compare, /stats, /models, /openrouter/compare client calls

Added

  • pages/Home.tsx landing: "what changed" feed (new catalog models via /api/v1/agents/models/new, newest Agent Cabinet runs, Usage Board as_of + live/fixture badge) and one entry card per surface with its as-of. No charts.
  • lib/home.js pure freshness helpers + tests/home.test.mjs (first visit never fabricates "new").
  • Nav trimmed to Home / Agent Cabinet / Models / Agents / Usage / Methodology.
  • /leaderboard is a plain Navigate to /models; unknown routes redirect to /.
  • Usage Board copy no longer references the Mini PC board.

Not in this PR (per plan)

  • Methodology hardware section rewrite (E2.7). It is the only remaining hardware copy in frontend/src.
  • Backend route/model removal (E2.2+).

Verification

cd frontend && npm run lint && npm test && npm run build green (44 tests).

Manual check against a synthetic mock API (clearly labelled fixture rows, not benchmark data): landing first visit, return visit with new badges, /leaderboard -> /models, /hardware -> /, run link -> /agent-cabinet/runs/:id.

Landing on a return visit, new badges on items newer than last visit

To show artifacts inline, enable in settings.

Open in Web Open in Cursor 

cursoragent and others added 3 commits September 14, 2026 15:58
… Usage

Sequenced deletion series for the retired Mini-PC hardware, CLI, dashboard
and prototype surfaces, verified against a dependency inventory so keepers
(agentbench, Agent Cabinet, known_models catalog) are untouched. Defines the
Era 2 product and seven 'not slop' acceptance rules for every chart and number.

Co-authored-by: RaapTechllc <RaapTechllc@users.noreply.github.com>
Delete Dashboard, Hardware, Submit, Compare, BenchmarkDetail, Leaderboard,
MoaCalculator pages and their components/libs/tests; strip legacy types and
endpoints from api.ts. Replace / with a landing that shows what changed since
the last visit (new catalog models, newest Agent Cabinet runs, Usage Board
as-of) plus one entry card per surface. /leaderboard now redirects to /models.

Co-authored-by: RaapTechllc <RaapTechllc@users.noreply.github.com>
Co-authored-by: RaapTechllc <RaapTechllc@users.noreply.github.com>
@RaapTechllc
RaapTechllc marked this pull request as ready for review September 14, 2026 16:17
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 14, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-09-14T16:20:40.829600Z 9562475 Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 9562475e25

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

if (c.status === 'fulfilled') setCabinet(c.value);
if (u.status === 'fulfilled') setUsage(u.value);
setLoading(false);
window.localStorage.setItem(LAST_VISIT_KEY, new Date().toISOString());

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Advance the visit marker only after successful feed loads

When any request is rejected (for example, during a temporary backend outage), Promise.allSettled still reaches this write after leaving the corresponding state as an empty array. The page therefore presents an API failure as an empty feed and records the current time; once the API recovers, models or runs created before that marker will never receive a new badge. Only advance the marker for successfully refreshed feeds, and preserve/report failures rather than treating them as empty data.

Useful? React with 👍 / 👎.

<SurfaceCard to="/models" icon={Trophy} eyebrow="Solo Cabinet" title="Single-model screening" asOf={catalogAsOf}>
Pinned decoding, executable graders, 95% CI bars. Cheap first pass before spending on agent runs.
</SurfaceCard>
<SurfaceCard to="/agents" icon={Bot} eyebrow="Multiplayer Cabinet" title="Mixture-of-agents configs" asOf={cabinetAsOf}>

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Derive Multiplayer freshness from Multiplayer data

When Agent Cabinet and /agents are updated at different times, this card reports cabinetAsOf, which is computed exclusively from /api/v1/agent-cabinet/runs; those are separate product surfaces and storage contracts. A new Multiplayer run will not change the displayed date, while an unrelated Agent Cabinet run will, so the landing page gives users a false freshness signal for the linked /agents surface. Fetch or expose a timestamp from the Multiplayer leaderboard instead.

Useful? React with 👍 / 👎.

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