Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
63 changes: 63 additions & 0 deletions .github/workflows/package-smoke.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
name: Package Smoke

on:
pull_request:
paths:
- 'package.json'
- 'pnpm-lock.yaml'
- 'tsdown.config.ts'
- 'scripts/build-android-helper.sh'
- 'scripts/build-xcuitest-apple.sh'
- 'scripts/package-android-helper.sh'
- 'scripts/package-apple-runner-source.mjs'
- 'scripts/patch-xcuitest-runner-icon.ts'
- 'scripts/sync-mcp-metadata.mjs'
- 'scripts/write-xcuitest-cache-metadata.mjs'
- 'apple/macos-helper/**'
- 'apple/runner/**'
- 'android/ime-helper/**'
- 'android/snapshot-helper/**'
- '.github/actions/setup-node-pnpm/**'
- '.github/workflows/package-smoke.yml'
push:
branches:
- main
paths:
- 'package.json'
- 'pnpm-lock.yaml'
- 'tsdown.config.ts'
- 'scripts/build-android-helper.sh'
- 'scripts/build-xcuitest-apple.sh'
- 'scripts/package-android-helper.sh'
- 'scripts/package-apple-runner-source.mjs'
- 'scripts/patch-xcuitest-runner-icon.ts'
- 'scripts/sync-mcp-metadata.mjs'
- 'scripts/write-xcuitest-cache-metadata.mjs'
- 'apple/macos-helper/**'
- 'apple/runner/**'
- 'android/ime-helper/**'
- 'android/snapshot-helper/**'
- '.github/actions/setup-node-pnpm/**'
- '.github/workflows/package-smoke.yml'

permissions:
contents: read

concurrency:
group: package-smoke-${{ github.ref }}
cancel-in-progress: true

jobs:
package:
name: Build npm package
runs-on: macos-26
timeout-minutes: 30
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- name: Setup toolchain
uses: ./.github/actions/setup-node-pnpm

- name: Build complete npm package
run: pnpm prepack
5 changes: 2 additions & 3 deletions .github/workflows/perf-nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -68,8 +68,7 @@ jobs:

- name: Run iOS command perf benchmark
run: |
pnpm perf \
--platform ios \
pnpm perf --platform ios \
--device "iPhone 17 Pro" \
--n "$PERF_ROUNDS" --warmup 1 \
--out-dir "$GITHUB_WORKSPACE/perf-results"
Expand Down Expand Up @@ -112,7 +111,7 @@ jobs:
adb -s emulator-5554 shell settings put global window_animation_scale 0 || true;
adb -s emulator-5554 shell settings put global transition_animation_scale 0 || true;
adb -s emulator-5554 shell settings put global animator_duration_scale 0 || true;
pnpm perf:android --serial emulator-5554 --n "$PERF_ROUNDS" --warmup 1 --out-dir "$GITHUB_WORKSPACE/perf-results"
pnpm perf --platform android --serial emulator-5554 --n "$PERF_ROUNDS" --warmup 1 --out-dir "$GITHUB_WORKSPACE/perf-results"

- name: Upload Android perf report
if: always()
Expand Down
3 changes: 3 additions & 0 deletions .github/workflows/test-app-build-cache.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,9 @@ jobs:
- name: Setup test app dependencies
uses: ./.github/actions/setup-test-app-dependencies

- name: Typecheck test app
run: pnpm test-app:typecheck

- name: Resolve native fingerprint
id: fingerprint
env:
Expand Down
12 changes: 7 additions & 5 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,9 @@ prose in this repo, including this file.
shipped before this rule.
- Unreleased API surface dies free. Before treating a field as wire-compat, check
`git tag --contains <commit>`; if it never shipped, delete it now.
- Push only behind `&&`-chained gates: `format:check && typecheck && lint && vitest && git push`. A
push that can run after a failed gate eventually will.
- Push only behind an `&&`-chained affected gate:
`pnpm check:affected --run && git push`. A push that can run after a failed gate eventually will;
GitHub remains authoritative for reported device/toolchain lanes.

## Derived registries — read the declaration site, not prose

Expand Down Expand Up @@ -159,9 +160,10 @@ one question so `rg` → read-whole-file stays one cheap bounded read.
the only exclusion list is `.oxfmtrc.json` `ignorePatterns` — Markdown, the Maestro conformance
corpus, and generated baselines. Run `pnpm format`, never `oxfmt <path>`: a path argument
reformats a subset and hides whatever else drifted.
- Before pushing, the aggregate is **`pnpm check`** (`check:tooling && check:fallow &&
check:unit`). `pnpm check:tooling` is a *subset*: it stops before the Fallow audit, so dead
exports and complexity findings your diff introduces still fail CI after it passes clean.
- Before pushing, default to **`pnpm check:affected --run`**. It selects the relevant local gates and
reports native/device checks left to GitHub. Use **`pnpm check`**
(`check:tooling && check:fallow && check:unit`) for broad refactors or an explicitly requested full
deterministic core gate. Neither command claims to reproduce every GitHub job.
Fallow's baselines are keyed by path, so a change that RENAMES a file must move that file's
entry in `fallow-baselines/health.json` — regenerating the baselines would silently accept
every other outstanding finding too.
Expand Down
Loading
Loading