Commit graph

25 commits

Author SHA1 Message Date
openhands
82f1548856 fix: parallelize ci.yml steps with depends_on (#1052)
Add depends_on declarations so independent CI steps run in parallel.
Steps needing submodules (foundry-suite, contracts-local-fork,
evolution-tests, node-quality) wait for bootstrap-deps; lightweight
checks (single-package-manager, validate-evolution-patch,
optimizer-not-mutated, transpiler-tests) start immediately.

Critical path: bootstrap-deps (50s) + max(node-quality 400s) ≈ 450s
(was ~630s sequential).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 12:47:58 +00:00
openhands
1f96e62fc8 fix: No CI pipeline coverage for push3-evolution or push3-transpiler tests (#563)
Add evolution-tests step to Woodpecker CI pipeline. The transpiler-tests
step already existed; the new step runs push3-evolution's vitest suite
and triggers on changes to either tools/push3-evolution or
tools/push3-transpiler (since evolution imports the transpiler's parser).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 07:57:46 +00:00
openhands
793d875b4a fix: No tests for transpiler stack-depth validation (#619)
Add TypeScript unit test suite for the Push3 transpiler using Node's
built-in test runner (node:test) with tsx. 47 tests across 12 suites
covering parser, stack underflow/overflow, EXEC.IF balanced/unbalanced/
nested branching, arithmetic, boolean ops, name binding, and integration.

Update CI to run `npm test` (which now includes unit tests + existing
bash tests) and scope transpiler-tests step to only trigger on changes
to tools/push3-transpiler/**.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 03:29:45 +00:00
openhands
af2f7e6115 fix: OptimizerV3.sol mutation has no CI guard (#631)
batch-eval.sh mutates OptimizerV3.sol by injecting Push3 candidates but
never restores it on exit. Add a backup/restore trap so the file is
always returned to its committed state, and add a CI step that fails
loudly if OptimizerV3.sol is left dirty after any pipeline step.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 22:36:49 +00:00
openhands
d0131b06c2 ci: exclude formulas/ and evidence/ from build and e2e pipelines
These directories contain TOML process definitions and JSON evidence
files — no code changes that need testing. Also excludes docs/ and
*.md from the main CI pipeline (e2e already excluded these).

Prepares for formula and evidence PRs landing without triggering
unnecessary CI runs.
2026-03-19 07:34:38 +01:00
openhands
283fbcaf6b fix: No CI step validates npm run build or npm run transpile for the push3-transpiler (#860) 2026-03-18 23:06:49 +00:00
openhands
57b83b6fe9 fix: evolution.patch has no apply-validation step in CI or evolve.sh (#866)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-18 18:49:23 +00:00
openhands
1fe5673ce5 fix: No forge compile verification in transpiler CI (#904)
- test_transpiler_clamping.sh: add Test 11 that runs forge build on the
  valid Solidity output from Test 6; fails if the transpiled contract
  does not compile (regression guard for #900)
- test_inject_extraction.sh: add SCRIPT_DIR, then Test 5 that transpiles
  optimizer_seed.push3 and runs forge build on the generated contract;
  ensures the full push3→Solidity→compile pipeline stays green
- .woodpecker/ci.yml: add transpiler-tests step that installs npm deps
  and runs both test scripts with forge on PATH

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-18 13:11:33 +00:00
openhands
45770d274f fix: webapp-entrypoint.sh and e2e.yml hardcode Sepolia SwapRouter (#951) 2026-03-18 11:07:17 +00:00
openhands
22e328e12b ci: use local git mirror as clone reference
Eliminates Codeberg git clone rate limiting. The mirror at
/git-mirrors/harb.git (synced every 2 min) provides objects locally,
so the clone step only fetches deltas from Codeberg.

Volume mounted via WOODPECKER_BACKEND_DOCKER_VOLUMES.
2026-03-14 12:44:08 +00:00
johba
e484d4b03a feat: issue templates — bug, feature, push3-seed, refactor (#678)
Four templates for Codeberg issue creation:

- **Bug** — what, repro steps, affected files, acceptance criteria
- **Feature** — problem, solution, affected files (incl e2e tests), max 5 acceptance criteria
- **Push3 Seed** — strategy philosophy, behavior spec, pre-filled reference files + register mapping
- **Refactor** — what, approach, affected files, risks

All templates require affected files and acceptance criteria — the two things the dev-agent needs most. Push3 seed template has pre-filled deps (#667) and reference docs.

Gardener agent can enforce these on unstructured issues that come in without templates.

Co-authored-by: openhands <openhands@all-hands.dev>
Reviewed-on: https://codeberg.org/johba/harb/pulls/678
Reviewed-by: review_bot <review_bot@noreply.codeberg.org>
2026-03-13 13:02:50 +01:00
openhands
8735d096e7 ci: skip e2e for tools-only and docs-only PRs
Path filter excludes tools/**, FitnessEvaluator*, docs/**, *.md.
Branch protection now requires ci/woodpecker/pr/ci (always runs)
instead of e2e (which may be skipped).
2026-03-12 21:43:09 +00:00
openhands
57f2057a4c fix: overlay @harb/utils into CI webapp container
The webapp-ci Docker image predates packages/utils. The e2e.yml webapp
service already overlays packages/web3 manually; add the same pattern
for packages/utils so Vite can resolve @harb/utils imports at runtime.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-03 06:21:22 +00:00
openhands
7296852d0e fix: migrate test 02 swap to get-krk page; add VITE_ENABLE_LOCAL_SWAP to CI
- Update 02-max-stake-all-tax-rates.spec.ts to buy KRK via /app/get-krk
  instead of the removed cheats-page swap card
- Add VITE_ENABLE_LOCAL_SWAP=true to the webapp CI service so
  LocalSwapWidget renders in the e2e pipeline

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-02 07:23:31 +00:00
openhands
ab68e0cb68 fix: Dual package managers: both package-lock.json and yarn.lock tracked (#343)
Remove kraiken-lib/yarn.lock (npm is the sole package manager per CI and
build scripts), add packageManager field to kraiken-lib/package.json to
make the intent explicit, and add a single-package-manager CI step that
fails the build if yarn.lock reappears in kraiken-lib/.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-28 10:51:59 +00:00
openhands
1b647f844a ci: fix clone auth — move netrc creds from environment to settings
woodpeckerci/plugin-git reads credentials via PLUGIN_NETRC_* env vars
(set from settings:), not CI_NETRC_* (set from environment:). The
previous fix in 57deaaa put the secret under environment:, so the
plugin never populated .netrc and git fell back to prompting, which
fails with GIT_TERMINAL_PROMPT=0.

Fix both ci.yml and e2e.yml.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-27 09:41:51 +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
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
57deaaaf8f ci: fix clone auth with codeberg_token secret 2026-02-22 16:07:07 +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
johba
e5e1308e72 refactor: consolidate CI and local dev orchestration (#108)
## Summary
- Extract shared bootstrap functions into `scripts/bootstrap-common.sh` (eliminates ~120 lines of duplicated forge/cast commands from e2e.yml)
- Create reusable `scripts/wait-for-service.sh` for health checks (replaces 60-line inline wait-for-stack)
- Merge dev and CI entrypoints into unified scripts branching on `CI` env var (delete `docker/ci-entrypoints/`)
- Replace 4 per-service CI Dockerfiles with parameterized `docker/Dockerfile.service-ci`
- Add `sync-tax-rates.mjs` to CI image builder stage
- Fix: CI now grants txnBot recenter access (was missing)
- Fix: txnBot funding parameterized (CI=10eth, local=1eth)
- Delete 5 obsolete migration docs and 4 DinD integration files

Net: -1540 lines removed

Closes #107

## Test plan
- [ ] E2E pipeline passes (bootstrap sources shared script, services use old images with commands override)
- [ ] build-ci-images pipeline builds all 4 services with unified Dockerfile
- [ ] Local dev stack boots via `./scripts/dev.sh start`

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: openhands <openhands@all-hands.dev>
Reviewed-on: https://codeberg.org/johba/harb/pulls/108
2026-02-03 12:07:28 +01: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