harb/web-app
openhands 0d761744df fix: Add architectural lint rules with agent-friendly error messages (#232)
- landing/eslint.config.js: ban imports from web-app paths (rule 1),
  direct RPC clients from viem/@wagmi/vue (rule 2), and axios (rule 4)
- web-app/eslint.config.js: ban string interpolation inside GraphQL
  query/mutation property values (rule 3); fixes 4 pre-existing violations
  in usePositionDashboard, usePositions, useSnatchNotifications,
  useWalletDashboard by migrating to variables: {} pattern
- services/ponder/eslint.config.js: ban findMany() calls that lack a
  limit parameter to prevent unbounded indexed-data growth (rule 5)

All error messages follow the [what is wrong][rule][how to fix][where to
read more] template so agents and humans fix on the first try.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-24 20:44:17 +00:00
..
public feat/ponder-lm-indexing (#142) 2026-02-18 00:19:05 +01:00
src fix: Add architectural lint rules with agent-friendly error messages (#232) 2026-02-24 20:44:17 +00:00
.gitignore fix: Title (#212) 2026-02-24 17:32:47 +00:00
.lintstagedrc.json webapp - ESLint + Prettier with pre-commit hooks (#54) 2025-10-03 16:51:44 +02:00
.prettierrc webapp - ESLint + Prettier with pre-commit hooks (#54) 2025-10-03 16:51:44 +02:00
AGENTS.md docs: consolidate and update all documentation for launch readiness 2026-02-13 19:22:34 +00:00
eslint.config.js fix: Add architectural lint rules with agent-friendly error messages (#232) 2026-02-24 20:44:17 +00:00
index.html added web-app and landing 2025-09-23 14:18:04 +02:00
package-lock.json feature/ci (#84) 2026-02-02 19:24:57 +01:00
package.json feat: shared @harb/web3 package + landing wallet connect (#157) (#159) 2026-02-19 20:18:27 +01:00
README.md refactor: consolidate CI and local dev orchestration (#108) 2026-02-03 12:07:28 +01:00
tsconfig.app.json feature/ci (#84) 2026-02-02 19:24:57 +01:00
tsconfig.json added web-app and landing 2025-09-23 14:18:04 +02:00
tsconfig.node.json added web-app and landing 2025-09-23 14:18:04 +02:00
vite.config.ts feature/ci (#84) 2026-02-02 19:24:57 +01:00
vitest.config.ts Extract snatch selection into reusable composable (#30) 2025-09-30 20:35:47 +02:00

harb staking

This template should help get you started developing with Vue 3 in Vite.

VSCode + Volar (and disable Vetur).

Type Support for .vue Imports in TS

TypeScript cannot handle type information for .vue imports by default, so we replace the tsc CLI with vue-tsc for type checking. In editors, we need Volar to make the TypeScript language service aware of .vue types.

Customize configuration

See Vite Configuration Reference.

Project Setup

npm install

Compile and Hot-Reload for Development

npm run dev

Type-Check, Compile and Minify for Production

npm run build

Testing

Accessibility Hooks

The staking form now exposes semantic controls that Playwright can exercise directly:

  • Slider: page.getByRole('slider', { name: 'Token Amount' })
  • Amount input: page.getByLabel('Staking Amount')
  • Tax selector: page.getByLabel('Tax')

Tests should rely on these roles and labels instead of private helpers.

E2E Tests

Run npm run test:e2e from the repo root. Tests use Playwright against the full Docker stack. In CI, the Woodpecker e2e pipeline handles this automatically.