Skip to content

Terminal-style overview dashboard + unbreak Vercel deploys - #16

Merged
DerMayer1 merged 4 commits into
masterfrom
feat/overview-dashboard
Jul 24, 2026
Merged

DerMayer1 merged 4 commits into
masterfrom
feat/overview-dashboard

Conversation

@DerMayer1

Copy link
Copy Markdown
Owner

Summary

Reworks the overview page into a dense, terminal-styled risk console, and fixes the two separate reasons no Vercel deployment has succeeded since ebea833.

The deploy breakage

Production (atlas-os-zimmermann.vercel.app) has been pinned to ebea833 for ~13 hours. Every deployment since — including the #14 production build — failed. Two independent causes:

1. Install command. The project's install command is overridden to npm install, which ignores frontend/pnpm-lock.yaml and re-resolves from the registry. Something in that fresh tree now ships a workspace:* spec:

npm error code EUNSUPPORTEDPROTOCOL
npm error Unsupported URL Type "workspace:": workspace:*
Error: Command " npm install" exited with 1

Fixed via frontend/vercel.json — vercel.json build settings take precedence over dashboard project settings, so this is fixed in-repo and stays under review. --frozen-lockfile also makes the deployed tree match the committed lockfile, which the npm path never did.

2. Typecheck. PR #9 bumped vite 6 → 8 (rollup 4), which broke the manualChunks object form. Since the build script is tsc -b && vite build, master could not build even with the install fixed. This one is pre-existing and unrelated to the dashboard work — it's isolated in its own commit.

Dashboard changes

  • Context strip (snapshot, as-of, regime, stress, counts) with a live/loading indicator
  • Compact metric row replacing the executive Metric cards
  • Risk path chart: LineChart → ComposedChart with gradient area, grid, and policy reference lines at the 15% review / 30% elevated impairment thresholds (mirroring src/atlas/domain/reports/builder.py)
  • New "Exposure by portfolio" pane, ranked by mean P(impairment)
  • Tone helpers (risk/stress/regime/severity) centralised

Verification

Run against master's upgraded dependency set (recharts 3.9.2, zod 4, TypeScript 7, vite 8, vitest 4):

  • pnpm install --frozen-lockfile — clean, confirming the lockfile is in sync
  • tsc -b — clean
  • VERCEL=1 vite build — succeeds; charts, tables, react-vendor chunks all still emitted, so the manualChunks rewrite is behaviour-preserving
  • vitest run — 11/11 passing

The tooltip formatter was also updated for recharts 3, which types the value as ValueType | undefined rather than number.

Note

Branched off master rather than deploy/render. PR #14 was squash-merged, so a PR from that branch re-proposes ~920 lines of already-merged content and invites phantom conflicts.

🤖 Generated with Claude Code

DerMayer1 and others added 3 commits July 24, 2026 15:47
Rework the overview page from generic metric cards into a dense,
terminal-styled risk console:

- Context strip (snapshot, as-of, regime, stress, counts) with a
  live/loading status indicator.
- Compact metric row replacing the executive Metric cards.
- Risk path chart upgraded from LineChart to ComposedChart with a
  gradient area, grid, and policy reference lines at the 15% review
  and 30% elevated impairment thresholds (mirroring
  src/atlas/domain/reports/builder.py).
- New "Exposure by portfolio" pane ranking portfolios by mean
  P(impairment).
- Tone helpers (risk/stress/regime/severity) centralised in the page.

The tooltip formatter takes recharts 3's ValueType (possibly
undefined) rather than a bare number.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
PR #9 bumped vite 6 -> 8 (rollup 4). The object form of
build.rollupOptions.output.manualChunks now resolves against
ManualChunksFunction and fails to typecheck:

    vite.config.ts(25,11): error TS2769: No overload matches this call.
      'charts' does not exist in type 'ManualChunksFunction'

Since the build script is `tsc -b && vite build`, this broke every
deployment on master independently of any feature work. Switched to the
function form; the emitted chunks (charts, tables, react-vendor) are
unchanged.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The project's install command was overridden to `npm install`, which
ignores frontend/pnpm-lock.yaml and re-resolves the tree from the
registry. A dependency in that fresh tree now ships a `workspace:*`
spec, which npm cannot parse:

    npm error code EUNSUPPORTEDPROTOCOL
    npm error Unsupported URL Type "workspace:": workspace:*

Every deployment since ebea833 failed this way, including the #14
production build, so the live site was pinned to a stale commit.

vercel.json build settings take precedence over dashboard project
settings, so pinning the install command here fixes it in-repo and
keeps it under review. --frozen-lockfile also makes the deployed tree
match the committed lockfile, which the npm path never did.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@vercel

vercel Bot commented Jul 24, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
atlas-os Ready Ready Preview, Comment Jul 24, 2026 6:50pm

PR #9 bumped typescript 5.9.3 -> 7.0.2. TypeScript 7 is the native port
and changes the compiler API surface. Vercel's @vercel/node builder
compiles frontend/api/atlas/[...path].ts with the locally installed
TypeScript, and crashes on it:

    Using TypeScript 7.0.2 (local user-provided)
    Error: Cannot read properties of undefined (reading 'readFile')

The vite build itself succeeds and emits identical chunks — the failure
is only in the serverless function stage, after the client bundle is
already built, which is why it reads as a green build followed by a
failed deployment.

Pinned with ~ rather than ^ so dependabot cannot walk it back to 7
until Vercel's builder supports it.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@DerMayer1
DerMayer1 merged commit d897570 into master Jul 24, 2026
5 checks passed
@DerMayer1
DerMayer1 deleted the feat/overview-dashboard branch July 24, 2026 19:07

This branch was successfully deployed

1 active deployment
Preview — 20c1d01a Deployed Jul 24, 2026 by vercel[bot]
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.

1 participant