Skip to content

Commit 18e4eab

Browse files
EtanHeyclaude
andcommitted
merge: origin/main into fix/mobile-unresolved-thread-chip
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2 parents 8db97dc + 42057b8 commit 18e4eab

814 files changed

Lines changed: 66942 additions & 43129 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎.agents/skills/test-t3-mobile/SKILL.md‎

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,15 @@ prints one JSON line; on failure it names the next command. Mobile verification
4343
includes that step unless the user prohibits it.
4444

4545
For a device you opened in an agent-device session elsewhere (a device pool,
46-
cloud, or remote host), run `vp run mobile:install <ios|android> --session <s>`
47-
from the directory you opened the session in. It installs the cached build into
48-
that session (`--abi arm64-v8a` for an ARM Android device; `--metro <url>` also
49-
opens it against Metro) and never builds.
46+
cloud, or remote host), run `vp run mobile:install <ios|android> --session <s>
47+
--config <file>` from the directory you opened the session in, passing the
48+
`--config` file from `device_open`'s `targetArgs`. Without it, a device pool's
49+
gateway refuses the install, wrongly saying agent-device is too old. It installs
50+
the cached build into that session (`--abi arm64-v8a` for an ARM Android device;
51+
pool Android emulators are x86_64, the default; `--metro <url>` also opens it
52+
against Metro). Without a cached build for this checkout it builds first, which can
53+
outlast the lease, so run `vp run mobile:install <ios|android> --prepare` (with
54+
the same `--abi`) before you open the device.
5055

5156
Start `vp run dev:client` from `apps/mobile`, or reuse a healthy Metro belonging
5257
to this checkout. Open its printed development-client URL with AgentDevice

‎.github/VOUCHED.td‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ github:btsouth
2222
github:cestercian
2323
github:chrisdeeming
2424
github:chuks-qua
25+
-github:coygeek Filed over 270 automated issues, about 50 a day at peak, far past what maintainers can triage
2526
github:cursoragent
2627
github:D3OXY
2728
github:dbalders

‎.github/workflows/agent-context-budget.yml‎

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,7 @@ on:
1010
permissions:
1111
contents: read
1212

13-
concurrency:
14-
group: agent-context-budget-${{ github.event.pull_request.number }}
15-
cancel-in-progress: true
16-
13+
# No concurrency group: label events arrive in bursts, and a cancelled run reports as a failed check.
1714
jobs:
1815
budget:
1916
name: Agent context budget

‎.github/workflows/ci.yml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -591,7 +591,7 @@ jobs:
591591
name: Mobile Native Static Analysis
592592
needs: changes
593593
if: ${{ !cancelled() && needs.changes.outputs.mobile_native != 'false' }}
594-
runs-on: blacksmith-6vcpu-macos-26
594+
runs-on: blacksmith-6vcpu-macos-27
595595
timeout-minutes: 10
596596
steps:
597597
- name: Checkout

‎.github/workflows/desktop-macos-preview-publish.yml‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -316,6 +316,7 @@ jobs:
316316
rust_target: aarch64-apple-darwin
317317
resource_key: darwin-arm64
318318
cli_archive: false
319+
untrusted_bundle: true
319320

320321
# Release assets download without a GitHub account, unlike workflow
321322
# artifacts. All preview DMGs live on one rolling prerelease tagged

‎.github/workflows/issue-vouch.yml‎

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
name: Issue Vouch
2+
3+
on:
4+
issues:
5+
types: [opened, reopened]
6+
push:
7+
branches:
8+
- main
9+
paths:
10+
- .github/VOUCHED.td
11+
- .github/workflows/issue-vouch.yml
12+
workflow_dispatch:
13+
14+
permissions:
15+
contents: read
16+
issues: write
17+
18+
concurrency:
19+
group: issue-vouch-${{ github.event.issue.number || 'all' }}
20+
cancel-in-progress: true
21+
22+
jobs:
23+
label:
24+
name: Label issues by author trust
25+
runs-on: ubuntu-24.04
26+
steps:
27+
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
28+
with:
29+
script: |
30+
const { owner, repo } = context.repo;
31+
// Only listed authors get a label; open issues number in the thousands,
32+
// so unvouched is the default and stays unlabelled.
33+
const labelByStatus = { vouched: "vouch:trusted", denounced: "vouch:denounced" };
34+
const managedLabelNames = new Set(["vouch:trusted", "vouch:unvouched", "vouch:denounced"]);
35+
36+
const { data: file } = await github.rest.repos.getContent({
37+
owner,
38+
repo,
39+
path: ".github/VOUCHED.td",
40+
ref: context.payload.repository.default_branch,
41+
});
42+
const statusByUser = new Map();
43+
for (const raw of Buffer.from(file.content, "base64").toString("utf8").split("\n")) {
44+
const match = /^(-?)github:(\S+)/.exec(raw.trim());
45+
if (match) statusByUser.set(match[2].toLowerCase(), match[1] ? "denounced" : "vouched");
46+
}
47+
48+
const issues =
49+
context.eventName === "issues"
50+
? [context.payload.issue]
51+
: (
52+
await github.paginate(github.rest.issues.listForRepo, {
53+
owner,
54+
repo,
55+
state: "open",
56+
per_page: 100,
57+
})
58+
).filter((issue) => !issue.pull_request);
59+
60+
for (const issue of issues) {
61+
const status = statusByUser.get(issue.user.login.toLowerCase());
62+
const next = labelByStatus[status];
63+
const current = issue.labels.map((label) => label.name).filter((name) => managedLabelNames.has(name));
64+
65+
for (const name of current) {
66+
if (name === next) continue;
67+
try {
68+
await github.rest.issues.removeLabel({ owner, repo, issue_number: issue.number, name });
69+
} catch (error) {
70+
if (error.status !== 404) throw error;
71+
}
72+
}
73+
if (next && !current.includes(next)) {
74+
await github.rest.issues.addLabels({ owner, repo, issue_number: issue.number, labels: [next] });
75+
core.info(`Issue #${issue.number} (${issue.user.login}): ${status} -> ${next}`);
76+
}
77+
}

