Commit graph

50 commits

Author SHA1 Message Date
openhands
56d15a40f6 fix: Fix false claims on landing: "cant go to zero" + "open source" (#269)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-25 20:33:01 +00:00
openhands
ede53a9dd3 fix: Fix false claims on landing: "cant go to zero" + "open source" (#269)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-25 20:02:02 +00:00
openhands
afaf675f2a fix: Landing: switch from hash routing to history routing (clean URLs) (#270)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-25 19:21:53 +00:00
openhands
d1d943e5fd fix: Micro-fixes: dead comment, timer null, AbortController, address guard, catch reset (#261)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-25 07:24:48 +00:00
openhands
9a420ae77a fix: Add aria-label attributes to landing buttons (#243)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-24 22:15:26 +00:00
openhands
3426fbf80b fix: LiveStats: show hard error when Ponder is unreachable (not silent skeletons) (#201)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-24 21:33:50 +00:00
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
openhands
541ff2df93 fix: WalletCard.vue queries wrong GraphQL field (protocolStatssstatss) (#217)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-24 18:41:37 +00:00
openhands
14da7d9a09 fix: Title (#212)
Add trailing slash to node_modules entries in sub-package .gitignore
files so they match only directories, not files named node_modules.
The root .gitignore already uses **/node_modules/ (fixed in #203);
these per-package entries were also missing the slash.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-24 17:32:47 +00:00
openhands
fad6486152 fix: Post-purchase holder dashboard on landing page (#150)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-24 15:02:22 +00:00
openhands
b228482694 fix: resolve @harb/ui-shared via Vite alias in webapp and landing (#150)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-24 13:42:22 +00:00
openhands
e89fd4013d fix: Post-purchase holder dashboard on landing page (#150)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-24 12:34:36 +00:00
openhands
4e90411b15 fix: \WalletCard.vue\ GraphQL variables (#191)
Refactor address interpolation in fetchWalletData to use a proper
GraphQL variables object instead of embedding the address directly
in the query string template literal.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-23 22:30:55 +00:00
openhands
7219f1b21c fix: LiveStats: remove floor price from landing, fix ETH reserve data pipeline, strip browser RPC (#196)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-23 21:57:13 +00:00
openhands
b66a8afcaa fix: \VueQueryPlugin\ possibly dead dependency (#195)
Clarify that @tanstack/vue-query is a required peer dependency of
@wagmi/vue, not a dead import. Add a comment in main.ts explaining the
rationale, and document the dependency in ARCHITECTURE.md and
landing/AGENTS.md.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-23 21:13:02 +00:00
openhands
491c8f65b6 fix: resolve stack-too-deep in EthScarcityAbundance test
Extract _decodeVwapTick and _logEvent helpers to reduce stack depth
in _recenterAndLog. Also add via_ir=true to maxperf profile.
2026-02-23 17:10:01 +00:00
openhands
a46c30cff6 fix: landing page user test fixes (#162)
- Add VueQueryPlugin to landing main.ts (wagmi/vue requires it)
- Add Vite proxy for /api/graphql → ponder:42069/graphql
- Replace axios with native fetch in WalletCard.vue
- Add navigateTo() for CTA buttons (uses VITE_APP_URL env)
- Load contract addresses from bootstrap in landing entrypoint
- Add via_ir to foundry.toml (OptimizerV3Push3 stack-too-deep)
- Add VITE_APP_URL env to docker-compose landing service

Fixes: blank landing pages, broken LiveStats, missing CTA links,
missing contract addresses in footer
2026-02-23 14:47:38 +00:00
openhands
878d1337df fix: Clean up dead code and stale domain references across landing + web-app (#189)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-23 13:04:02 +00:00
openhands
6c1217f451 fix: address review — soften AI claim to autonomous system (#176) 2026-02-22 23:36:19 +00:00
openhands
4287dc2f1a fix: address review — soften claims, remove redundancy (#176) 2026-02-22 23:36:19 +00:00
openhands
45b997bef6 fix: address review — remove false admin key claims, soften floor language (#176) 2026-02-22 23:36:19 +00:00
openhands
9f1c255e13 feat: expand autonomous protocol narrative, adopt token-owned-liquidity language (#176) 2026-02-22 23:36:19 +00:00
johba
8a5a4f7e6d Merge pull request 'feat: add live indicator and freshness display to LiveStats (#172)' (#179) from fix/issue-172 into master 2026-02-23 00:36:04 +01:00
openhands
a8f62e2357 fix: start freshness ticker after first data load (#172) 2026-02-22 23:01:42 +00:00
openhands
1b55ae8ac8 fix: address review — error state for live indicator (#172) 2026-02-22 22:12:38 +00:00
openhands
7d5d8cabb2 feat: add live indicator and freshness display to LiveStats (#172)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 21:42:31 +00:00
openhands
85cd5a8986 feat: add Code docs page with contract source + copy buttons (#174)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 21:41:43 +00:00
openhands
ae44bddf7f fix: address review — floor price null guard, fetch timeout (#171) 2026-02-22 21:21:45 +00:00
openhands
c374e29817 fix: show USD values in LiveStats, fix floor price truncation (#171)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 20:53:24 +00:00
openhands
d72c2d14bf fix: remove console.warn to pass lint (#170) 2026-02-22 19:48:39 +00:00
openhands
bd5c661504 fix: address review — ring buffer validation, div-by-zero, sparkline alignment
- Add ringBuffer length validation in extractSeries and extractSupplySeries
- Fix division-by-zero when oldest holder count is 0
- Align supply series start with other series (consistent pre-launch skip)
- Center flat sparklines vertically instead of pinning to bottom
2026-02-22 19:47:28 +00:00
openhands
0fb1ed4bf8 fix: address review — migration comment, link ring buffer constants (#170) 2026-02-22 18:56:36 +00:00
openhands
3fceb4145a feat: replace tax with holders in ring buffer, add sparkline charts (#170)
Ring buffer slot 3 now stores holderCount snapshots instead of tax deltas.
Tax tracking simplified to a totalTaxPaid counter on the stats record.
Removed unbounded ethReserveHistory and feeHistory tables; 7d ETH reserve
growth is now computed from the ring buffer. LiveStats renders inline SVG
sparklines for ETH reserve, supply, and holders with holder growth %.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 18:56:36 +00:00
openhands
8e93253b5c feat: make How It Works CTA prominent, add crypto-native tagline (#175) 2026-02-22 17:39:33 +00:00
openhands
533c5755b5 fix: remove staking references from landing page
Landing page sells the token, not staking. Staking is password-protected
for insiders — not advertised to casual visitors.

- 'Stake in 30 Seconds' → 'Get $KRK in 30 Seconds' (Mixed)
- 'Stake & Grow' → 'Get $KRK' (Offensive)
- Remove 'staker sentiment' from HomeView copy
- Add staking visibility rule to UX-DECISIONS.md
2026-02-22 16:49:02 +00:00
openhands
6304cca556 fix: replace Start Earning messaging with accurate staking positioning (#173) 2026-02-22 11:34:48 +00:00
johba
1e0822eaa2 fix: clean URLs, contract addresses, gitmodule (#16, #58, #147) (#162) 2026-02-20 17:28:59 +01:00
johba
d9b5131101 fix: Get KRK local swap, WalletCard on all variants (#146, #150) (#165) 2026-02-20 09:18:51 +01:00
johba
fe02ffd12d copy: remove AI claims, reframe as adaptive protocol (#160) 2026-02-20 09:00:34 +01:00
openhands
6893d4065f chore: remove unused assets (header-imageold.png, test artifacts) 2026-02-19 20:07:49 +00:00
johba
db3633425a feat: shared @harb/web3 package + landing wallet connect (#157) (#159) 2026-02-19 20:18:27 +01:00
johba
76b2635e63 Replace UBI with ETH reserve in ring buffer, fix Dockerfile HEALTHCHECK, enhance LiveStats (#154) 2026-02-19 14:47:15 +01:00
johba
31063379a8 feat/ponder-lm-indexing (#142) 2026-02-18 00:19:05 +01:00
openhands
85350caf52 feat: OptimizerV3 with direct 2D staking-to-LP parameter mapping
Core protocol changes for launch readiness:

- OptimizerV3: binary bear/bull mapping from (staking%, avgTax) — avoids
  exploitable AW 30-90 kill zone. Bear: AS=30%, AW=100, CI=0, DD=0.3e18.
  Bull: AS=100%, AW=20, CI=0, DD=1e18. UUPS upgradeable with __gap[48].
- Directional VWAP: only records prices on ETH inflow (buys), preventing
  sell-side dilution of price memory
- Floor formula: unified max(scarcity, mirror, clamp) — VWAP mirror uses
  distance from adjusted VWAP as floor distance, no branching
- PriceOracle (M-1 fix): correct fallback TWAP divisor (60000s, not 300s)
- Access control (M-2 fix): deployer-only guard on one-time setters
- Recenter rate limit (M-3 fix): 60-second cooldown for open recenters
- Safe fallback params: recenter() optimizer-failure defaults changed from
  exploitable CI=50%/AW=50 to safe bear-mode CI=0/AW=100
- Recentered event for monitoring and indexing
- VERSION bump to 2, kraiken-lib COMPATIBLE_CONTRACT_VERSIONS updated

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 18:21:18 +00:00
johba
4277f19b68 feature/ci (#84)
Co-authored-by: openhands <openhands@all-hands.dev>
Reviewed-on: https://codeberg.org/johba/harb/pulls/84
2026-02-02 19:24:57 +01:00
johba
2acb619a11 feat(landing): add strict ESLint + Prettier with pre-commit hooks (#50)
- Install ESLint 9 with flat config, TypeScript, Vue plugins
- Configure Prettier (140 char, 2-space indent, single quotes)
- Add pre-commit hooks via husky + lint-staged for auto-fix
- Rename components to multi-word (Countdown → CountdownTimer, etc.)
- Add explicit TypeScript prop/emit interfaces
- Remove all console.log statements
- Fix all ESLint violations and type errors
- Verify type-check, build, and HMR working

resolves #43

Co-authored-by: johba <johba@harb.eth>
Reviewed-on: https://codeberg.org/johba/harb/pulls/50
2025-10-03 13:19:20 +02:00
johba
3ab2d9454a health checks (#39)
resolves #35

Co-authored-by: openhands <openhands@all-hands.dev>
Co-authored-by: johba <johba@harb.eth>
Reviewed-on: https://codeberg.org/johba/harb/pulls/39
2025-10-02 14:37:59 +02:00
johba
f3fb0f142a fix agent 2025-09-24 09:57:20 +02:00
johba
25fc4a4c4d more logic to lib 2025-09-23 16:57:49 +02:00
johba
769fa105b8 added web-app and landing 2025-09-23 14:18:04 +02:00