Commit graph

447 commits

Author SHA1 Message Date
openhands
143d6b202a fix: Landing copy: fix immutable overclaim + sync Mixed variant floor copy (#310)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-26 13:40:34 +00:00
johba
ed24a166ab Merge pull request 'fix: Test coverage: Kraiken + VWAPTracker to 100% (#283)' (#303) from fix/issue-283 into master 2026-02-26 06:34:08 +01:00
openhands
e9370c143e fix: Test coverage: Kraiken + VWAPTracker to 100% (#283)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-26 05:12:48 +00:00
johba
2baa913435 Merge pull request 'fix: Test coverage: Stake.sol to 100% (#284)' (#298) from fix/issue-284 into master 2026-02-26 05:54:53 +01:00
openhands
cff95a3670 fix: Test coverage: Stake.sol to 100% (#284) 2026-02-26 04:28:47 +00:00
openhands
93ddd28978 fix: Test coverage: Stake.sol to 100% (#284)
Add 11 new targeted tests in Stake.t.sol to cover all reachable
uncovered branches and the untested permitAndSnatch() function:

- testRevert_TaxRateOutOfBounds_InSnatch: taxRate >= TAX_RATES.length in snatch()
- testRevert_PositionNotFound_NonLastInLoop: PositionNotFound inside the multi-position loop
- testRevert_TaxTooLow_NonLastInLoop: TaxTooLow inside the multi-position loop
- testSnatch_ExitLastPosition: _exitPosition() path for last snatched position
- testRevert_ExceededAvailableStake: no available stake, no positions provided
- testRevert_TooMuchSnatch_AvailableExceedsNeed: post-exit excess stake check
- testRevert_PositionNotFound_InChangeTax: changeTax() on non-existent position
- testRevert_TaxTooLow_InChangeTax: changeTax() with same/lower tax rate
- testRevert_NoPermission_InExitPosition: exitPosition() by non-owner
- testRevert_PositionNotFound_InPayTax: payTax() on non-existent position
- testPermitAndSnatch: EIP-712 permit + snatch in one transaction

Coverage achieved:
  Lines:     99.33% (148/149)
  Statements: 99.40% (167/168)
  Branches:  93.55% (29/31)  — 2 unreachable dead-code branches remain
  Functions: 100.00% (15/15)

The 2 uncovered branches are dead code: the require() failure in
_shrinkPosition (caller always guards sharesToTake < pos.share) and
the PositionNotFound guard in exitPosition() (unreachable because
owner and creationTime are always set/cleared together, so
pos.owner==msg.sender implies pos.creationTime!=0 for any live caller).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-26 03:59:20 +00:00
johba
a7947c64c8 Merge pull request 'fix: Test coverage: LiquidityManager + Optimizer + OptimizerV3 to 100% (#285)' (#296) from fix/issue-285 into master 2026-02-26 04:07:11 +01:00
openhands
9cce524b8a fix: Test coverage: LiquidityManager + Optimizer + OptimizerV3 to 100% (#285)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-26 02:41:02 +00:00
johba
b161b4ecfb Merge pull request 'fix: kraiken-lib: fix broken tests + raise coverage to 95% (#286)' (#293) from fix/issue-286 into master 2026-02-26 02:32:27 +01:00
openhands
dc95b2d22e fix: kraiken-lib: fix broken tests + raise coverage to 95% (#286)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-26 01:09:55 +00:00
openhands
2aa85f5a03 fix: CI failure in run-e2e-tests (#286) 2026-02-26 00:42:32 +00:00
openhands
e5bd4f29f7 fix: kraiken-lib: fix broken tests + raise coverage to 95% (#286)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-26 00:42:21 +00:00
openhands
baa4ee2404 fix: CI failure in bootstrap (#286) 2026-02-26 00:27:23 +00:00
openhands
f23f6b81a6 fix: kraiken-lib: fix broken tests + raise coverage to 95% (#286)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-26 00:27:12 +00:00
openhands
15b0c0e97b fix: kraiken-lib: fix broken tests + raise coverage to 95% (#286) 2026-02-26 00:11:20 +00:00
openhands
26a9645b1f fix: kraiken-lib: fix broken tests + raise coverage to 95% (#286)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-26 00:10:45 +00:00
johba
cc064faa29 Merge pull request 'fix: Ponder: add test infrastructure + coverage for helpers (target 95%) (#287)' (#288) from fix/issue-287 into master 2026-02-26 00:55:20 +01:00
openhands
16dc1827c9 fix: Ponder: add test infrastructure + coverage for helpers (target 95%) (#287)
- vitest.config.ts: add statements/functions/branches thresholds alongside
  lines so the coverage gate catches regressions in all four dimensions
- tests/stats.test.ts: replace weak "> 0n" / "toBeDefined()" assertions with
  exact expected values derived from the ring buffer algebra:
  - hour-advanced path: mintedLastWeek=480n, mintedLastDay=220n,
    burnedLastWeek=240n, burnedLastDay=110n, mintNextHourProjected=68n,
    burnNextHourProjected=34n, netSupplyChangeDay=110n,
    netSupplyChangeWeek=240n
  - same-hour projection path: mintNextHourProjected=140n (elapsed-seconds
    scaling verified), burnNextHourProjected=0n (medium=0 fallback path)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-25 23:28:25 +00:00
openhands
76560fd26b fix: Ponder: add test infrastructure + coverage for helpers (target 95%) (#287)
- Add vitest ^2 + @vitest/coverage-v8 ^2 as devDependencies
- Add `test` and `test:coverage` scripts to package.json
- Create vitest.config.ts with resolve.alias to mock ponder virtual modules
  (ponder:schema, ponder:registry) and point kraiken-lib/version to source
- Add coverage/ to .gitignore
- Add tests/**/* and vitest.config.ts to tsconfig.json include
- Create tests/__mocks__/ponder-schema.ts and ponder-registry.ts stubs
- Create tests/stats.test.ts — 48 tests covering ring buffer logic,
  segment updates, hourly advancement, projections, ETH reserve snapshots,
  all exported async helpers with mock Ponder contexts
- Create tests/version.test.ts — 14 tests covering isCompatibleVersion,
  getVersionMismatchError, and validateContractVersion (compatible / mismatch /
  error paths, existing-meta upsert path)
- Create tests/abi.test.ts — 6 tests covering validateAbi and validateContractAbi

Tests placed at tests/ (not src/tests/) so Ponder's Vite build does not
attempt to execute test files as event handlers on startup.

Result: 68 tests pass, 100% line/statement/function coverage on all helpers
(stats.ts, version.ts, abi.ts, logger.ts) — exceeds 95% target.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-25 22:53:01 +00:00
openhands
ad0670f8ae fix: Ponder: add test infrastructure + coverage for helpers (target 95%) (#287) 2026-02-25 22:30:24 +00:00
openhands
e49938bd0a fix: Ponder: add test infrastructure + coverage for helpers (target 95%) (#287)
- Add vitest ^2 + @vitest/coverage-v8 ^2 as devDependencies
- Add `test` and `test:coverage` scripts to package.json
- Create vitest.config.ts with resolve.alias to mock ponder virtual modules
  (ponder:schema, ponder:registry) and point kraiken-lib/version to source
- Add coverage/  to .gitignore
- Add vitest.config.ts to tsconfig.json include so eslint project-aware rules apply
- Create src/tests/__mocks__/ponder-schema.ts and ponder-registry.ts stubs
- Create src/tests/stats.test.ts — 48 tests covering ring buffer logic,
  segment updates, hourly advancement, projections, ETH reserve snapshots,
  all exported async helpers with mock Ponder contexts
- Create src/tests/version.test.ts — 14 tests covering isCompatibleVersion,
  getVersionMismatchError, and validateContractVersion (compatible / mismatch /
  error paths, existing-meta upsert path)
- Create src/tests/abi.test.ts — 6 tests covering validateAbi and
  validateContractAbi

Result: 68 tests pass, 100% line/statement/function coverage on all helpers
(stats.ts, version.ts, abi.ts, logger.ts) — exceeds 95% target.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-25 22:29:57 +00:00
johba
24b3cf2836 Merge pull request 'fix: Consolidate redundant/broken gitignore node_modules entries (#204)' (#279) from fix/issue-204 into master 2026-02-25 22:42:30 +01:00
openhands
dd2e2ec25c fix: Consolidate redundant/broken gitignore node_modules entries (#204)
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>
2026-02-25 21:13:16 +00:00
johba
352b31e10a Merge pull request 'fix: Fix false claims on landing: "cant go to zero" + "open source" (#269)' (#275) from fix/issue-269 into master 2026-02-25 22:01:43 +01:00
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
04e9d04df5 fix: Fix false claims on landing: "cant go to zero" + "open source" (#269) 2026-02-25 20:02:15 +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
johba
d540e23ee1 Merge pull request 'fix: Landing: switch from hash routing to history routing (clean URLs) (#270)' (#271) from fix/issue-270 into master 2026-02-25 20:56:00 +01: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
johba
798382e9bf Merge pull request 'fix: Fix collapse component formatting: taxPaid display, string coercion, BigInt precision (#260)' (#266) from fix/issue-260 into master 2026-02-25 09:33:21 +01:00
openhands
91de4d9751 fix: Fix collapse component formatting: taxPaid display, string coercion, BigInt precision (#260) 2026-02-25 08:07:30 +00:00
openhands
ca8e4737fe fix: Fix collapse component formatting: taxPaid display, string coercion, BigInt precision (#260)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-25 08:06:49 +00:00
johba
f3383dce01 Merge pull request 'fix: Micro-fixes: dead comment, timer null, AbortController, address guard, catch reset (#261)' (#263) from fix/issue-261 into master 2026-02-25 08:52:06 +01: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
johba
95955f23a3 Merge pull request 'fix: Dead comment in NavbarLayout.vue (#258)' (#262) from fix/issue-258 into master 2026-02-25 08:11:05 +01:00
openhands
bef804ca80 fix: Dead comment in NavbarLayout.vue (#258)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-25 06:42:34 +00:00
johba
9203b5c17a Merge pull request 'fix: Remove unused components from web-app (#242)' (#257) from fix/issue-242 into master 2026-02-25 07:36:21 +01:00
openhands
e394d68772 fix: Remove unused components from web-app (#242)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-25 00:24:29 +00:00
johba
cbdc9a09da Merge pull request 'fix: CollapseHistory: format profit display + fix package.json name for stable lock file (#245)' (#253) from fix/issue-245 into master 2026-02-25 01:14:29 +01:00
openhands
ca68c339ed fix: CollapseHistory: format profit display + fix package.json name for stable lock file (#245)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-24 23:43:15 +00:00
johba
4b10dc91c3 Merge pull request 'fix: Move BigInt formatting functions from helper.ts to kraiken-lib/format (#246)' (#250) from fix/issue-246 into master 2026-02-25 00:34:32 +01:00
openhands
1ee29c7ba7 ci: retrigger after infra failure 2026-02-24 23:12:46 +00:00
openhands
a96cdc8161 fix: Move BigInt formatting functions from helper.ts to kraiken-lib/format (#246) 2026-02-24 23:01:26 +00:00
openhands
8c43d3890c fix: Move BigInt formatting functions from helper.ts to kraiken-lib/format (#246)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-24 23:00:58 +00:00
johba
0f74cc8276 Merge pull request 'fix: Add aria-label attributes to landing buttons (#243)' (#244) from fix/issue-243 into master 2026-02-24 23:42:33 +01:00
openhands
0a59ea5356 fix: Add aria-label attributes to landing buttons (#243) 2026-02-24 22:15:40 +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
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