Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
133 commits
Select commit Hold shift + click to select a range
500dee9
chore(env): introduce Zod-validated env shim for Node scripts
andrew-bierman Apr 11, 2026
509ae49
chore(env): simplify to plain zod parse, remove caching/helpers
Copilot Apr 11, 2026
dbd7cce
fix(ci): resolve all biome/circular-dep/catalog checks after rebase
andrew-bierman Apr 11, 2026
b72ae21
Merge remote-tracking branch 'origin/development' into chore/zod-env-…
Copilot Apr 12, 2026
d7e2277
chore(env): rename env→nodeEnv, add no-raw-process-env lint script
Copilot Apr 12, 2026
d4e92bb
feat(env): broad process.env migration across analytics, Expo, guides…
Copilot Apr 12, 2026
042cade
feat(admin): add analytics API routes and dashboard
claude Apr 13, 2026
ff18207
refactor: split analytics package and expand admin analytics API
claude Apr 13, 2026
9d5ac48
feat: add apps/admin — Next.js 15 admin dashboard
claude Apr 14, 2026
c2c08c2
ci(e2e): harden Maestro workflow for reliability
andrew-bierman Apr 14, 2026
0085d73
ci(e2e): downgrade secret preflight to warning so build still runs
andrew-bierman Apr 14, 2026
8c7e4dc
ci(e2e): idempotently seed the E2E test user before Maestro
andrew-bierman Apr 14, 2026
f059d03
ci(e2e): drive E2E email from secrets too, not hardcoded
andrew-bierman Apr 14, 2026
47b92c1
ci(e2e): reuse canonical hashPassword util in the seed
andrew-bierman Apr 14, 2026
f60c97d
ci(e2e): fix check-types + biome + fallocate busy on swap
andrew-bierman Apr 15, 2026
b50a7fb
ci(e2e): stop deleting Android NDK during disk cleanup
andrew-bierman Apr 15, 2026
6b71914
ci(e2e): fail fast when secrets missing — no more false green
andrew-bierman Apr 16, 2026
9cda42b
ci(e2e): bump MAESTRO_DRIVER_STARTUP_TIMEOUT to 10min
andrew-bierman Apr 16, 2026
ecdd455
Merge remote-tracking branch 'origin/main' into claude/add-analytics-…
claude Apr 16, 2026
9ec1b42
fix: biome violations in chart.tsx and package.json ordering
claude Apr 16, 2026
1126307
fix: pin recharts peer dep to 3.8.1 to match workspace versions
claude Apr 16, 2026
5a70fcd
fix: auto-fix biome lint violations across merged files
claude Apr 16, 2026
1988c8f
ci(e2e): set MAESTRO_CLI_NO_ANALYTICS — per maestro docs
andrew-bierman Apr 16, 2026
55b0762
ci(e2e): fix APP_ID — preview variant bundle IDs
andrew-bierman Apr 16, 2026
f68563a
chore: add .next to root .gitignore
claude Apr 16, 2026
0b9fb41
ci(e2e): cache node_modules + CocoaPods
andrew-bierman Apr 16, 2026
d585654
Merge remote-tracking branch 'origin/main' into claude/add-analytics-…
claude Apr 16, 2026
2538864
ci: trigger CI run on updated branch
claude Apr 16, 2026
4493a09
ci(e2e): collapse android maestro invocation to one line
andrew-bierman Apr 16, 2026
3b1e81e
ci(e2e): use .github/scripts/e2e.sh for android too
andrew-bierman Apr 16, 2026
d92b59b
Initial plan
Copilot Apr 14, 2026
50f1af3
Fix copilot-instructions.md: correct test commands and add missing co…
Copilot Apr 14, 2026
ceae91f
Add @packrat/mcp — full-featured MCP server on Cloudflare Workers
claude Apr 14, 2026
a0580ed
Fix dep management in packages/mcp to satisfy monorepo lint rules
claude Apr 16, 2026
71dddaa
fix(ai): bump ai catalog to v6, @ai-sdk/react v3, await convertToMode…
andrew-bierman Apr 14, 2026
1fd30d9
fix(tsconfig): inline expo base + restore ignoreDeprecations + align …
andrew-bierman Apr 14, 2026
fe1761b
fix: vitest-pool-workers → 0.14.6 for vitest 4 compat + include globa…
andrew-bierman Apr 14, 2026
d71e66a
trigger: retrigger CI after node_modules clean install verified vites…
andrew-bierman Apr 15, 2026
2d2774c
fix(vitest): migrate vitest.config.ts to vitest-pool-workers 0.14.6 API
andrew-bierman Apr 15, 2026
aa1c845
fix(vitest): rename vitest.config.ts → .mts (ESM)
andrew-bierman Apr 15, 2026
b28570d
revert: vitest 4 + vitest-pool-workers 0.14.6 — defer to its own PR
andrew-bierman Apr 15, 2026
720d478
chore(deps): bump @ai-sdk/openai 2.0.11 → ^3.0.52 (align with google/…
andrew-bierman Apr 15, 2026
1bcca13
revert(deps): AI SDK v3 + ai v6 — defer to its own PR
andrew-bierman Apr 15, 2026
16ffe08
chore(deps): align @types/react to ~19.1.10 across workspaces
andrew-bierman Apr 16, 2026
88b5b37
refactor(mcp): remove biome-ignores, add enums, centralize constants
claude Apr 16, 2026
331f610
fix(mcp): fix biome format in resources.ts
claude Apr 16, 2026
1d56e59
feat(mcp): extract api-client workspace package, fix API signatures
claude Apr 16, 2026
9e2e965
fix: sort root package.json scripts alphabetically (mcp entries)
claude Apr 16, 2026
9900dc5
fix(deps): align @types/react to ~19.1.10 in guides and web-ui
claude Apr 16, 2026
b8a320f
feat: add app/checks workspaces with frozen app config and magic-stri…
Copilot Apr 16, 2026
eeb35ae
refactor: refine magic-string heuristics and dashboard gap constant u…
Copilot Apr 16, 2026
f73aceb
refactor: simplify dashboard layout config sections and tighten check…
Copilot Apr 16, 2026
794203d
chore: relax path heuristic in magic-string checker
Copilot Apr 16, 2026
2ffa9c1
Fix catalog auth wall layout by removing duplicate header
Copilot Apr 16, 2026
885e90d
Merge pull request #2207 from PackRat-AI/copilot/fix-layout-issue-cat…
mikib0 Apr 16, 2026
f10e202
Initial plan
Copilot Apr 16, 2026
71b6f22
refactor: rename app workspace to config
Copilot Apr 16, 2026
2f23c48
ci: re-trigger checks after @types/react alignment fix
claude Apr 16, 2026
95b76fb
Merge pull request #2209 from PackRat-AI/copilot/sub-pr-2204
andrew-bierman Apr 16, 2026
8cd8c66
fix(biome): fix format, import order, and useMaxParams in mcp/api-client
claude Apr 16, 2026
088a82e
fix: address biome CI lint errors in expo and api tests
Copilot Apr 16, 2026
da54db5
fix: resolve failing check-types and biome checks
Copilot Apr 16, 2026
bab8eef
refactor: type catalog service mock return in test setup
Copilot Apr 16, 2026
71e1f0a
feat(env): move guides env and lint script into @packrat/env package
Copilot Apr 16, 2026
bccf9ed
chore(ci): consolidate biome and type checks into checks workflow
Copilot Apr 16, 2026
4f6f56d
Merge pull request #2176 from PackRat-AI/fix/e2e-ci-reliability
andrew-bierman Apr 16, 2026
b3d074f
chore(ci): align checks workflow biome command and permissions note
Copilot Apr 16, 2026
c11bbf1
Merge pull request #2186 from PackRat-AI/claude/build-mcp-server-lYTiQ
andrew-bierman Apr 16, 2026
c4a9248
chore(ci): make checks workflow fix conditions explicit
Copilot Apr 16, 2026
b424340
fix: address remaining PR CI failures in types and biome checks
Copilot Apr 16, 2026
71a2f57
feat(env): move Expo env shims into @packrat/env package
Copilot Apr 16, 2026
adaca84
Merge pull request #2210 from PackRat-AI/copilot/update-action-biome-…
andrew-bierman Apr 16, 2026
d006fd7
fix: resolve remaining biome and typecheck CI blockers
Copilot Apr 16, 2026
119f6ae
refactor: tighten test mock typing and simplify weather hour formatting
Copilot Apr 16, 2026
74b82d9
chore: merge origin/development into claude/add-analytics-api-K625X
claude Apr 16, 2026
602831e
Merge remote-tracking branch 'origin/development' into chore/zod-env-…
Copilot Apr 16, 2026
c132f01
fix: resolve all biome warnings and related typecheck issues
Copilot Apr 16, 2026
7f41b4e
fix(analytics): fix TypeScript errors in analytics route files
claude Apr 16, 2026
f38702e
fix: align workspace rename to @packrat/analytics
Copilot Apr 16, 2026
34b13cb
fix: repair bun.lock and cli package.json after development merge
claude Apr 16, 2026
e451b7e
Merge pull request #2204 from PackRat-AI/copilot/add-checks-script-fo…
andrew-bierman Apr 16, 2026
1a19f53
fix: restore bun.lock and cli/package.json to use @packrat/analytics
claude Apr 16, 2026
1fe5a6e
Delete .env.local.example
andrew-bierman Apr 16, 2026
8e68abc
fix(api): use hono zod instance in analytics routes
Copilot Apr 16, 2026
5358d83
fix(analytics): align API response shapes with client types
claude Apr 16, 2026
e239520
Merge remote-tracking branch 'origin/development' into chore/zod-env-…
Copilot Apr 16, 2026
c6be7a5
refactor(api): remove inline analytics HTML dashboards
Copilot Apr 16, 2026
94f8efa
fix: update feedUtils mock to @packrat/env/expo-client, remove unused…
Copilot Apr 16, 2026
c1a8e59
fix: update stale expo-app/env/clientEnvs import paths to @packrat/en…
Copilot Apr 16, 2026
e60b0a3
fix: sort @packrat/env/expo-client import before @packrat/ui in profi…
Copilot Apr 16, 2026
3bd5ec1
Merge pull request #2193 from PackRat-AI/claude/add-analytics-api-K625X
andrew-bierman Apr 17, 2026
78afa2c
feat: add monorepo react doctor custom check
Copilot Apr 17, 2026
6e7f76c
refactor: remove magic numbers in react doctor check
Copilot Apr 17, 2026
2bb42ed
chore: address react doctor check review feedback
Copilot Apr 17, 2026
87759f8
chore: document output constants in react doctor check
Copilot Apr 17, 2026
32a1112
feat: expand copilot-setup-steps to full toolchain bootstrap
Copilot Apr 17, 2026
34a04e6
fix: add environment:copilot and read Bun version from package.json
Copilot Apr 17, 2026
446d53b
chore(expo): add missing expo doctor peer dependencies
Copilot Apr 17, 2026
2063c43
feat(cli): harden command parsing and bootstrap behavior
Copilot Apr 18, 2026
22999cd
fix(cli): address validation review feedback
Copilot Apr 18, 2026
1a2a057
fix(cli): validate package version metadata and numeric preprocess ed…
Copilot Apr 18, 2026
fa198b4
fix: address PR review - TTY guard, HEADER_LINES, dead script field, …
Copilot Apr 18, 2026
5a8bce2
fix: restore Run Expo Doctor step alongside new React Doctor checks step
Copilot Apr 18, 2026
8b60998
fix: guard pull_request trigger for fork PRs and remove legacy setup …
Copilot Apr 18, 2026
c2655f9
fix: remove --frozen-lockfile from setup workflow to fix CI
Copilot Apr 18, 2026
1d643ba
fix: update bun.lock for semver 7.7.4 and add --frozen-lockfile to al…
Copilot Apr 18, 2026
01239c8
fix: run doctor checks sequentially to avoid bunx race condition
Copilot Apr 18, 2026
050aac3
Merge pull request #2219 from PackRat-AI/copilot/align-dependencies-w…
andrew-bierman Apr 18, 2026
6470f33
fix(cli): resolve CI type and biome failures in arg parsing changes
Copilot Apr 18, 2026
289130c
Merge pull request #2217 from PackRat-AI/copilot/add-react-doctor-cus…
andrew-bierman Apr 18, 2026
fde0624
Bump Expo dependency to 54.0.33
Copilot Apr 18, 2026
17fe3be
merge: resolve conflicts with development branch
Copilot Apr 18, 2026
96cb086
fix(cli): resolve remaining check-types zod preprocess typing
Copilot Apr 18, 2026
6ecf125
Merge pull request #2046 from PackRat-AI/chore/zod-env-shim
andrew-bierman Apr 18, 2026
965afa8
merge: sync with latest development (env package) and fix bun.lock wo…
Copilot Apr 18, 2026
1812f98
merge: sync with latest development (env package) and fix bun.lock wo…
Copilot Apr 18, 2026
d29febb
Merge pull request #2221 from PackRat-AI/copilot/build-full-functiona…
andrew-bierman Apr 18, 2026
da3afe2
fix: correct all bun.lock workspace dependency mismatches
Copilot Apr 18, 2026
5c6d50b
Merge remote-tracking branch 'origin/development' into copilot/improv…
Copilot Apr 18, 2026
c2b2b1b
fix: add semver to bun.lock catalog, fix packages/cli zod dep, merge …
Copilot Apr 18, 2026
35cb56a
Merge pull request #2218 from PackRat-AI/copilot/improve-copilot-setu…
andrew-bierman Apr 18, 2026
c81ee0f
Merge branch 'development' into copilot/bump-expo-using-install-helper
andrew-bierman Apr 18, 2026
746a57b
chore: ignore worktree dirs and add Hono RPC foundation plan
andrew-bierman Apr 18, 2026
a56cba6
🙈 chore: ignore worktree dirs and local Claude files
andrew-bierman Apr 18, 2026
96984ec
🔧 chore(cli): make packrat entrypoint executable and refresh bun.lock
andrew-bierman Apr 18, 2026
b428036
Merge pull request #2223 from PackRat-AI/chore/ignore-worktrees-add-r…
andrew-bierman Apr 18, 2026
8e37130
Merge pull request #2222 from PackRat-AI/copilot/bump-expo-using-inst…
andrew-bierman Apr 18, 2026
dc3d225
feat(ai): gate local AI behind a feature flag
mikib0 Apr 18, 2026
c431a32
Merge 'development' into 'feat/gate-local-ai'
mikib0 Apr 18, 2026
ff1eb0f
Merge pull request #2224 from PackRat-AI/feat/gate-local-ai
mikib0 Apr 18, 2026
89dbfdf
chore: bump version to v2.0.21
mikib0 Apr 18, 2026
58b9a99
chore: update bun lock
mikib0 Apr 18, 2026
d6d1165
fix: address all PR review comments
Copilot Apr 18, 2026
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
10 changes: 0 additions & 10 deletions .github/copilot-setup-steps.yml

This file was deleted.

4 changes: 2 additions & 2 deletions .github/workflows/api-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ jobs:
- name: Install dependencies
env:
PACKRAT_NATIVEWIND_UI_GITHUB_TOKEN: ${{ secrets.PACKRAT_NATIVEWIND_UI_GITHUB_TOKEN }}
run: bun install
run: bun install --frozen-lockfile
Comment thread
mikib0 marked this conversation as resolved.

- name: Run API tests
run: bun run --cwd packages/api test
39 changes: 0 additions & 39 deletions .github/workflows/biome.yml

This file was deleted.

29 changes: 0 additions & 29 deletions .github/workflows/check-types.yml

This file was deleted.

59 changes: 59 additions & 0 deletions .github/workflows/checks.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
name: Checks

on:
pull_request:
branches: ['**']
workflow_dispatch:
inputs:
fix:
description: 'Apply Biome autofixes (runs bun lint and commits changes)'
required: false
default: false
type: boolean

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

permissions:
# Required for optional workflow_dispatch autofix commits.
contents: write

Comment thread
mikib0 marked this conversation as resolved.
jobs:
checks:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: oven-sh/setup-bun@v2
with:
bun-version: latest
cache: true
- name: Install dependencies
env:
PACKRAT_NATIVEWIND_UI_GITHUB_TOKEN: ${{ secrets.PACKRAT_NATIVEWIND_UI_GITHUB_TOKEN }}
run: bun install --frozen-lockfile
- name: Run Biome (check mode)
if: ${{ !(github.event_name == 'workflow_dispatch' && inputs.fix == true) }}
run: bun biome check
- name: Run Biome (autofix mode)
if: ${{ github.event_name == 'workflow_dispatch' && inputs.fix == true }}
run: bun lint
- name: Commit Biome autofixes
if: ${{ github.event_name == 'workflow_dispatch' && inputs.fix == true }}
uses: stefanzweifel/git-auto-commit-action@v6
with:
commit_message: 'chore: apply biome autofixes via checks workflow'
- name: Check circular dependencies
run: bun scripts/lint/no-circular-deps.ts
- name: Check for duplicate/catalog dependencies
run: bun scripts/lint/no-duplicate-deps.ts
- name: Check package.json ordering
run: bun scripts/format/sort-package-json.ts --check
- name: Check types
run: bun check-types
- name: Run Expo Doctor
run: bunx expo-doctor
working-directory: apps/expo
continue-on-error: true
Comment thread
mikib0 marked this conversation as resolved.
- name: Run React Doctor checks
run: bun check:react-doctor
109 changes: 109 additions & 0 deletions .github/workflows/copilot-setup-steps.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
name: "Copilot Setup Steps"

# Run automatically when this file changes to validate it, and allow manual testing.
on:
workflow_dispatch:
push:
paths:
- .github/workflows/copilot-setup-steps.yml
pull_request:
paths:
- .github/workflows/copilot-setup-steps.yml

jobs:
# The job MUST be called `copilot-setup-steps` or it will not be picked up by Copilot.
copilot-setup-steps:
runs-on: ubuntu-latest
# Skip on fork PRs: environment secrets are not available to forked repositories,
# so the secret-validation step would always fail for external contributors.
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.fork == false
# Secrets for this repo are stored in the 'copilot' environment.
environment: copilot

# Minimum permissions needed. Copilot will be given its own token for its operations.
permissions:
contents: read

steps:
- name: Checkout code
uses: actions/checkout@v6

# Validate the private-package token before attempting install, so failures are
# actionable rather than opaque 401s buried in bun install output.
- name: Validate required secrets
env:
PACKRAT_NATIVEWIND_UI_GITHUB_TOKEN: ${{ secrets.PACKRAT_NATIVEWIND_UI_GITHUB_TOKEN }}
run: |
if [ -z "$PACKRAT_NATIVEWIND_UI_GITHUB_TOKEN" ]; then
echo "❌ PACKRAT_NATIVEWIND_UI_GITHUB_TOKEN is not set."
echo ""
echo "This secret is required to install the private @packrat-ai/nativewindui"
echo "package from GitHub Package Registry (npm.pkg.github.com)."
echo ""
echo "Fix: Add PACKRAT_NATIVEWIND_UI_GITHUB_TOKEN as a secret in the 'copilot'"
echo "GitHub Actions environment (Settings → Environments → copilot → Secrets)."
echo "The token needs the 'read:packages' scope."
exit 1
fi
echo "✓ PACKRAT_NATIVEWIND_UI_GITHUB_TOKEN is present"

# Pin Node to the exact major required by package.json engines (>=24).
- name: Set up Node.js 24
uses: actions/setup-node@v4
with:
node-version: "24"

# Read the Bun version from package.json#packageManager to keep a single source of truth.
- name: Read Bun version from package.json
id: bun-version
run: |
BUN_VERSION=$(jq -r '.packageManager' package.json | sed 's/bun@//')
echo "version=$BUN_VERSION" >> "$GITHUB_OUTPUT"
echo "Resolved Bun version: $BUN_VERSION"

# Pin Bun to the exact version declared in package.json#packageManager.
- name: Set up Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: ${{ steps.bun-version.outputs.version }}
cache: true

# Sanity-check that the runner satisfies the repo's engine constraints.
- name: Verify runtime versions
run: |
echo "Bun: $(bun --version)"
echo "Node: $(node --version)"

NODE_MAJOR=$(node --version | sed 's/v\([0-9]*\).*/\1/')
if [ "$NODE_MAJOR" -lt 24 ]; then
echo "❌ Node.js $NODE_MAJOR is below the required minimum of 24."
exit 1
fi
echo "✓ Runtime versions satisfy repo constraints"

# Install all workspace dependencies.
# The preinstall hook (configure-deps.ts) checks PACKRAT_NATIVEWIND_UI_GITHUB_TOKEN
# automatically, so no extra wrangling is needed here.
- name: Install dependencies
env:
PACKRAT_NATIVEWIND_UI_GITHUB_TOKEN: ${{ secrets.PACKRAT_NATIVEWIND_UI_GITHUB_TOKEN }}
run: bun install --frozen-lockfile

# Confirm the key CLI tools installed by the workspace are usable.
# Scoped to cloud-agent-safe tasks (lint/typecheck/tests); no mobile simulator tooling.
- name: Smoke check — verify toolchain
run: |
echo "=== Biome ==="
bunx biome --version

echo ""
echo "=== TypeScript ==="
bunx tsc --version

echo ""
echo "=== Wrangler (Cloudflare Workers CLI) ==="
bunx wrangler --version

echo ""
echo "✓ Copilot environment is ready"
echo " Available tasks: bun lint · bun check-types · bun test:api:unit · bun test:expo · bun api"
Loading
Loading