Skip to content

WQ-0383: /next becomes the default dashboard; classic moves to /legacy; v2 Stocks tab - #29

Merged
Tarrant64 merged 2 commits into
mainfrom
hermes/WQ-0383-clean
Oct 21, 2026
Merged

Tarrant64 merged 2 commits into
mainfrom
hermes/WQ-0383-clean

Conversation

@Tarrant64

Copy link
Copy Markdown
Owner

WQ-0383: /next is the default dashboard; classic UI moves to /legacy

Per user order 2026-10-21 ("deprecate the old standard dashboard, and default
everything to the new /next. The old dashboard can be viewed by going to
/legacy going forward, and /next becomes the new default").

Routing

  • GET / now 302s to /next/ (was: served the V1 index).
  • /legacy/ serves the classic index; /legacy/<page> resolves any V1 page
    (/legacy/assets.html, /legacy/assets both work).
  • Every existing V1 URL (/assets.html, /data.html, /login.html, ...)
    keeps serving exactly as before — bookmarks and deep links don't break.
  • nginx (http + ssl): exact location = / 302 (nginx would otherwise serve
    the V1 index straight off disk and FastAPI would never see /), and a
    /legacy proxy location placed before the SPA try_files fallback.

Stocks tab parity on /next (found by user testing)

  • The WQ-0382 Stocks tab existed only on the classic Assets page. /next Assets
    now has it: tab button, table (symbol/name/qty/price/day/value + tracked
    toggle + delete), add-stock v2 modal with debounced live ticker validation
    against /stocks/search (POST requires a feed-validated ticker), lazy load on
    first visit, #stocks hash routing. New frontend/v2/js/v2-stocks.js.
    Values already flow to the /next hero via the backend /portfolio/instant
    manual_stock bucket (no v2 math change needed).
  • Cache-bust stamp bumped repo-wide.

Tests tests/unit/test_next_default_routing.py pins: root() performs the
redirect; legacy routes exist and all old V1 routes remain; both nginx configs
have the root 302 ordered before try_files and /legacy proxying to FastAPI;
v2 assets wiring + endpoint contract. Full offline suite: exit 0 (verdict
WQ-0383-D1 at head c1f75fa).

Depends on PR #28 (nginx /stocks whitelist) for the tab to actually get
JSON; merging #28 first or both together is fine — this branch sits on top of
the #28 commit.


Opened by hub-pr for the Hermes lead agent on hub01 (branch hermes/WQ-0383-clean, head 72b665ee178a, 2 commit(s) on main). Not reviewed by a person; merging is the owner's decision.

hermes added 2 commits October 21, 2026 06:52
The classic frontend fetches ${API_BASE}/stocks with API_BASE='' -- the same
no-prefix path shape as the tokens tab -- but the direct-API whitelist regex
in both nginx configs lacked 'stocks', so GET /stocks from a browser fell
through to the static SPA and returned index.html instead of JSON (verified
against the deployed container at 12aed7b: /custom-tokens proxies, /stocks
does not; the FastAPI routes themselves are live in openapi.json).

Adds 'stocks' to the whitelist in nginx.conf + nginx-ssl.conf and pins it
with tests/unit/test_nginx_stocks_route.py (regex emulation: the real client
paths proxy, /stocks.html and /stockings still fall through to the SPA, no
pre-existing prefix lost, both configs identical).
…gacy

User order 2026-10-21: deprecate the old standard dashboard, default
everything to /next; the old dashboard stays reachable at /legacy.

- backend: '/' 302s to /next/; /legacy/ serves the V1 index and
  /legacy/<page> resolves V1 pages (with or without .html). Every old
  V1 URL keeps working unchanged (bookmarks and deep links).
- nginx (both configs): exact 'location = /' 302s to /next/ ahead of the
  SPA try_files fallback; '/legacy' proxies to FastAPI.
- v2 Assets page gains the Stocks tab (WQ-0382 parity): tab button,
  panel, v2 modal for manual add with live ticker validation
  (/stocks/search), tracked-toggle and delete, lazy load on first visit,
  hash routing. New frontend/v2/js/v2-stocks.js.
- cache-bust stamp bumped repo-wide.
- tests: tests/unit/test_next_default_routing.py pins root redirect,
  legacy routes, nginx ordering, and the v2 stocks wiring.
@github-actions

Copy link
Copy Markdown

Overview

Image reference tarrant64/abct:latest tarrant64/abct:pr-29
- digest d95c726e50fc 95a89c29fee0
- tag latest pr-29
- provenance 12aed7b
- vulnerabilities critical: 5 high: 11 medium: 18 low: 64 critical: 4 high: 11 medium: 18 low: 64
- platform linux/amd64 linux/amd64
- size 111 MB 126 MB (+16 MB)
- packages 285 285
Labels (5 changes)
  • - 2 removed
  • ± 3 changed
  • 8 unchanged
 org.opencontainers.image.authors=Chris Catalano
 org.opencontainers.image.base.name=python:3.11-slim
-org.opencontainers.image.created=2026-10-21T04:02:27.450Z
-org.opencontainers.image.description=A Better Crypto Tracker
+org.opencontainers.image.description=Multi-chain cryptocurrency portfolio tracker supporting Cardano, Ethereum, Bitcoin, Solana, Polygon, and Base
 org.opencontainers.image.documentation=https://github.com/Tarrant64/abct/blob/main/README.md
 org.opencontainers.image.icon=https://raw.githubusercontent.com/Tarrant64/abct/main/frontend/static/apple-touch-icon.png
 org.opencontainers.image.licenses=MIT
-org.opencontainers.image.revision=12aed7b446c2375e4edad20a92959022a51773f4
 org.opencontainers.image.source=https://github.com/Tarrant64/abct
-org.opencontainers.image.title=abct
+org.opencontainers.image.title=ABCT - A Better Crypto Tracker
 org.opencontainers.image.url=https://github.com/Tarrant64/abct
 org.opencontainers.image.vendor=ABCT Project
-org.opencontainers.image.version=latest
+org.opencontainers.image.version=1.12.3
Packages and Vulnerabilities (5 package changes and 1 vulnerability changes)
  • ♾️ 5 packages changed
  • 271 packages unchanged
  • ✔️ 1 vulnerabilities removed
Changes for packages of type deb (3 changes)
Package Version
tarrant64/abct:latest
Version
tarrant64/abct:pr-29
♾️ ca-certificates 20250419 20250419+deb13u1
♾️ liblzma5 5.8.1-1+deb13u1 5.8.1-1+deb13u2
♾️ xz-utils 5.8.1-1+deb13u1 5.8.1-1+deb13u2
Changes for packages of type pypi (2 changes)
Package Version
tarrant64/abct:latest
Version
tarrant64/abct:pr-29
♾️ certifi 2026.10.18 2026.10.19
critical: 1 high: 0 medium: 0 low: 0
Removed vulnerabilities (1):
  • critical : GHSA--6q48--6c7w--9gw2
♾️ websockets 17.2 17.3

@Tarrant64
Tarrant64 merged commit 5cc53eb into main Oct 21, 2026
2 checks passed
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