Commit graph

401 commits

Author SHA1 Message Date
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
johba
1372207134 Merge pull request 'fix: LiveStats: show hard error when Ponder is unreachable (not silent skeletons) (#201)' (#238) from fix/issue-201 into master 2026-02-24 23:05:31 +01: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
johba
4125efc8f0 Merge pull request 'fix: Add architectural lint rules with agent-friendly error messages (#232)' (#235) from fix/issue-232 into master 2026-02-24 22:17:00 +01:00
openhands
ee10791764 fix: Add architectural lint rules with agent-friendly error messages (#232) 2026-02-24 20:45:02 +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
johba
e3d45bb8ef Merge pull request 'fix: CollapseHistory: show "—" instead of "0" profit when data unavailable (#207)' (#231) from fix/issue-207 into master 2026-02-24 21:26:18 +01:00
openhands
2fb02bea92 ci: retrigger after infra failure 2026-02-24 19:59:31 +00:00
openhands
c1d337a1de fix: CollapseHistory: show "—" instead of "0" profit when data unavailable (#207) 2026-02-24 19:54:49 +00:00
openhands
ff29f79d8a fix: CollapseHistory: show "—" instead of "0" profit when data unavailable (#207)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-24 19:54:15 +00:00
johba
1bc01c0555 Merge pull request 'fix: Extract duplicated formatTokenAmount to helper.ts (#209)' (#228) from fix/issue-209 into master 2026-02-24 20:46:16 +01:00
openhands
fb887189d4 fix: Extract duplicated formatTokenAmount to helper.ts (#209) 2026-02-24 19:19:25 +00:00
openhands
f3f428f514 fix: Extract duplicated \formatTokenAmount\ to helper.ts (#209)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-24 19:18:45 +00:00
johba
ad781e2a23 Merge pull request 'fix: WalletCard.vue queries wrong GraphQL field (protocolStatssstatss) (#217)' (#225) from fix/issue-217 into master 2026-02-24 20:03:31 +01: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
johba
1c4f0180f8 Merge pull request 'fix: Details (#205)' (#224) from fix/issue-205 into master 2026-02-24 19:33:22 +01:00
openhands
db24b65dd8 fix: Details (#205)
Remove redundant `node_modules/` from onchain/.gitignore — the root
.gitignore already has `**/node_modules/` which covers the entire tree.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-24 18:01:53 +00:00
johba
a83f6a17b8 Merge pull request 'fix: Title (#212)' (#219) from fix/issue-212 into master 2026-02-24 18:55:14 +01: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
johba
2d827a9a7e Merge pull request 'fix: Details (#213)' (#218) from fix/issue-213 into master 2026-02-24 18:23:54 +01:00
openhands
037ae7da77 fix: Details (#213)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-24 17:01:22 +00:00
johba
a1a03f7eea Merge pull request 'fix: onchain/lib/uni-v3-lib always dirty in git (#58)' (#203) from fix/issue-58 into master
Reviewed-on: https://codeberg.org/johba/harb/pulls/203
2026-02-24 17:51:52 +01:00
openhands
af77311dda ci: retrigger after infra failure 2026-02-24 17:51:52 +01:00
openhands
92843d61c0 fix: onchain/lib/uni-v3-lib always dirty in git (#58)
The root .gitignore had a typo: `node-modules` (hyphen) instead of
`node_modules` (underscore), so the glob pattern never matched the
directory that npm creates. The `ignore = dirty` setting in .gitmodules
(added in #147) already suppresses the dirty-submodule report; this
commit corrects the broken pattern so it also provides defence-in-depth
at the parent-repo level.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-24 17:51:52 +01:00
johba
de67b46753 Merge pull request 'fix: Post-purchase holder dashboard on landing page (#150)' (#214) from fix/issue-150 into master 2026-02-24 16:24:56 +01: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
af10dcf4c6 fix: Post-purchase holder dashboard on landing page (#150)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-24 14:23:57 +00:00
openhands
e2ba5c7b62 ci: overlay @harb/ui-shared in webapp and landing CI services (#150)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-24 14:03:11 +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
443eda25cf ci: overlay @harb/ui-shared in webapp and landing CI services (#150)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-24 13:19:06 +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
johba
058451792f Merge pull request 'fix: Snatch notifications and position history (#151)' (#206) from fix/issue-151 into master 2026-02-24 11:25:33 +01:00
openhands
fe1ac68e2d ci: retrigger after infra failure 2026-02-24 09:57:47 +00:00
openhands
deaa87e55a fix: address review findings for snatch notifications (#151)
Replace ambiguous .collapsed-body.history CSS selector with a
component-specific .history-body class in CollapseHistory.vue.
The old compound class shared a name with collapse.sass rules
(.collapsed-body.history { flex-direction: row }) and reviewers
could not confirm the selector matched. The new class is unique
to CollapseHistory, making the flex-column layout and purple
router-link colour unambiguous.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-24 09:47:27 +00:00
openhands
2fffd2a567 fix: address review findings for snatch notifications (#151)
- Extract relativeTime and formatTokenAmount to helper.ts, eliminating
  duplicated logic between CollapseHistory and NotificationBell
- Use formatUnits (via formatTokenAmount) instead of Number(BigInt)/1e18
  to avoid precision loss on large token amounts
- Fix allRecentSnatches emptying after mark-seen: now runs two parallel
  queries — one filtered by lastSeen timestamp (unseen badge count) and
  one unfiltered (panel history), so history is preserved after opening
- Remove dead no-op watch block from useSnatchNotifications

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-24 09:18:28 +00:00
openhands
60d0859eb3 fix: Snatch notifications and position history (#151)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-24 08:47:24 +00:00
johba
f1893d50a0 Merge pull request 'fix: WalletCard.vue GraphQL variables (#191)' (#202) from fix/issue-191 into master 2026-02-24 00:00:39 +01: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
johba
a321849ff6 Merge pull request 'fix: LiveStats: remove floor price from landing, fix ETH reserve data pipeline, strip browser RPC (#196)' (#198) from fix/issue-196 into master 2026-02-23 23:24:09 +01:00
openhands
21ced03423 fix: LiveStats: remove floor price from landing, fix ETH reserve data pipeline, strip browser RPC (#196) 2026-02-23 21:58:08 +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
johba
d398c7667d Merge pull request 'fix: VueQueryPlugin possibly dead dependency (#195)' (#197) from fix/issue-195 into master 2026-02-23 22:44:13 +01: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
johba
134287722b Merge pull request 'feat: Push3 → Solidity transpiler + OptimizerV3 port' (#168) from feat/push3-transpiler into master 2026-02-23 20:02:18 +01:00
openhands
ca2022d83b fix: address PR #168 review findings in OptimizerV3Push3
- Add `require(averageTaxRate <= 1e18, "Invalid tax rate")` to match
  the existing `percentageStaked` guard and prevent silent acceptance
  of out-of-range values.
- Expand contract-level NatSpec with a @dev note clarifying this is an
  equivalence proof only: it intentionally exposes `isBullMarket` alone
  and is not a deployable upgrade (full optimizer interface missing).

All 15 Foundry tests pass (15 unit + fuzz).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-23 18:32:49 +00:00
johba
cd71872fbb Merge pull request 'fix: landing variant tests timeout (networkidle → domcontentloaded)' (#167) from fix/landing-test-networkidle into master
Reviewed-on: https://codeberg.org/johba/harb/pulls/167
2026-02-23 18:24:44 +01:00
openhands
88473fe455 fix: replace networkidle with domcontentloaded in landing variant tests
Vite dev server WebSocket + Umami analytics keep network active,
causing networkidle to never resolve (10min timeout on all 9 tests).
2026-02-23 18:24:14 +01: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
5e8a94b7a9 feat: Push3 → Solidity transpiler + OptimizerV3 port 2026-02-23 14:47:38 +00:00