feat(mobile): hackathon mobile app#2237
Merged
Merged
Conversation
…ackathon-mobile-app
# Conflicts: # apps/code/src/renderer/features/task-detail/components/TaskInput.tsx
- Remove unused totalCount destructure in ReportList - Replace non-null assertions in useInboxReports queryFns with runtime guards - Reformat with-adi-registration plugin
- Mock phosphor-react-native and react-native-safe-area-context globally so their ESM type syntax doesn't crash the CJS loader - Mock @react-native-async-storage/async-storage with an in-memory backing map so persist middleware writes don't blow up under environment: node - Reset repositoryCacheStore in useIntegrations.test.ts beforeEach so module-singleton state doesn't leak between tests
# Conflicts: # apps/code/src/renderer/features/task-detail/components/TaskInput.tsx
Gilbert09
approved these changes
May 21, 2026
…ntain permissions' Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Pass matrix/input values through env vars instead of interpolating
${{ }} directly into run: steps, resolving the semgrep
run-shell-injection findings.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Reverts 974e9cd (fix(code): preserve repo selection in task input), a desktop-only change by Annika that was not on origin/main and unrelated to the mobile app work on this branch. Preserves the unrelated busyState wiring that a later main merge added to TaskInput.tsx. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The composer only offered plan/default/acceptEdits. Desktop also exposes "auto" (model classifier approves/denies permission prompts), which cloud Claude runs support. Add it to the mobile mode list with a Sparkle icon and wire it through to initial_permission_mode (already passed verbatim). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The unit-test CI job ran until the 30-minute cutoff because the mobile vitest suite never exited. Root cause: AutomationForm.test.tsx loads a component tree that imports phosphor-react-native, and the global mock in the test setup returned a bare Proxy. Vitest can't introspect a Proxy's exports from a setup file, so it fell through to the real phosphor module, which wedges the worker (huge icon library, node-incompatible). All other component tests mock phosphor locally, so only this one hit the real module. Replace the Proxy with an explicit, introspectable icon mock covering the icons the app imports. Also stub nativewind and react-native-reanimated, which likewise fail to evaluate under vitest's node environment (Flow syntax / native worklet runtime), so any component importing them transitively can render in tests without hanging. Full mobile suite now passes and exits in ~3s. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
These two docs/plans/*.md files were scratch planning notes added during the hackathon and aren't on main. Drop them so the branch only carries shipping code. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The Android service account key now lives in EAS credentials, so the promote workflow no longer writes it from a repo secret. Drop the GOOGLE_SERVICE_ACCOUNT_KEY secret, the file-writing/cleanup steps, and the serviceAccountKeyPath from eas.json — eas submit picks the key up from EAS. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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.
Problem
Hackathon-built React Native mobile companion app for PostHog Code. Opening this PR to consolidate the work, get it under review, and figure out next steps for merging.
Changes
apps/mobile/(SDK 54, expo-router, NativeWind v4, React Query, Zustand).main(1 conflict inTaskInput.tsx— kept both the cloud-repo-picker memo and main's newbusyStatefromuseGitQueries; removed an orphanedsetIsCloudBranchPickerOpencall that main had retired).How did you test this?
pnpm --filter @posthog/code typecheckafter the merge — passes.Publish to changelog?
no