Skip to content

v0.1.8 — Reward-Guided Learning

Choose a tag to compare

@ritsukai ritsukai released this 01 Jun 08:08
· 414 commits to next since this release

Jinn's training loop gets smarter: the learner consolidates the knowledge the market actually paid for, operators gain spend controls, and the live network becomes legible. ~567 commits since v0.1.7.

Highlights

The learning loop

  • Per-codeDigest selection-on-reward (#825) — Memory consolidation now keeps the code knowledge that earned on-chain reward, so what accumulates is what the market paid for.
  • Repost on claim-window expiry / exhaustion (#851, #826) — the SWE-rebench generator reclaims stalled task budget instead of abandoning it.
  • Higher validation capacity without weakening gold-patch admission (#798).
  • Outcome-measurement DR — the held-out exam (#827); harness-as-policy learning architecture (#840, #689).

Operator spend controls

  • Per-credential spend caps (#346), paid-harness throttle (#834), every paid-LLM node gated regardless of payment method (#906, #901).

Network explorer

  • Active-operator surface (#904, #907, #903); one-click operator debug report (#848).

Reliability & protocol hardening

Engineering

  • Autonomous engineering loop now reviews and fixes its own PRs (#889, #893); sessions CLI (#587).

Release engineering

  • Release-readiness pass (PR #910): 5 fixes — jinn-claim nonce ledger, transient-getLogs retry, isolated SolverNet for T3.1, multi-RPC fallback in the observer, staking decoupled from the protocol loop. Tier 3 loop proven on-chain (verdictCode=1, isolated tasks 1552 & 1559). See docs/release/v0.1.8/handoff.md.

Known issues

  • Tier-3 automated marker flakes on transient infra (RPC DNS / network blips / Docker 4 GiB OOM); the loop itself is proven on-chain. Release gates donation-consumption (#920) and app-first-testnet-acceptance (#919) skipped this cut — see marker.

Changes

feat

  • (#907) feat(explorer): iterate on active-operator surface — eyebrow ?, recent runs column, sort — @oaksprout
  • (#904) feat(explorer): active-operator surface in the network explorer — @oaksprout
  • (#893) feat(autopilot): PR-triggered review-pr review-and-fix loop (#889) — @ritsukai
  • (#848) feat(observability): one-click operator debug report (#420) — @ritsukai
  • (#834) feat(daemon): default 10% reference-ceiling throttle for paid harnesses — @oaksprout
  • (#826) feat(swe-rebench-v2): re-post on claim exhaustion, not a time window — @ritsukai
  • (#825) feat(learner): per-codeDigest selection-on-reward in Memory consolidation — @ritsukai
  • (#798) feat(client): increase SWE-rebench-v2 validation capacity without weakening gold-patch admission — @ritsukai
  • (#774) feat(codex): support local OpenAI-compatible provider — @dvilelaf
  • (#697) feat(explorer-spa): LearningCurve renders lifetime baseline + right-edge delta (#696) — @ritsukai
  • (#668) feat(#601): Phase 3 — /explore route + parameterized filter UI (#656) — @ritsukai
  • (#650) feat(spa): surface ERC-8004 data in artifact detail panel — @oaksprout
  • (#644) feat(operator-app): wire claim_failed notification from SSE event stream — @ritsuKai2000
  • (#636) feat(daemon): expose status.harness rollup on /v1/status — @ritsuKai2000
  • (#634) feat(daemon): expose per-role ETH balances on /v1/status (#430) — @ritsuKai2000
  • (#631) feat(cli): wire real RPC and IPFS clients into solver-plugin trust commands — @ritsuKai2000
  • (#626) feat(eng-loop): sessions subcommand for live + finished session state (#587) — @ritsuKai2000
  • (#623) feat(#610): Phase 1 — envelope-only default filter + NetworkView/OperatorsView reframe — @ritsuKai2000
  • (#622) feat(eng-loop): detect single-field Status rename in project-snapshot drift check (#597) — @ritsuKai2000
  • (#617) feat(eng-loop): reality-check triage before dispatch — @ritsukai
  • (#614) feat(rpc): multi-RPC fallback chain across daemon / relayer / indexer / CI — @ritsukai
  • (#612) feat(eng-loop): prioritise current-sprint issues in the dispatcher sort (#609) — @ritsukai
  • (#595) feat(operator): surface 24h JINN earned and tighten Wallet card — @oaksprout
  • (#541) feat(dashboard): surface bootstrap/funding state when daemon isn't up (#110) — @ritsuKai2000
  • (#534) feat(eng-loop): dispatcher author allowlist — only dispatch from trusted contributors (#497) — @ritsuKai2000
  • (#481) feat(eng-loop): automated engineering flow — loop skills + eng-orchestrator dispatcher — @ritsuKai2000
  • (#477) feat(346): daily spend budget per credential (daemon-side) — @ritsuKai2000
  • (#423) feat(codex): support local Ollama provider — @dvilelaf

fix

  • (#906) fix(spend): gate every paid-LLM node regardless of payment method (#901) — @oaksprout
  • (#900) fix(daemon): classify pruned evaluation opportunities as RACE_LOST, not FAILED — @oaksprout
  • (#892) fix(swe-rebench-v2-runtime): fetch base_commit by SHA instead of clone+checkout — @ritsukai
  • (#885) fix(learner): register Jinn MCP server (submit_typed_payload) for claude-code agents — @ritsukai
  • (#884) fix(harness): claude-code completes on result message + reaps process group (#883) — @ritsukai
  • (#851) fix(swe-rebench-v2): repost on claim-window expiry OR exhaustion (#850) — @ritsukai
  • (#847) fix(deploy): move codex-operator railway.toml out of repo root — unbreaks jinn-indexer (#846) — @ritsuKai2000
  • (#839) fix(operator-app): Activity table hides COMPLETE runs for multi-SolverNet operators (#838) — @ritsukai
  • (#837) fix(tx-retry): retry transient 'All RPC providers failed' instead of failing the task (#836) — @ritsukai
  • (#813) fix(indexer): recompute task.finalized from delivered verdicts, not SolutionDeliveryClaimed — @ritsukai
  • (#812) fix(client): retry transient eval infra failures instead of caching them as permanent unscorable — @ritsukai
  • (#808) fix: M1 burn-in readiness — delivery getLogs chunk (#807) + reStake test reconcile (#809) — @ritsukai
  • (#803) fix: harden daemon startup for M1 (#789 non-fatal reStake + #801 bounded task-discovery scan) — @ritsukai
  • (#800) fix(dashboard): remove service-eviction banner and manual re-stake — @ritsukai
  • (#797) fix(dashboard): CostEstimatePanel paid-API-key status from daemon — @ritsukai
  • (#795) fix(discovery): retry MetadataSet getLogs with backoff (#546) — @ritsukai
  • (#794) fix(client): prune terminal evaluation opportunities on claim race loss — @ritsukai
  • (#791) fix(778): convert harvest + readiness-probe spawns to async (rebased) — @ritsukai
  • (#790) fix(discovery): uint256-safe taskId bucket sort in findClaimableTasks — @ritsukai
  • (#787) fix(daemon): start Path B transcript watcher on daemon boot — @ritsukai
  • (#784) fix(trajectory): parse Codex 0.129+ wrapped session JSONL — @ritsukai
  • (#781) fix(hermes): pass JINN_DISCOVERY_URL to MCP subprocess — @ritsukai
  • (#780) fix(test): learner-full-cycle cycle 2 portfolio validation (#684) — @ritsukai
  • (#776) fix(daemon): refuse concurrent jinn run and reorder start (#649) — @ritsukai
  • (#772) fix(adapter): bound retry on wedged evaluation opportunities (#645) — @ritsukai
  • (#762) fix(launcher): reconcile swe-rebench-v2 successful counter against network truth — @ritsukai
  • (#705) fix(scripts): rewrite check-milestone-1 against tJINN-earned criterion (#691) — @oaksprout
  • (#703) fix(adapter): trust contract's maxClaimsPerOperator; remove in-memory claim gate — @ritsukai
  • (#702) fix(swe-rebench-v2): enforce N_max_postings_per_task cap inside batch selection — @ritsukai
  • (#699) fix(explorer-spa): bump LearningCurve top padding to clear BASELINE label — @ritsukai
  • (#690) fix(explorer-spa): filter UX paper cuts from #686 review — @ritsukai
  • (#688) fix(eng-loop): triage-check shell-out shape mismatches against gh CLI — @oaksprout
  • (#678) fix(codex-harness): pipe prompt to codex stdin (#675) — @oaksprout
  • (#667) fix(test): lower eval-runner test disk floor to fix CI InsufficientDiskError flake (#515) — @ritsuKai2000
  • (#663) fix(spa): suppress service-evicted banner during auto-restake window — @oaksprout
  • (#632) fix(daemon): fence event-loop lag under task backlog (resolves #397) — @ritsuKai2000
  • (#630) fix(dashboard): correct misleading "days runway" display after bootstrap (#288) — @ritsuKai2000
  • (#629) fix(merge-batch): enforce code-owner approval in candidate-set filter — @ritsuKai2000
  • (#627) fix(eng-loop): handle snapshot-fetch failure in --dry-run with friendly message — @ritsuKai2000
  • (#620) fix(swe-rebench-v2): retry HF datasets-server 429s + classify transient vs permanent — @ritsukai
  • (#618) fix(daemon): downgrade race-loss revert logs to info / kind=race_lost — @ritsukai
  • (#593) fix(eng-loop): replace heavy gh project item-list with lean snapshot + rate-limit guard — @ritsuKai2000
  • (#588) fix(swe-rebench-v2): regenerate vetted-pool artifact when validated-pool grows — @ritsukai
  • (#584) fix(indexer): add /health/task-coverage probe + document #567 root cause and recovery — @ritsuKai2000
  • (#583) fix(tx-retry): refresh stale nonce on nonce too low retry — @ritsukai
  • (#540) fix(api): show owned launched SolverNet manifests without requiring a subgraph — @ritsuKai2000
  • (#537) fix(dashboard): surface evaluator harness Docker readiness in join flow — @ritsuKai2000