Skip to content
Draft
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
24 changes: 12 additions & 12 deletions .claude/skills/desktop-release/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,11 @@ Perform a regular desktop release. This skill handles the full release workflow
## Step 1: Gather changes since last release

1. Find the last release tag:
```bash
```sh
git tag --sort=-creatordate | grep '^desktop/v' | head -1
```
2. Get all commits since that tag on the current branch:
```bash
```sh
git log <last-tag>..HEAD --oneline --no-merges
```
3. Categorize commits into:
Expand All @@ -38,7 +38,7 @@ Perform a regular desktop release. This skill handles the full release workflow
3. Wait for user confirmation or edits before writing.
4. Write the final content to `apps/desktop/changelog/next.md`, following the template format:

```markdown
```md
# What's new in vNEXT_VERSION

## Shiny new things
Expand All @@ -65,11 +65,11 @@ Perform a regular desktop release. This skill handles the full release workflow
`nbump` requires a clean working tree. Commit changelog edits before running bump.

1. Stage the changelog update:
```bash
```sh
git add apps/desktop/changelog/next.md
```
2. Commit it on `dev`:
```bash
```sh
git commit -m "docs(desktop): prepare release changelog"
```
3. If there are no changes to commit, continue without creating an extra commit.
Expand All @@ -79,11 +79,11 @@ Perform a regular desktop release. This skill handles the full release workflow
This is critical for determining whether users need a full app update or can use the lightweight renderer hot update.

1. Check what files changed in `apps/desktop/layer/main/` since the last release tag:
```bash
```sh
git diff <last-tag>..HEAD --name-only -- apps/desktop/layer/main/
```
2. Also check changes to `apps/desktop/package.json` fields other than version/mainHash (since package.json is included in the hash calculation):
```bash
```sh
git diff <last-tag>..HEAD -- apps/desktop/package.json
```

Expand All @@ -104,11 +104,11 @@ Present your analysis to the user with:

1. Save the current mainHash from `apps/desktop/package.json` for later comparison.
2. Verify working tree is clean before bump:
```bash
```sh
git status --short
```
3. Change directory to `apps/desktop/` and run the bump:
```bash
```sh
cd apps/desktop && pnpm bump
```
4. This command will:
Expand All @@ -126,17 +126,17 @@ Present your analysis to the user with:
If Step 4 decided mainHash should NOT be updated, restore the old value now. The bump has already committed, pushed, and created the PR on a new release branch, so we amend the commit and force push. This is safe because the release branch was just created.

1. Change back to the repo root first (Step 5 left the working directory at `apps/desktop/`):
```bash
```sh
cd ../..
```
2. Ensure you are on the `release/desktop/{NEW_VERSION}` branch (bump should have switched to it).
3. Replace the recalculated mainHash with the saved old value in `apps/desktop/package.json`.
4. Stage and amend the release commit:
```bash
```sh
git add apps/desktop/package.json && git commit --amend --no-edit
```
5. Force push the release branch:
```bash
```sh
git push --force origin release/desktop/{NEW_VERSION}
```

Expand Down
12 changes: 6 additions & 6 deletions .claude/skills/installing-mobile-preview-builds/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,21 +21,21 @@ Use this skill to create a fresh local `preview` iOS build and install it on a c
- Run from repo root and ensure `apps/mobile` exists.
- Verify `pnpm`, `xcrun`, `xcodebuild`, and `eas-cli` are available.
- Verify EAS login:
```bash
```sh
cd apps/mobile
pnpm dlx eas-cli whoami
```
2. Resolve target device.
- List paired devices:
```bash
```sh
xcrun devicectl list devices
```
- Choose device in this order:
- `$ARGUMENTS` if provided and matches exactly one device.
- Otherwise, first paired iPhone.
3. Trigger local `preview` iOS build.

```bash
```sh
mkdir -p .context/preview-install
cd apps/mobile
pnpm dlx eas-cli build -p ios --profile preview --non-interactive --local --output=./build-preview.ipa
Expand All @@ -44,14 +44,14 @@ Use this skill to create a fresh local `preview` iOS build and install it on a c
```

