Skip to content

feat(miner-ui): scaffold apps/gittensory-miner-ui/ dashboard shell #4303

Description

@JSONbored

apps/gittensory-ui (the existing main web app, apps/gittensory-ui/package.json) is the real, live stack to mirror for conventions: TanStack Start/Router (@tanstack/react-start, @tanstack/react-router, @tanstack/router-plugin), React 19, Vite, Tailwind v4 + Radix/shadcn primitives, ESLint/Prettier configs matching the monorepo's shared style. The root package.json's workspaces field is already ["apps/*", "packages/*"] (package.json:7-10), so a new apps/gittensory-miner-ui/ package is automatically picked up with no extra registration.

One thing NOT to copy: apps/gittensory-ui deploys as a Cloudflare Worker (wrangler.jsonc, deploy:built: wrangler deploy --config dist/server/wrangler.json) and depends on @lovable.dev/vite-tanstack-config, a Lovable-authored scaffold tool specific to that app's own origin — and this repo's contributing guide explicitly keeps contributions out of **/lovable/**. The miner dashboard is a local, read-only view over a laptop/fleet miner instance's own SQLite state (packages/gittensory-miner/DEPLOYMENT.md's stated invariant: "100% client-side... never requires a hosted Gittensory callback to boot") — it should not default to a Cloudflare Worker deploy target or take on the Lovable tooling dependency; a plain local Vite dev server (or a small static build the CLI can serve) fits the miner's own "no required phone-home" posture better. Flag this as a decision in the PR rather than silently inheriting gittensory-ui's deploy model.

Deliverables

  • apps/gittensory-miner-ui/ scaffold: package.json, TanStack Router + React + Vite + Tailwind, matching apps/gittensory-ui's dependency versions where practical (React 19, @tanstack/react-router, etc.) so the two apps don't drift on shared tooling versions unnecessarily.
  • ESLint/Prettier config consistent with apps/gittensory-ui/eslint.config.js / .prettierrc.
  • No Cloudflare/wrangler deploy target and no @lovable.dev/* dependency — local dev server only for this issue; note explicitly in the scaffold's README why (the miner's client-side-only invariant).
  • An empty shell: routing/layout scaffold only, no data views yet — the run-history table and portfolio/queue summary cards are separate, dependent Phase 6 issues.
  • typecheck/lint/test/build scripts matching the monorepo's existing per-app script naming convention (see apps/gittensory-ui/package.json's scripts block).

References

  • apps/gittensory-ui/package.json — the stack/dependency versions and script-naming convention to mirror.
  • package.json:7-10 (root workspaces array) — confirms no extra registration step is needed beyond adding the directory.
  • packages/gittensory-miner/DEPLOYMENT.md — the "100% client-side... no required phone-home" invariant this app's deploy model must respect.
  • This repo's contributing guide's **/lovable/** exclusion — this scaffold must not reintroduce that dependency.

Metadata

Metadata

Assignees

No one assigned

    Labels

    gittensor:featureGittensor-scored feature linked to a feature issue — scores a 0.25x multiplier.help wantedExtra attention is needed

    Projects

    Status
    Done

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions