Thanks for your interest in contributing to unhardcoded.
This repo vendors the Σ_pol core (genlayerlabs/unhardcoded-engine) as a git
submodule under core/, so clone recursively:
git clone --recursive https://github.com/genlayerlabs/unhardcoded.git
# or, after a plain clone:
git submodule update --initTo bring up the full local stack (router + ingress + dashboard) and make a first
routed call, follow SETUP.md — or point a coding agent at it.
Install the deps once (a virtualenv keeps them off your system Python):
python3 -m venv .venv && . .venv/bin/activate
pip install -r requirements.txt -r requirements-dev.txtUnit tests — boot a real host with mocked provider responses (only the outbound HTTP to upstream providers is mocked):
python -m pytest tests -qBDD user-flow suite (features/, behave) — drives the running stack end to
end the way the dashboard does and asserts the rendered data is correct,
including a real headless-browser pass (needs Chrome/Chromium installed). End-to-end
chats route to a $0 path so it's free and repeatable. Needs the stack up (see
SETUP.md); the flow catalogue it covers is user_flows.json.
behave(Nix users: nix-shell -p ... with the same packages — plus chromium chromedriver — works as before.)
Real-money AntSeed scenarios are excluded by default and gated behind
RUN_ANTSEED_SPEND=1; the read-only @antseed data checks auto-skip when no
funded wallet is present.
Please keep both suites green and add coverage for new behavior. A new user-facing
flow should get a .feature scenario.
- Branch off
mainand open a PR;mainis protected and merges go through review. - Keep changes focused and explain the "why" in the description.
- Match the style and structure of the surrounding code.
- Never commit secrets.
.env,.env.secretsandsecrets/are gitignored — keep it that way; use.env.exampleas the template. - For AntSeed / on-chain testing use a dedicated dev wallet
(
./scripts/gen-dev-wallet.sh), never a production key.ANTSEED_IDENTITY_HEXis a private key — treat it like a password.
Please do not file public issues for security problems — see
SECURITY.md.