4. Install to device locally.
```bash
```sh
unzip -q -o .context/preview-install/folo-preview.ipa -d .context/preview-install/unpacked
APP_PATH=$(find .context/preview-install/unpacked/Payload -maxdepth 1 -name '*.app' -type d | head -n 1)
xcrun devicectl device install app --device "<device-id>" "$APP_PATH"
```
5. Try launching app.

```bash
```sh
xcrun devicectl device process launch --device "<device-id>" is.follow --activate
```

Expand All @@ -64,7 +64,7 @@ Use this skill to create a fresh local `preview` iOS build and install it on a c
- failing command
- key error message from command output
- If app config fails with `Assets source directory not found ... /out/rn-web`, prebuild assets then retry once:
```bash
```sh
pnpm --filter @follow/rn-micro-web-app build --outDir out/rn-web/html-renderer
```

Expand Down
16 changes: 8 additions & 8 deletions .claude/skills/mobile-release/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,15 +18,15 @@ Perform a regular mobile release. This skill handles the full release workflow f
## Step 1: Gather changes since last release

1. Find the last release tag (both old `mobile@` and new `mobile/v` prefixes exist):
```bash
```sh
git tag --sort=-creatordate | grep -E '^mobile[@/]' | head -1
```
2. If no tag found, find the last release commit by matching only the subject line:
```bash
```sh
git log --format="%H %s" | grep "^[a-f0-9]* release(mobile): release v" | head -1 | awk '{print $1}'
```
3. Get all commits since the last release on the current branch:
```bash
```sh
git log <last-tag-or-commit>..HEAD --oneline --no-merges
```
4. Categorize commits into:
Expand All @@ -42,7 +42,7 @@ Perform a regular mobile release. This skill handles the full release workflow f
3. Wait for user confirmation or edits before writing.
4. Write the final content to `apps/mobile/changelog/next.md`, following the template format:

```markdown
```md
# What's New in vNEXT_VERSION

## Shiny new things
Expand All @@ -69,23 +69,23 @@ Perform a regular mobile release. This skill handles the full release workflow f
`nbump` requires a clean working tree. Commit changelog edits before running bump.

1. Stage the changelog update:
```bash
```sh
git add apps/mobile/changelog/next.md
```
2. Commit it on `dev`:
```bash
```sh
git commit -m "docs(mobile): prepare release changelog"
```
3. If there are no changes to commit, continue without creating an extra commit.

## Step 4: Execute bump

1. Verify working tree is clean before bump:
```bash
```sh
git status --short
```
2. Change directory to `apps/mobile/` and run the bump:
```bash
```sh
cd apps/mobile && pnpm bump
```
3. This is an interactive `nbump` command that prompts for version selection. It will:
Expand Down
4 changes: 2 additions & 2 deletions .claude/skills/update-deps/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ After all updates are applied:

Run these commands sequentially in the repo root and capture results:

```bash
```sh
pnpm install
pnpm typecheck
pnpm test
Expand All @@ -119,7 +119,7 @@ pnpm lint

Run these commands sequentially in `BACKEND_DIR` and capture results:

```bash
```sh
pnpm install
pnpm typecheck
pnpm test
Expand Down
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/i18n.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name: 🌐 Internationalization (i18n)
description: Contribute to or report issues with translations
title: "[i18n]: "
labels: ["i18n", "triage"]
labels: [i18n, triage]
body:
- type: markdown
attributes:
Expand Down
10 changes: 5 additions & 5 deletions .github/actions/setup-version/action.yml
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
name: Setup Version
description: "Setup Version"
description: Setup Version
inputs:
type:
required: true
description: "Type of the app, either 'desktop' or 'mobile'"
default: "desktop"
default: desktop
outputs:
APP_VERSION:
description: "App Version"
description: App Version
value: ${{ steps.version.outputs.APP_VERSION }}
runs:
using: "composite"
using: composite
steps:
- name: "Write Version"
- name: Write Version
id: version
shell: bash
run: |
Expand Down
10 changes: 5 additions & 5 deletions .github/actions/setup-xcode/action.yml
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
name: "Setup Xcode"
description: "Setup specific Xcode version for iOS builds"
name: Setup Xcode
description: Setup specific Xcode version for iOS builds
inputs:
xcode-version:
description: "Xcode version to use"
description: Xcode version to use
required: false
default: "26.0.1"
default: 26.0.1

