Problem
.github/workflows/ci.yml only runs root-level scripts (npm ci, npm run build, npm run validate:prisma, npm run lint, npm run typecheck:scripts, npm test). It never enters the indexer/ directory.
indexer/ is a separate Node package with its own package.json (octraban-indexer), its own scripts (start, dev, test, test:decoder, test:decoder-parity, test:scval, test:coverage), roughly 78 source files, and approximately 47 test files. None of it is installed, built, linted, or tested in CI.
This is the service the octraban_frontend actually consumes on :3001, so the most user-facing part of this repository has no CI coverage at all. A change that breaks the indexer or its decoder will pass CI.
What needs to be done
- Add a CI job (or matrix entry) with
working-directory: indexer that runs npm ci and the indexer's own test scripts, including test:decoder and test:decoder-parity.
- Cache
indexer/package-lock.json separately.
- Ensure the job fails the workflow on any indexer test failure.
- Confirm the indexer's test suite passes in CI as-is; fix or quarantine any tests that only pass locally.
Files
.github/workflows/ci.yml
indexer/package.json
Acceptance deliverables
- CI installs and tests the
indexer/ package on every push and pull request.
- A deliberate break in the indexer decoder fails CI.
Tests to pass
- The indexer job completes green on the current
main.
npm run test:decoder and npm run test:decoder-parity run in CI.
Problem
.github/workflows/ci.ymlonly runs root-level scripts (npm ci,npm run build,npm run validate:prisma,npm run lint,npm run typecheck:scripts,npm test). It never enters theindexer/directory.indexer/is a separate Node package with its ownpackage.json(octraban-indexer), its own scripts (start,dev,test,test:decoder,test:decoder-parity,test:scval,test:coverage), roughly 78 source files, and approximately 47 test files. None of it is installed, built, linted, or tested in CI.This is the service the octraban_frontend actually consumes on
:3001, so the most user-facing part of this repository has no CI coverage at all. A change that breaks the indexer or its decoder will pass CI.What needs to be done
working-directory: indexerthat runsnpm ciand the indexer's own test scripts, includingtest:decoderandtest:decoder-parity.indexer/package-lock.jsonseparately.Files
.github/workflows/ci.ymlindexer/package.jsonAcceptance deliverables
indexer/package on every push and pull request.Tests to pass
main.npm run test:decoderandnpm run test:decoder-parityrun in CI.