Repository navigation
feat(spec): register dailyrun and dailyrace operator kinds - #3
Merged
Merged
Conversation
The Daily Run and Daily Race boards of the daily chart get their own anchor
kinds (SPEC 2.2, 7.3, 7.4, 9.1): operator signer, id = UTC date, count = rows.
- dailyrun leaf: {v,k,d,rank,u,h,s,dist,hc,fin,r}, ranked by score
- dailyrace leaf: {v,k,d,rank,u,h,ft,dist,hc,r}, ranked by finish tick (lowest first)
- SDK: dailyRunLeaf, dailyRaceLeaf, rankRowsBy; ANCHOR_KINDS keeps registration order
- vectors appended (kinds, dailyRun, dailyRace, 2 valid + 3 invalid memos);
every existing vector value is unchanged (git diff: 0 removed lines)
- longest valid memo is now 164 bytes (9-character kind)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Since the daily chart got its Daily Run and Daily Race modes, the app's
dailykind only covers runs without a mode, and free play no longer ranks. So since 2026-10-12 the cron has written no board anchors (cups are unaffected). The two mode boards need their own kinds. Per SPEC 9, a new kind is a documented change with a signer model, id, count rule, leaf schema and appended vectors.What
dailyrunYYYY-MM-DD{v,k,d,rank,u,h,s,dist,hc,fin,r}(SPEC 7.3)dailyraceYYYY-MM-DD{v,k,d,rank,u,h,ft,dist,hc,r}(SPEC 7.4)[a-z]+.daily-runanddaily_runare invalid, and invalid-memo vectors now pin that.hc: HARDCORE. It is a column on the shared board, not a separate board.fin: Daily Run only. Whether the best run survived the 2:00 timer.ft: Daily Race only. Finish tick, an integer at 60 per second, ranked lowest first.s(a race collects no coins) and nofin(only arrived races are ranked).dailyRunLeaf,dailyRaceLeaf,rankRowsBy.ANCHOR_KINDSnow keeps registration order, so new kinds go at the end. That keeps the vectorkindslist append-only. A compile-time guard checks that it equals operator kinds plus user kinds.dailyracehas 9 characters.--kind dailyrun|dailyraceworks through the registry. A test was added.Frozen vectors
test-vectors/v1.jsononly gained lines:git diff --statshows 349 insertions and 0 deletions.dailyRunanddailyRace.563ee67172cc80a2343961a12e41b4d0333960a2da6cf1854a7fd56c3e40e6af. The app PR pins the same value.Checks
pnpm lint,pnpm typecheck,pnpm test(203 passed),pnpm build,node scripts/gen-vectors.mjs --check,pnpm examplesDeploy order
Merge this PR together with the app PR in ChartRunner/chartrunner-v2. That PR copies
packages/verify/srcand the vectors byte for byte. Nodailyrunordailyracememo exists on chain yet. The first ones are written by the app after its migration and code ship.