v0.1.9 — Two-Gate Public Release
2026-06-09 · Candidate SHA: 91b75399dbe122eb7874dd91ad2cbfa280888476
Highlights
- Public release gate is now check-run based:
hermetic-gateandenvironment-suiteboth passed on the exact release SHA. - Operator distribution is stronger: npm canary, GHCR operator canary images, pack/smoke, and funding-sequence E2E all passed before the stable cut.
- Learner/evaluation work landed: held-out evals, reward signal plumbing, baseline-failure regression benchmark, and SWE-rebench v2 recalibration.
- Operator reliability improved across discovery timeouts, RPC rotation, nonce/receipt recovery, deployment preflight, and dashboard status surfaces.
- Native JINN chain groundwork landed: Cosmos EVM devnet seed, veJINN lock, protocol-loop closure, and consensus-stake integration.
Release Gates
hermetic-gate: success — https://github.com/Jinn-Network/mono/runs/80408308058environment-suite: success — https://github.com/Jinn-Network/mono/runs/80410840329npm Publishcanary: success —0.1.9-canary.91b75399Operator Images: success — canary images built, smoke-booted, and publishedmain-next ancestor check: success
Changes
feat
- (#842) feat(eval): jinn eval held-out checkpoint orchestrator — @ritsukai
- (#844) feat(explorer): slate-scope frozenResolvedRate + held-out delta on CheckpointTimeline — @ritsukai
- (#845) feat(eval): train-arm slope on the held-out slate (successor to #683) — @ritsukai
- (#935) feat(scripts): check-milestone-2.ts — read /explorer/slice and report milestone-2 progress — @ritsukai
- (#938) feat(ci): indexer-monitor probe + issue-as-alert for jinn-indexer-production — @ritsukai
- (#941) feat(eng-loop): detect finished sessions and call DeliverySink.collect — @ritsukai
- (#942) feat(dashboard): surface on-chain task-post rate per network and SolverNet — @ritsukai
- (#950) feat(eng-loop): capture spawned-session stdout/stderr to per-session log files — @ritsukai
- (#952) feat: host supervised launcher+operator daemon on Railway (#661) — @ritsuKai2000
- (#970) feat(config): single JINN_STATE_DIR volume-aware state root — @ritsuKai2000
- (#976) feat(api): surface loop-completion + impl-state commit cadence on /v1/status — @ritsuKai2000
- (#978) feat(preflight): deployment-readiness preflight (fail-loud) — @ritsuKai2000
- (#982) feat(swe-rebench-v2): fetch validated pool from IPFS on fresh volume — @ritsuKai2000
- (#987) feat(eval): held-out efficacy harness + paired McNemar stat + mode-aware steer hook (finding: honest negative; #822) — @ritsuKai2000
- (#1012) feat(hermes): support local provider base URLs — @dvilelaf
- (#1013) feat(spa): copy identity addresses — @dvilelaf
- (#1020) feat(eval): baseline-failure regression benchmark + 9-task v2 exam (#986) — @ritsuKai2000
- (#1040) feat(learner): graded reward signal for the learning loop (Lever A) — @ritsuKai2000
- (#1046) feat(rpc): rotate RPC providers on quota/rate-limit exhaustion — @ritsuKai2000
- (#1067) feat(deploy): operator image canary lane — CI-built per-harness images for the test operator (#1066) — @ritsuKai2000
- (#1134) feat(chain): native-JINN Cosmos EVM devnet seed (#1133) — @oaksprout
- (#1136) feat(chain): veJINN lock on native JINN (#1135) — @oaksprout
- (#1138) feat(chain): close the protocol loop on native JINN (#1137) — @oaksprout
- (#1140) feat(chain): JINN as consensus stake via the staking precompile (#1139) — @oaksprout
fix
- (#933) fix(engine): don't terminalize L2 tasks on transient RPC failure — @ritsukai
- (#936) fix(scripts): check-milestone-1 two-gate criterion (per-block floor + 48h aggregate) — @ritsukai
- (#937) fix(earning): log reStake reverted on failed receipt, not confirmed (#916) — @ritsukai
- (#939) fix(explorer): active-operator surface = liveness; sustained as separate M1 readout (#926) — @ritsukai
- (#940) fix(daemon): throttle eviction-loop reStake attempts to checkpoint cadence (#917) — @ritsukai
- (#944) fix(implement-issue): canonical jinn-mono_worktrees path + RELEASING link — @ritsukai
- (#949) fix(eng-loop): graceful SIGINT/SIGTERM shutdown for the dispatcher runner — @ritsukai
- (#961) fix(store): skip dotfiles in solvernet launched-record listing — @ritsuKai2000
- (#965) fix(preflight): reclaim stale pidfile for self / PID-1-in-container — @ritsuKai2000
- (#969) fix(earning): pin Safe 1.3.0 before @safe-global/protocol-kit v7 (#963) — @ritsuKai2000
- (#971) fix(client): dedup @x402/core via lockstep @x402/* ^2.14.0 bump (#968) — @ritsuKai2000
- (#974) fix(client): import canonicalize v3 as ESM, drop createRequire shim (#967) — @ritsuKai2000
- (#975) fix(eval): guard the held-out exam against slate-content drift + prove it discriminates — @ritsuKai2000
- (#981) fix(spa): guard NetworkTab on chain-less task-post-counts + mock it in route-smoke — @ritsuKai2000
- (#991) fix(client): cut onboarding funding latency (faucet drip pacing) — @ritsuKai2000
- (#998) fix(indexer): pin Railway deploy to Dockerfile + scope triggers (config-as-code) — @ritsuKai2000
- (#1008) fix(daemon): gate claims on actual USD spend, not the AI-units projection — @oaksprout
- (#1016) fix(ci): invoke tsx via yarn in environment-suite (exit 127 on first run) — @ritsuKai2000
- (#1017) fix(ci): recognize CLAUDE_CODE_OAUTH_TOKEN as a claude-code harness credential — @ritsuKai2000
- (#1021) fix(ci): trustworthy env-suite verdict — classify infra/transient failures + contracts install + fleet faucet self-heal (#1018) — @ritsuKai2000
- (#1042) fix(discovery): bound indexer fetches with a timeout so a half-open socket can't wedge discovery loops (#1038) — @ritsuKai2000
- (#1045) fix(learner): attribute claude-code-learner in executor.plugins / pluginsJson — @ritsuKai2000
- (#1057) fix(ci): exclude the live-fork T1.3 round-trip from the default yarn test (unblocks canary) — @ritsuKai2000
- (#1063) fix(mech): default on-chain backlog scan to a bounded rolling window (#801) — @ritsuKai2000
- (#1108) fix: refresh mech safe nonce on retry — @ritsuKai2000
- (#1115) fix: recover task creation after receipt replacement — @ritsuKai2000
- (#1129) fix(release): scope T3 discovery to fresh task — @ritsuKai2000
- (#1130) fix(release): derive swe verdict code from passed_match — @ritsuKai2000
- (#1148) fix(release): fail closed on missing verdict codes — @ritsuKai2000
refactor
- (#948) refactor(eng-loop): consolidate org/project constants in the dispatcher — @ritsukai
- (#960) refactor: implement the two-gate release pipeline (#923) — @ritsuKai2000
- (#990) refactor(deploy): consolidate to one container-native image + thin overlays (S7+S8) — @ritsuKai2000
- (#993) refactor(discovery): enrich indexer SolverNet fields; drop daemon per-CID IPFS hop — @ritsuKai2000
- (#996) refactor(contracts): migrate Hardhat 2→3 + add a contracts CI gate — @ritsuKai2000
- (#1005) refactor(api): drop OLAS staking reads from the operator /v1/status hot path — @ritsuKai2000
- (#1132) refactor(overview): move Identity into the right rail; remove Harness Readiness card — @oaksprout
spike
- (#1054) spike(#1033): finding — the bring-your-own-plugin journey, walked end-to-end — @ritsuKai2000
- (#1121) spike(substrate): Cosmos EVM vs BeaconKit/reth → Cosmos EVM (empirically confirmed) — @oaksprout
chore
- (#841) chore(eval): held-out task slate primitive for swe-rebench-v2 — @ritsukai
- (#852) chore(deps-dev): bump jsdom from 25.0.1 to 29.1.1 in /client/src/dashboard/spa — @app/dependabot
- (#853) chore(deps): bump sonner from 1.7.4 to 2.0.7 in /client/src/dashboard/spa — @app/dependabot
- (#855) chore(deps): bump wouter from 3.9.0 to 3.10.0 in /packages/indexer/explorer — @app/dependabot
- (#856) chore(deps): bump docker/login-action from 3 to 4 — @app/dependabot
- (#858) chore(deps-dev): bump typescript from 5.9.3 to 6.0.3 in /packages/claim-relayer — @app/dependabot
- (#859) chore(deps): bump viem from 2.51.2 to 2.51.3 in /apps/broadcast-bot — @app/dependabot
- (#862) chore(deps-dev): bump @types/node from 22.19.19 to 25.9.1 in /packages/indexer/explorer — @app/dependabot
- (#864) chore(deps-dev): bump vitest from 2.1.9 to 4.1.8 in /packages/indexer — @app/dependabot
- (#865) chore(deps): bump viem from 2.51.2 to 2.51.3 in /packages/claim-relayer — @app/dependabot
- (#868) chore(deps): bump wouter from 3.9.0 to 3.10.0 in /client — @app/dependabot
- (#869) chore(deps): bump viem from 2.51.2 to 2.51.3 in /packages/indexer — @app/dependabot
- (#872) chore(deps-dev): bump jsdom from 25.0.1 to 29.1.1 in /packages/indexer/explorer — @app/dependabot
- (#873) chore(deps): bump @tanstack/react-query from 5.100.7 to 5.100.14 in /client — @app/dependabot
- (#876) chore(deps-dev): bump @types/node from 20.19.39 to 25.9.1 in /client — @app/dependabot
- (#878) chore(deps): bump @hookform/resolvers from 3.10.0 to 5.4.0 in /client — @app/dependabot
- (#879) chore(deps-dev): bump postcss from 8.5.13 to 8.5.15 in /client — @app/dependabot
- (#880) chore(deps): bump @coinbase/cdp-sdk from 1.50.0 to 1.51.0 in /client — @app/dependabot
- (#882) chore(deps): bump better-sqlite3 from 11.10.0 to 12.10.0 in /client — @app/dependabot
- (#947) chore(merge-batch): refine skill from first real batch-integration run — @ritsukai
- (#972) chore(explorer): bump vite 5→8 + plugin-react 4→6 in lockstep (#962) — @ritsuKai2000
- (#973) chore(spa): migrate operator SPA to React 19 (#966, supersedes #854/#860) — @ritsuKai2000
- (#1015) chore(ci): gate live Hyperliquid testnet tests with SKIP_HL_TESTS=1 — @ritsuKai2000
- (#1030) chore: add check-milestone-3.ts progress script — @oaksprout
- (#1073) chore(deps-dev): bump vite from 5.4.21 to 8.0.16 in /client/src/dashboard/spa — @app/dependabot
- (#1074) chore(deps-dev): bump vitest from 2.1.9 to 4.1.8 in /packages/claim-relayer — @app/dependabot
- (#1075) chore(deps-dev): bump vitest from 2.1.9 to 4.1.8 in /examples/external-harnesses/polymarket-forecaster — @app/dependabot
- (#1076) chore(deps-dev): bump @nomicfoundation/ignition-core from 3.1.6 to 3.1.7 in /contracts — @app/dependabot
- (#1077) chore(deps): bump @tanstack/react-query from 5.100.14 to 5.101.0 in /client — @app/dependabot
- (#1078) chore(deps): bump react-dom and @types/react-dom in /packages/indexer/explorer — @app/dependabot
- (#1079) chore(deps-dev): bump vitest from 2.1.9 to 4.1.8 in /packages/sdk — @app/dependabot
- (#1080) chore(deps-dev): bump vitest from 2.1.9 to 4.1.8 in /apps/broadcast-bot — @app/dependabot
- (#1081) chore(deps-dev): bump vitest from 2.1.9 to 4.1.8 in /examples/external-harnesses/alternative-harness — @app/dependabot
- (#1082) chore(deps): bump viem from 2.51.3 to 2.52.2 in /packages/indexer — @app/dependabot
- (#1083) chore(deps-dev): bump vitest from 2.1.9 to 4.1.8 in /examples/external-harnesses/prediction-evaluator — @app/dependabot
- (#1084) chore(deps-dev): bump tsx from 4.22.3 to 4.22.4 in /packages/claim-relayer — @app/dependabot
- (#1085) chore(deps): bump actions/github-script from 7 to 9 — @app/dependabot
- (#1086) chore(deps-dev): bump @vitejs/plugin-react from 4.7.0 to 6.0.2 in /client/src/dashboard/spa — @app/dependabot
- (#1087) chore(deps-dev): bump @nomicfoundation/hardhat-keystore from 3.0.11 to 3.0.12 in /contracts — @app/dependabot
- (#1088) chore(deps): bump @opentelemetry/exporter-trace-otlp-http from 0.217.0 to 0.218.0 in /client — @app/dependabot
- (#1089) chore(deps): bump @tanstack/react-query from 5.100.14 to 5.101.0 in /packages/indexer/explorer — @app/dependabot
- (#1090) chore(deps-dev): bump @types/node from 22.19.19 to 25.9.1 in /packages/sdk — @app/dependabot
- (#1091) chore(deps): bump viem from 2.51.3 to 2.52.2 in /apps/broadcast-bot — @app/dependabot
- (#1092) chore(deps): bump lucide-react from 0.454.0 to 1.17.0 in /client/src/dashboard/spa — @app/dependabot
- (#1093) chore(deps): bump @prb/math from 4.1.1 to 4.1.2 in /contracts — @app/dependabot
- (#1094) chore(deps): bump viem from 2.51.3 to 2.52.2 in /packages/claim-relayer — @app/dependabot
- (#1097) chore(deps-dev): bump @nomicfoundation/hardhat-ethers-chai-matchers from 3.0.9 to 3.0.10 in /contracts — @app/dependabot
- (#1098) chore(deps-dev): bump @playwright/test from 1.59.1 to 1.60.0 in /client — @app/dependabot
- (#1099) chore(deps-dev): bump @nomicfoundation/hardhat-ethers from 4.0.12 to 4.0.13 in /contracts — @app/dependabot
- (#1100) chore(deps-dev): bump vitest from 2.1.9 to 4.1.8 in /packages/indexer/explorer — @app/dependabot
- (#1101) chore(deps-dev): bump vitest from 2.1.9 to 4.1.8 in /client — @app/dependabot
- (#1102) chore(deps): bump react-hook-form from 7.76.0 to 7.77.0 in /client — @app/dependabot
- (#1103) chore(deps-dev): bump tsx from 4.21.0 to 4.22.4 in /client — @app/dependabot
- (#1104) chore(deps-dev): bump typescript from 5.9.3 to 6.0.3 in /client — @app/dependabot
- (#1105) chore(deps): bump @scure/bip32 from 1.7.0 to 2.2.0 in /client — @app/dependabot
- (#1106) chore(deps): bump tailwind-merge from 2.6.1 to 3.6.0 in /client — @app/dependabot
- (#1146) chore(release): bump client to v0.1.9 — @ritsuKai2000
docs
- (#932) docs: corpus-search prior-art survey (spike finding for #931) — @ritsukai
- (#943) docs(growth): deprecate prior approach, adopt loadout-instrument engine — @oaksprout
- (#946) docs(eng-day): autonomy triage + autopilot-era human-attention routing — @ritsukai
- (#995) docs(learning-engine): reference doc + skill for the meta-engine — @oaksprout
- (#1002) docs: gate load-bearing human surfaces with a required human review (DR-2026-06-03) — @oaksprout
- (#1003) docs(skills): human-surface intake gate in file-issue + implement-issue (DR-2026-06-03 counterpart) — @oaksprout
- (#1007) docs(operator-app-spec): onboarding completeness — SolverNet + harness + model selection (#983 Phase 0) — @oaksprout
- (#1009) docs(indexer): record watch-path base confirmed + config-as-code enabled — @ritsuKai2000
- (#1011) docs(design-prompt): scope #983 Claude Design prompt to new surfaces only — @oaksprout
- (#1023) docs(operator-app-spec): amend #983 — collapse harness selection in onboarding, narrow scope — @oaksprout
- (#1026) docs(learning-engine): anchor in canonical RL/ML/statistics terms — @oaksprout
- (#1028) docs: propose task structure model (Result / Process / Solution) — @oaksprout
- (#1034) docs(press): proactive ten-operator gate release + create-press-release proactive mode — @oaksprout
- (#1109) docs(spec): independent-blockchain launch decision record (sovereign Cosmos, native token, inference-refinery framing) — @oaksprout
- (#1113) docs(spec): §1 legitimacy-rooting reframe + operator-hardware laptop target — @oaksprout
- (#1120) docs: replace stale zero-external-operator claims with on-chain check — @oaksprout
- (#1131) docs: simplified launch logic — decision log + plan — @oaksprout
test
- (#843) test(eval): Tier-1 CI smoke for the jinn eval orchestrator — @ritsukai
- (#977) test(e2e): recalibrate learner full-cycle swe-rebench-v2 for claude-code/Haiku (#930) — @ritsuKai2000
- (#1025) test: app-experience coverage — deterministic SPA flow + non-gating real paired smoke (#1014) — @ritsuKai2000
other
- (#922) design: two-gate release pipeline redesign (spec + DR) — @ritsukai
- (#953) design: consolidate hosted-operator deploy into one container-native image (spec + DR) — @ritsuKai2000
- (#1107) ci: pin Foundry toolchain for release gates — @ritsuKai2000
- (#1119) Fix env-suite evidence upload and T2 budgets — @ritsuKai2000
- (#1122) Repair env-suite evaluator readiness preflight — @ritsuKai2000
- (#1124) Fix env-suite gold operator password finalization — @ritsuKai2000
- (#1125) Enable evaluator upstream during env preflight — @ritsuKai2000
- (#1126) Build SDK before env-suite preflight — @ritsuKai2000
- (#1127) Release v2026.06.08 readiness fixes — @ritsuKai2000
- (#1128) Preserve evaluator admission during warm-operator adopt — @ritsuKai2000
- (#1145) ci(release): use promotion token for main fast-forward — @ritsuKai2000
Closed this week
- #1004
- #1014
- #1018
- #1019
- #1033
- #1035
- #1066
- #1133
- #1135
- #1137
- #1139
- #341
- #489
- #490
- #491
- #516
- #533
- #548
- #648
- #801
- #817
- #818
- #819
- #820
- #822
- #835
- #912
- #916
- #917
- #918
- #921
- #926
- #927
- #930
- #951
- #954
- #955
- #956
- #957
- #958
- #959
- #962
- #963
- #964
- #966
- #967
- #968
- #985
- #986
- #988
- #989
- #992
- #997
Stats
- Window: v0.1.8 → HEAD (2026-06-09)
- 340 commits · 729 files changed, 51305 insertions(+), 14301 deletions(-) · 150 PRs · 5 contributors
Known issues
- No blocking known issues for this release. Non-blocking follow-ups remain tracked in GitHub Issues.