Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
d3a6d44
feat: configurable keyboard shortcuts
Basit-Balogun10 May 21, 2026
becff72
fix: require modifier key when recording custom shortcut
Basit-Balogun10 May 21, 2026
8cd6271
test: unit tests for keybindingsStore
Basit-Balogun10 May 21, 2026
4ba3339
fix: sync shortcut label displays with live keybindings store
Basit-Balogun10 May 21, 2026
ba2d7e7
fix: show Ctrl on Windows and accept Ctrl-triggered shortcuts
Basit-Balogun10 May 21, 2026
dc8293f
feat: make prompt-history shortcuts configurable; update E2E tests
Basit-Balogun10 May 23, 2026
aa353a1
fix: address Greptile review; clean up comments
Basit-Balogun10 May 23, 2026
9920aed
feat: add searchable shortcuts modal with text and key-combo filtering
Basit-Balogun10 May 26, 2026
6e8a6f7
fix: polish search bar UX in shortcuts modal
Basit-Balogun10 May 26, 2026
7d3e66e
fix: Escape always closes modal, not clears search
Basit-Balogun10 May 26, 2026
021fe43
feat: restore checkpoint after any AI response turn
Basit-Balogun10 May 25, 2026
551e51f
feat: show open PR badge in each command center cell (#2292)
pauldambra May 21, 2026
1549240
feat(code): add support for additional directories (#2038)
jonathanlab May 22, 2026
b5107e1
fix(cloud-agent): prevent false disconnects on idle cloud stream (#2294)
tatoalo May 22, 2026
bad9f78
feat(code): add Discuss button to inbox reports (#2241)
andrewm4894 May 22, 2026
f6fba13
feat(sidebar): show Slack icon for tasks from Slack threads (#2281)
andrewm4894 May 22, 2026
c339bd2
feat(code): add priority + actionability to all inbox events (#2295)
andrewm4894 May 22, 2026
16bb41c
feat(signals): Add Slack notification config (#2174)
Twixes May 22, 2026
afa13c0
feat(mobile): hackathon mobile app (#2237)
dmarticus May 22, 2026
4ba10cf
fix(cloud): signing mcp cloud only (#2300)
tatoalo May 22, 2026
3cfaa88
fix(task-detail): Remove cloudAvailable check, allowing Cloud setup (…
Twixes May 22, 2026
836f1ea
fix(inbox): fix report-header icon buttons (#2245)
joshsny May 22, 2026
7c75ab9
feat(sidebar): multi-select tasks with bulk archive (#2203)
fercgomes May 22, 2026
b44cd5d
evertr(inbox): add session problem signal card with moment preview (#…
Twixes May 22, 2026
c49c448
fix(cloud): keep git_signed_commit visible when GH token lands post-s…
VojtechBartos May 22, 2026
72adb33
chore(devex): Added a local git ignore (#2315)
Gilbert09 May 22, 2026
2590891
Close mode/model/effort dropdowns on selection (#2303)
rafaeelaudibert May 22, 2026
ca204f5
chore(cloud-agent): local MCP tool rename (#2319)
tatoalo May 22, 2026
9789874
fix(code): coalesce writeLocalLogs per taskRunId to stop main-thread …
k11kirky May 25, 2026
f559d79
fix(code): break unrecoverable cloud log reconcile loop on stable def…
k11kirky May 25, 2026
7774b0a
fix(code): bound cloud session reconnect attempts with cumulative cap…
k11kirky May 25, 2026
8311d7a
Simplify cloud environment dropdown when only one environment exists …
joshsny May 25, 2026
6c4a333
fix(task-input): preserve picked folder when adding to recents (#2277)
richardsolomou May 25, 2026
ce41e09
fix(code): prevent archived tasks from reappearing after archive (#2211)
richardsolomou May 25, 2026
12645d9
fix(worktree): fetch trunk before creating worktree to avoid stale ba…
richardsolomou May 25, 2026
c2eb769
fix(code): fire completion notifications for cloud tasks (#2344)
richardsolomou May 25, 2026
5fd4953
feat(task-input): show prompt in chat thread immediately on submit (#…
fercgomes May 25, 2026
2ff9421
feat: Deep Links V2 (airport project) (#2173)
charlesvien May 25, 2026
8b2c0c4
docs: Create AGENTS.md (#2275)
charlesvien May 26, 2026
4dede1c
refactor: Centralize image and binary extension utilities (#2363)
charlesvien May 26, 2026
372e792
fix(code): Do not show empty Inbox to users no GitHub social integrat…
sortafreel May 26, 2026
7a4aa8b
feat(billing): drop trace table, make 'analyse my spend' clickable (#…
pauldambra May 26, 2026
6c04b81
fix(inbox): make Discuss question input a resizable textarea (#2375)
andrewm4894 May 26, 2026
f4f6ba2
feat(code): show Draft badge on New task when input is unsubmitted (#…
fercgomes May 26, 2026
328def5
chore(inbox): Slim down inbox Create PR prompt and auto-launch (#2370)
andrewm4894 May 26, 2026
448ad15
fix: capture git checkpoint for local tasks after each turn
Basit-Balogun10 May 27, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
91 changes: 91 additions & 0 deletions .github/workflows/mobile-build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
name: Mobile Build

# Builds the Expo mobile app (apps/mobile) for iOS and Android on EAS.
# The two platforms run as parallel matrix jobs, so both builds are queued
# simultaneously.
#
# Required repository secret:
# EXPO_TOKEN - an Expo access token with build permissions for the
# "posthog" account (https://expo.dev/settings/access-tokens).

on:
workflow_dispatch:
inputs:
profile:
description: "EAS build profile"
type: choice
default: production
options:
- development
- preview
- production
wait:
description: "Wait for the EAS build to finish (uncheck to just queue and exit)"
type: boolean
default: true

concurrency:
group: mobile-build-${{ github.ref }}-${{ inputs.profile }}
cancel-in-progress: false

jobs:
build:
name: Build (${{ matrix.platform }})
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
platform: [ios, android]
permissions:
contents: read
defaults:
run:
working-directory: apps/mobile
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false

- name: Setup pnpm
uses: pnpm/action-setup@b906affcce14559ad1aafd4ab0e942779e9f58b1 # v4

- name: Setup Node.js
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
with:
node-version: 22
cache: "pnpm"

- name: Setup EAS
uses: expo/expo-github-action@4479f9c12e08b76bb8a6ae00a31544a13d3b3d68 # v8
with:
eas-version: latest
token: ${{ secrets.EXPO_TOKEN }}

- name: Install dependencies
run: pnpm install --frozen-lockfile
working-directory: .

- name: EAS build
env:
PLATFORM: ${{ matrix.platform }}
PROFILE: ${{ inputs.profile }}
WAIT_FLAG: ${{ inputs.wait && '--wait' || '--no-wait' }}
run: |
eas build \
--non-interactive \
--platform "$PLATFORM" \
--profile "$PROFILE" \
"$WAIT_FLAG"

# Auto-promote the freshly built production binaries. Only runs when the build
# job waited for completion (otherwise there is no finished build to submit).
promote:
permissions: {}
needs: build
if: ${{ inputs.profile == 'production' && inputs.wait }}
uses: ./.github/workflows/mobile-promote.yml
with:
platform: all
profile: production
secrets: inherit
98 changes: 98 additions & 0 deletions .github/workflows/mobile-promote.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
name: Mobile Promote

# Promotes the most recent finished EAS build to the stores:
# iOS -> App Store Connect (build becomes available in TestFlight)
# Android -> Google Play "internal" testing track
#
# Uses `eas submit --latest`, which submits the latest successful build for the
# selected platform/profile. Run "Mobile Build" with the matching profile first.
#
# Required repository secret:
# EXPO_TOKEN - Expo access token (submit permissions).
#
# Store credentials live on EAS, not in this repo: the iOS App Store Connect API
# key and the Android Google Play service account key are configured once via
# `eas credentials` so that `--non-interactive` submits can authenticate.

on:
workflow_dispatch:
inputs:
platform:
description: "Platform to promote"
type: choice
default: all
options:
- all
- ios
- android
profile:
description: "EAS submit profile"
type: choice
default: production
options:
- production
# Allows "Mobile Build" to chain into this workflow after a successful build.
workflow_call:
inputs:
platform:
type: string
default: all
profile:
type: string
default: production
secrets:
EXPO_TOKEN:
required: true

concurrency:
group: mobile-promote-${{ github.ref }}
cancel-in-progress: false

jobs:
submit:
name: Submit (${{ matrix.platform }})
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
platform: ${{ inputs.platform == 'all' && fromJSON('["ios","android"]') || fromJSON(format('["{0}"]', inputs.platform)) }}
permissions:
contents: read
defaults:
run:
working-directory: apps/mobile
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false

- name: Setup pnpm
uses: pnpm/action-setup@b906affcce14559ad1aafd4ab0e942779e9f58b1 # v4

- name: Setup Node.js
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
with:
node-version: 22
cache: "pnpm"

- name: Setup EAS
uses: expo/expo-github-action@4479f9c12e08b76bb8a6ae00a31544a13d3b3d68 # v8
with:
eas-version: latest
token: ${{ secrets.EXPO_TOKEN }}

- name: Install dependencies
run: pnpm install --frozen-lockfile
working-directory: .

- name: EAS submit
env:
PLATFORM: ${{ matrix.platform }}
PROFILE: ${{ inputs.profile }}
run: |
eas submit \
--non-interactive \
--platform "$PLATFORM" \
--profile "$PROFILE" \
--latest
6 changes: 5 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,6 @@ Thumbs.db
*.car

# AI agents
AGENTS.md
MEMORY.md
.claude-config/
.agent-trigger
Expand All @@ -63,3 +62,8 @@ plugins/posthog/local-skills/

# Symlinked copies of posthog, to make developing against those APIs easier
posthog-sym

.claude/settings.local.json
CLAUDE.local.md

apps/mobile/ROADMAP.md
Loading