Summary
There is no .github/ directory and no CI of any kind. npm run lint, npx tsc --noEmit and node --test "scripts/tests/*.test.cjs" run only when someone remembers to run them.
That has already cost something measurable. .memory/testing.md records homeSwipeDelete.test.cjs failing on main for a day without anyone noticing, because a refactor in d8cb778 did not update the test b908ad3 had added. CI would have caught it on the commit that broke it.
The exposure is larger than it looks, because node --test has no npm script. npm test is not defined, so the suite is invisible to anyone who has not read .memory/testing.md.
Why this is not being set up without a decision
- Whether to spend GitHub Actions minutes on a private single-developer repository is a cost call, not a technical one.
- The useful gates are cheap (lint, tsc,
node --test — all run in a few seconds with no native build), but the tempting ones are not: an EAS build per push would be slow and metered, and the manual iOS verification that carries most of the quality load here cannot be automated at all.
- Adding
"test": "node --test \"scripts/tests/*.test.cjs\"" to package.json is the obvious companion change, but it changes the documented way to run tests, which .memory/testing.md and .codex/AGENTS.md both spell out — those would need updating in the same change.
Suggested handling
A minimal workflow on push and pull request would cover the three existing gates:
- npm ci
- npm run lint
- npx tsc --noEmit
- node --test "scripts/tests/*.test.cjs"
Deliberately excluded: EAS builds, and anything requiring a simulator.
Acceptance criteria
- The three existing gates run automatically on
main.
- If an npm
test script is added, .codex/AGENTS.md and .memory/testing.md are updated in the same change.
Summary
There is no
.github/directory and no CI of any kind.npm run lint,npx tsc --noEmitandnode --test "scripts/tests/*.test.cjs"run only when someone remembers to run them.That has already cost something measurable.
.memory/testing.mdrecordshomeSwipeDelete.test.cjsfailing onmainfor a day without anyone noticing, because a refactor ind8cb778did not update the testb908ad3had added. CI would have caught it on the commit that broke it.The exposure is larger than it looks, because
node --testhas no npm script.npm testis not defined, so the suite is invisible to anyone who has not read.memory/testing.md.Why this is not being set up without a decision
node --test— all run in a few seconds with no native build), but the tempting ones are not: an EAS build per push would be slow and metered, and the manual iOS verification that carries most of the quality load here cannot be automated at all."test": "node --test \"scripts/tests/*.test.cjs\""topackage.jsonis the obvious companion change, but it changes the documented way to run tests, which.memory/testing.mdand.codex/AGENTS.mdboth spell out — those would need updating in the same change.Suggested handling
A minimal workflow on push and pull request would cover the three existing gates:
Deliberately excluded: EAS builds, and anything requiring a simulator.
Acceptance criteria
main.testscript is added,.codex/AGENTS.mdand.memory/testing.mdare updated in the same change.