chore(challenges): strip relearn/prism/design, keep bounty+proof - #224
chore(challenges): strip relearn/prism/design, keep bounty+proof#224echobt wants to merge 6 commits into
Conversation
Remove product code for off challenges so the tree matches the live tip. Keep gateway, validator, trustroot, weights, ctx core, bounty, and proof. Leftover prism-* crates stay as the Lium harvest stack Proof still uses. Frozen specs and historical miner stubs remain. Co-authored-by: Mathis <echobt@users.noreply.github.com>
Keep historical relearn* miner pages greptile/xtask-valid (gateway host + 'no emission' on one line) and use map_or in viewer CSP tests. Co-authored-by: Mathis <echobt@users.noreply.github.com>
|
@greptile-apps review Large cleanup (dead challenge products only). Please review despite the file-count limit. Live surface is bounty + proof; leftover |
Point miner docs and issue templates at bounty+proof. Default proof_git matches the live pin. Trim deny license allows that only existed for deleted design-sanitize/challenge-ast crates. Co-authored-by: Mathis <echobt@users.noreply.github.com>
Greptile SummaryThe emergency production burn sealer now covers both paid challenges, but the two emissions can still select different chain epochs. When the chain advances between the bounty and proof calls, the proof-triggered seal is rejected because the corresponding bounty leaves were submitted for the earlier epoch. Confidence Score: 4/5Not safe to merge until the burn-seal workflow pins both challenge emissions to one shared epoch and block. The reproduced production orchestration succeeds when both calls observe the same tip, but fails when the tip advances between them: bounty writes leaves for one epoch, proof derives and seals the next epoch, and the gateway returns HTTP 409 because the paid bounty leaf set is absent from that sealed epoch. Files Needing Attention: deploy/scripts/prod-burn-seal.sh
What T-Rex did
|
weights-smoke defaults to bounty_sk. Prod burn-seal posts NoScore leaves for both paid challenges before sealing. Operator runbooks and checklists no longer tell anyone to register prism/design or load relearn pins. Co-authored-by: Mathis <echobt@users.noreply.github.com>
|
@greptile-apps review HEAD is now |
Those subcommands were removed with the off challenges. Miner docs must not claim a local stack still speaks them. Co-authored-by: Mathis <echobt@users.noreply.github.com>
| if out="$("${BIN}" --gateway "${GATEWAY}" --burn --netuid "${NETUID}" \ | ||
| --chain-endpoint "${CHAIN}" --challenge-id prism --challenge-sk "${SK}" 2>&1)"; then | ||
| echo "$(date -Is) seal start gateway=${GATEWAY} netuid=${NETUID} challenges=bounty,proof" | ||
| if out="$( { smoke bounty "${BOUNTY_SK}" --skip-seal && smoke proof "${PROOF_SK}"; } 2>&1 )"; then |
There was a problem hiding this comment.
The bounty --skip-seal call and the proof call each derive their default epoch from a separate chain-tip read. If a block arrives between those calls, bounty submits its required leaves for the earlier epoch while proof seals the newer epoch without bounty leaves. Because bounty has a paid emission share, the gateway rejects that incomplete seal with HTTP 409, leaving the emergency burn bundle stale. Resolve the epoch and block once, then pass the same --epoch and --block-b to both calls.
Knowledge Base Used:
Artifacts
Executable advancing-tip D24 reproduction harness
- The authored narrow shell harness executes the production burn-seal script with deterministic tip and seal substitutes, showing the race condition.
Exact command used for behavior captures
- The authored command script records stable and advancing-tip harness executions into their paired output files.
Stable-tip control seals successfully
- With two sequential tip reads both equal to 100, the production orchestration completes a seal at common epoch 8000100.
Advancing tip causes D24 rejection
- With sequential tips 100 then 101, bounty posts epoch 8000100, proof derives 8000101, and the proof-triggered seal receives D24 HTTP 409 for missing bounty leaves.
Gateway incomplete-seal integration test
- The executed gateway integration test verifies that an incomplete participant set returns HTTP 409, confirming the seal rejection behavior.
There was a problem hiding this comment.
Fixed: weights-smoke --print-meta reads tip once, and burn-seal now passes the same --epoch / --block-b to both the bounty --skip-seal post and the proof seal. A block between those calls can no longer split D24.
Read chain tip once via weights-smoke --print-meta and pass the same --epoch/--block-b to both leaf posts so a block between calls cannot split D24 and 409 the emergency seal. Co-authored-by: Mathis <echobt@users.noreply.github.com>
Summary
Repo now matches the live tip: only
bounty(2000 bps) andproof(8000 bps). Off challenges are deleted as products so operators and miners cannot treat leftover code as live work.Removed challenge ids:
relearn,relearn-image,relearn-agent,relearn-mm,design,prism.Kept: gateway, validator, trustroot, weights, ctx core, bounty, proof. Leftover
prism-*crates stay as the Lium harvest stack Proof still uses (harvest-pod,prism-lium*,prism-store*,prism-recipe, …). Applied SQL migrations are untouched. Frozen specs (docs/DESIGN_CHALLENGE.md,docs/PRISM.md) andxtask design-checkstay. Historical miner stubs remain underdocs/external-miner/relearn*.mdso old links do not 404.Not done (intentionally): no invented proof-eval digests or pin secrets. Proof and Bounty fail-closed paths are unchanged.
deploy/pins/{staging,prod}.jsondrop deaddesign-challenge/prism-challengeentries only; bounty/proof image pins will land whenimages.ymlnext records CI digests.Docs: InferenceOffer /
proxy_modelwording is the RLM judge agent baked into the eval image that evaluates miner submissions, not a miner training proxy.Deleted surfaces
relearn-challenge,relearn-t2i-challenge,relearn-agent-challenge,relearn-mm-challenge,design-challenge,design-egress-proxy,prism-challenge,challenge-review;ctxoff/relearn|image|agentsubcommandsrelearn-*, design product crates, prism challenge-only crates (prism-challenge*,prism-emit,prism-pipeline,prism-intake, …),site-prism,review-docker,challenge-agentic*,challenge-ast,submission-gatingweights-smoke/prod-burn-seal.shcover both paid challenges (D24) before sealing, pinned to one chain tip/epoch so a block between posts cannot 409Greptile
Every PR is reviewed by Greptile before merge. Config:
.greptile/.--print-meta+ shared--epoch/--block-b@greptile-apps review(file-count bypass)Test plan
fmt · clippy · test · deny · xtaskone1a9849b(includes compose matrix)cargo test --workspace/cargo deny check/ xtask gatescargo clippy -p weights-smoke --all-targets -- -D warningsafter the shared-epoch pin089cf9ccRisk
No emission or trust-root row changes. No
BASE_*rename. No invented digests. Droplets that still run stale relearn/design/prism containers get force-removed on next masterremote-deploy. Prodbase-burn-seal.timerwill post bounty+proof NoScore on one pinned epoch after this lands.Naming
I did not rename
BASE_*environment variables, deployed host paths(
/opt/base,/run/base, …), GHCRbaseintelligence/basepackage names, orbase-*-v1cryptographic domain tags, unless this PR’s purpose is a coordinatedcutover documented in
docs/NAMING.md.