- Update all AGENTS.md watermarks to HEAD (b276392)
- Clean up dust.jsonl: remove already-bundled items (601,627,739,741)
- Pending actions: promote #1099/#1100/#1101 to backlog, close stale
prediction issues #1020/#1103/#1107, comment on partial resolution
of #1022 (holdout resolved, user-test still empty)
Add SecurityInfo component displayed after LiveStats on the landing page:
- Unaudited badge with planned Q3 2026 audit date
- KRAIKEN Token and Stake contract addresses with copy-to-clipboard buttons
- BaseScan and source code links
- Responsive layout for mobile viewports
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Update the embedded _scrapePositions definition to accept (bool recordVWAP,
int24 currentTick), compute currentPrice directly from the passed tick
instead of sampling the ANCHOR position's centre tick, remove the
ANCHOR-specific price-sampling branch from the loop, and replace the old
split fee+VWAP transfer logic with the current contract's structure:
feeDestination != address(this) guard before transfers, single ethFee
branch for VWAP recording.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Remove the obsolete recenterAccess pattern from the liquidityManagerSol
snippet: drop the recenterAccess state variable, setRecenterAccess(),
revokeRecenterAccess(), and onlyFeeDestination modifier. Update recenter()
to reflect the current cooldown-only access model, fix the VWAP direction
logic, and update the _scrapePositions() call signature to match
LiquidityManager.sol.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Replace "Open Source." with "On-Chain." — the repo is private so "open
source" is a false claim per PRODUCT-TRUTH.md §Code/Open Source and
UX-DECISIONS.md §Don't Say. "On-Chain." is accurate and consistent with
the subtitle already present in the section.
Also remove duplicate garbled sentence in the Adaptive Trading card
("The optimizer evolves — new versions ship as the protocol matures."
was a copy-paste repeat of the preceding clause).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Replace vague "Open." with "Open Source." in the trust section heading
to give the claim concrete meaning and match the Source Code link below.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add /:pathMatch(.*)* catch-all route that redirects to / so unknown
URLs no longer render blank
- Replace German inline comments in scrollBehavior with English equivalents
- Remove seven dead `// group: "navbar"` comments from /docs route and its
child routes (the live group: 'navbar' property on the parent is kept)
- HomeView.vue and HomeViewMixed.vue already carry the renamed
"Verified On-Chain" heading with supporting copy; no changes needed there
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Remove redundant `node_modules/` entries from sub-directory .gitignore
files. The root `.gitignore` already has `**/node_modules/` which covers
all nested directories, making these per-package entries unnecessary.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- 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>
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>
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>
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>
- 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
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>