‎.github/workflows/mobile-dev-client.yml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,7 @@ jobs:
219219
ios:
220220
name: iOS simulator
221221
if: github.repository == 'pingdotgg/t3code' && (github.event_name != 'workflow_dispatch' || inputs.platform == 'ios')
222-
runs-on: blacksmith-12vcpu-macos-26
222+
runs-on: blacksmith-12vcpu-macos-27
223223
timeout-minutes: 60
224224
concurrency:
225225
group: mobile-dev-client-ios-${{ github.event_name == 'pull_request' && github.event.pull_request.number || inputs.fingerprint || github.sha }}

‎.github/workflows/mobile-eas-production.yml‎

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -680,8 +680,8 @@ jobs:
680680
echo ":rocket: android: submitted and recorded \`$BUILD_TAG\`" >> "$GITHUB_STEP_SUMMARY"
681681
682682
# Off unless the MOBILE_IOS_LOCAL_BUILDS repository variable is `true`; the
683-
# production job only sets ios_build then. Store binaries need the final
684-
# Xcode 27.1; MOBILE_IOS_ALLOW_XCODE_RC=true accepts the release candidate.
683+
# production job only sets ios_build then. Xcode 27.1 matches the EAS build
684+
# image in eas.json.
685685
# No sticky disk: it mounts ext4 and only works on Linux runners.
686686
ios:
687687
name: iOS store build
@@ -701,7 +701,6 @@ jobs:
701701
EXPO_TOKEN: ${{ secrets.EXPO_PRODUCTION_TOKEN }}
702702
PROFILE: ${{ needs.production.outputs.ios_profile }}
703703
BUILD_TAG: mobile-ios-build/${{ needs.production.outputs.ios_profile }}/${{ needs.production.outputs.ios_version }}/${{ needs.production.outputs.ios_fingerprint }}
704-
ALLOW_XCODE_RC: ${{ vars.MOBILE_IOS_ALLOW_XCODE_RC == 'true' }}
705704
steps:
706705
- name: Checkout
707706
uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
@@ -739,12 +738,9 @@ jobs:
739738
if: steps.record.outputs.built != 'true'
740739
run: |
741740
xcode=/Applications/Xcode_27.1.app
742-
if [ ! -d "$xcode" ] && [ "$ALLOW_XCODE_RC" = "true" ]; then
743-
xcode=/Applications/Xcode_27.1_Release_Candidate.app
744-
fi
745741
if [ ! -d "$xcode" ]; then
746742
ls -d /Applications/Xcode*.app
747-
echo "::error::Xcode 27.1 (final) is not on this runner. Set the MOBILE_IOS_ALLOW_XCODE_RC repository variable to true to build store binaries with the release candidate."
743+
echo "::error::Xcode 27.1 is not on this runner."
748744
exit 1
749745
fi
750746
sudo xcode-select -s "$xcode/Contents/Developer"

‎.github/workflows/mobile-showcase-screenshots.yml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ jobs:
4545
ios:
4646
name: iPhone, iPhone Duo, and iPad 13
4747
if: inputs.platform == 'all' || inputs.platform == 'ios'
48-
runs-on: blacksmith-12vcpu-macos-26
48+
runs-on: blacksmith-12vcpu-macos-27
4949
# Capturing every palette multiplies the device matrix by six, and only the
5050
# one native build is shared between them.
5151
timeout-minutes: ${{ inputs.theme == 'all' && 300 || 60 }}

‎.github/workflows/pr-vouch.yml‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -101,17 +101,17 @@ jobs:
101101
{
102102
name: "vouch:trusted",
103103
color: "1f883d",
104-
description: "PR author is trusted by repo permissions or the VOUCHED list.",
104+
description: "Author is trusted by repo permissions or the VOUCHED list.",
105105
},
106106
{
107107
name: "vouch:unvouched",
108108
color: "fbca04",
109-
description: "PR author is not yet trusted in the VOUCHED list.",
109+
description: "Author is not yet trusted in the VOUCHED list.",
110110
},
111111
{
112112
name: "vouch:denounced",
113113
color: "d1242f",
114-
description: "PR author is explicitly blocked by the VOUCHED list.",
114+
description: "Author is explicitly blocked by the VOUCHED list.",
115115
},
116116
];
117117

0 commit comments

Comments
 (0)