runs:
using: "composite"
using: composite
steps:
- uses: maxim-lobanov/setup-xcode@v1
with:
Expand Down
6 changes: 3 additions & 3 deletions .github/advanced-issue-labeler.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
policy:
- section:
- id: [platform]
block-list: ["None", "Other"]
block-list: [None, Other]
label:
- name: "platform: desktop"
keys: ["Desktop - macOS", "Desktop - Windows", "Desktop - Linux", "Desktop - Web"]
keys: [Desktop - macOS, Desktop - Windows, Desktop - Linux, Desktop - Web]
- name: "platform: mobile"
keys: ["Mobile - iOS", "Mobile - Android", "Mobile - Web"]
keys: [Mobile - iOS, Mobile - Android, Mobile - Web]
6 changes: 3 additions & 3 deletions .github/dependabot.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -33,15 +33,15 @@ updates:

# filter not work
- dependency-name: unplugin-ast
versions: ["0.14.5"]
versions: [0.14.5]

open-pull-requests-limit: 100
groups:
minor-and-patch:
applies-to: version-updates
update-types:
- "minor"
- "patch"
- minor
- patch
pathed:
patterns:
- immer
Expand Down
12 changes: 6 additions & 6 deletions .github/workflows/build-android.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ on:
- "**"
paths:
- "apps/mobile/**"
- "pnpm-lock.yaml"
- pnpm-lock.yaml
workflow_dispatch:
inputs:
profile:
Expand All @@ -15,11 +15,11 @@ on:
options:
- preview
- production
description: "Build profile"
description: Build profile
release:
type: boolean
default: false
description: "Create a release draft for the build"
description: Create a release draft for the build

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event.inputs.profile }}
Expand Down Expand Up @@ -52,13 +52,13 @@ jobs:
uses: actions/setup-node@v6
with:
node-version: 22
cache: "pnpm"
cache: pnpm

- name: Set up JDK 17
uses: actions/setup-java@v5
with:
java-version: "17"
distribution: "zulu"
distribution: zulu

- name: Setup Android SDK
uses: android-actions/setup-android@v3
Expand Down Expand Up @@ -102,7 +102,7 @@ jobs:
id: version
uses: ./.github/actions/setup-version
with:
type: "mobile"
type: mobile

- name: Prepare Release Notes
if: github.event.inputs.release == 'true'
Expand Down
22 changes: 11 additions & 11 deletions .github/workflows/build-desktop.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,16 @@ on:
paths:
- "apps/desktop/**"
- "packages/**"
- "pnpm-lock.yaml"
- ".github/workflows/build-desktop.yml"
- pnpm-lock.yaml
- .github/workflows/build-desktop.yml
workflow_dispatch:
inputs:
tag_version:
type: boolean
description: "Tag Version"
description: Tag Version
store:
type: boolean
description: "Build for Mac App Store and Microsoft Store"
description: Build for Mac App Store and Microsoft Store
build_version:
type: string
description: "Build Version, only available when mas is true"
Expand Down Expand Up @@ -76,7 +76,7 @@ jobs:
uses: actions/setup-node@v6
with:
node-version: 22
cache: "pnpm"
cache: pnpm

- name: Install Python setuptools
if: runner.os == 'macOS'
Expand Down Expand Up @@ -228,12 +228,12 @@ jobs:
if: runner.os == 'windows' && env.RELEASE == 'true' && github.event.inputs.store != 'true'
with:
api-token: "${{ secrets.SIGNPATH_API_TOKEN }}"
organization-id: "8c651516-fdaf-40a1-9fea-001dffde850e"
project-slug: "Folo"
signing-policy-slug: "release-signing"
artifact-configuration-slug: "github"
organization-id: 8c651516-fdaf-40a1-9fea-001dffde850e
project-slug: Folo
signing-policy-slug: release-signing
artifact-configuration-slug: github
github-artifact-id: "${{ steps.upload-unsigned-windows-x64-exe.outputs.artifact-id }}"
output-artifact-directory: "apps/desktop/out/make/"
output-artifact-directory: apps/desktop/out/make/

- name: Update latest.yml
if: runner.os == 'windows' && env.RELEASE == 'true' && github.event.inputs.store != 'true'
Expand Down Expand Up @@ -294,7 +294,7 @@ jobs:
id: version
uses: ./.github/actions/setup-version
with:
type: "desktop"
type: desktop

- name: Prepare Release Notes
if: env.RELEASE == 'true'
Expand Down
Loading
Loading